Einzelnen Beitrag anzeigen

HeZa

Registriert seit: 4. Nov 2004
Ort: Dortmund
182 Beiträge
 
Delphi 10 Seattle Professional
 
#2

AW: Wechsel zwischen Datenbanken nicht möglich?

  Alt 15. Okt 2010, 22:07
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;
  Mit Zitat antworten Zitat