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