Einzelnen Beitrag anzeigen

slemke76

Registriert seit: 29. Mär 2005
Ort: Quakenbrück
146 Beiträge
 
#1

Wechsel zwischen Datenbanken nicht möglich?

  Alt 15. Okt 2010, 19:37
Datenbank: Sybase • Version: 9.0 • Zugriff über: ADO
Hallo zusammen,

ich habe ein etwas merkwürdiges Problem:

erstmal den Code:

Code:
const constConnStr='Provider=ASAProv.90;Eng=.......';

function TLXComm.getUmsatz(start: TDate; Ende: TDate):boolean;
var ConnStr: string;
    ADOConnection: TADOConnection;
    ADOQuery: TADOQuery;
begin
  ConnStr:=Format(constConnStr, [ FPassword,
                                  getDatabasePath()+'\'+FMandant+'\Database.db'
                                    ] );
  ADOConnection:=TADOConnection.Create(nil);
  ADOQuery:=TADOQuery.Create(nil);
  ADOConnection.ConnectionString:=ConnStr;
  ADOConnection.KeepConnection:=true;
  ADOConnection.LoginPrompt := False;
  AdoQuery.Connection:=ADOConnection;
  AdoQuery.CursorLocation:=clUseServer;
  AdoQuery.CursorType:=ctStatic;
  AdoQuery.ExecuteOptions := [];
  try
    AdoConnection.Open;
  except
    exit;
  end;

  AdoQuery.SQL.Clear;
  AdoQuery.SQL.Add('SELECT * FROM sample');
  AdoQuery.Open;

  ShowMessage(AdoQuery.FieldByName('id').Asstring);

  AdoQuery.Close;
  AdoQuery.Connection:=nil;
  AdoQuery.Free;
  AdoConnection.Connected:=false;
  AdoConnection.Close;
  AdoConnection.Free;
end;
Die Datenbank.db gibt es mehrfach, eine je Mandant. Wenn ich die Abfrage starte, klappt erstmal alles wunderbar.

Wenn ich allerdings die Abfrage nochmal *für einen anderen Mandanten* starte, wechselt er NICHT korrekt auf die andere Mandantendatenbank - ich bekomme das Ergebniss aus der ersten Abfrage.

Das ist mir etwas unverständlich; die gesamten ADO-Komponenten sind doch sauber ge-free-ed und die Connection zuvor geschlossen.

Oder habe ich etwas übersehen ?

lg
Sebastian
  Mit Zitat antworten Zitat