Schuss ins
Blaue. Du hast an anderer Stelle ein Problem. Möglicherweise steht in FMandant nicht das was du erwartest hast. Auch möglich wäre, dass du in den beiden verschiedenen Mandanten die gleichen Daten hast.
Alles reine Vermutung.
Dein Code selbst hat aber auch ein paar Problem (die meiner Meinung nach aber nichts mit dem Problem zu tun haben). Im Falle einer
Exception produzierst du ein Speicherleck. Und EXCEPT EXIT; END; ist für mich eigentlich immer böse.
Ich habe mir erlaubt den Code etwas umzustellen (ohne es aber durch den Compiler zu jagen). Den EXCEPT Abschnitt betrachte ich dabei aber immer noch als Notlösung, aber ich weiß ja nicht was du eigentlich vor hast.
Delphi-Quellcode:
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);
try
ADOConnection.ConnectionString:=ConnStr;
ADOConnection.KeepConnection:=true;
ADOConnection.LoginPrompt := False;
ADOQuery:=TADOQuery.Create(
nil);
try
AdoQuery.Connection:=ADOConnection;
AdoQuery.CursorLocation:=clUseServer;
AdoQuery.CursorType:=ctStatic;
AdoQuery.ExecuteOptions := [];
try
AdoConnection.Open;
except
on e:
Exception do begin
ShowMessage(Format(
'
ID kann nicht ermittelt werden.'#10'
%s: %s',
[e.ClassName, e.
message]
);
exit;
end;
end;
AdoQuery.SQL.Clear;
AdoQuery.SQL.Add('
SELECT * FROM sample');
AdoQuery.Open;
ShowMessage(AdoQuery.FieldByName('
id').Asstring);
finally
AdoQuery.Free;
end;
finally
AdoConnection.Free;
end;
end;