Einzelnen Beitrag anzeigen

daniel71

Registriert seit: 27. Sep 2007
38 Beiträge
 
Delphi XE Professional
 
#1

Kann nicht auf unmittelbar vorher erzeugte DB connecten

  Alt 17. Feb 2008, 23:08
Datenbank: MSSQL • Version: 2005 • Zugriff über: ADOConnection
Hallo

Im FormShow Ereigniss meines Programms prüfe ich zuerst ob es die DB "AM7_6" existiert, wenn nicht erzeuge ich sie mit hilfe von ADOCnnection1 (ADOQuery1). Dannach verbinde ich mich mit ADOConnection2 auf die eben erzeugte DB.

Delphi-Quellcode:
  ADOConnection2.ConnectionString:= 'Provider=SQLOLEDB.1;Integrated Security=SSPI;' +
  'Persist Security Info=False;Initial Catalog=' + DBAM + ';Data Source=' + ServerNameIni + ';';
try
  ADOConnection2.Connected:= True;
 except
  on E:Exception do
  begin
   with ADOQuery1 do Begin // DB AM erstellen
    close;
    SQL.Text:= 'CREATE DATABASE AM7_6';
    ExecSQL;
   end;
   newAMDB:= true;
  end;
 end;

 if newAMDB = true then
 begin

  try
   ADOConnection2.Connected:= True;
  except
   on E:Exception do
   begin
    E.Message:= 'Fehler beim Verbinden mit der Datenbank';
    raise;
   end;
  end;
...
Die DB "AM7_6" wird auch auf dem Server erzeugt, ADOConnection2 fällt aber immer ins Exception. Wenn ich es ohne try/except mache mit folgender Fehlermeldung: cannot open database "AM7_6" requested by the login. The login failed.

Jetzt kommt das, was ich überhaupt nicht begreife:
Wenn ich zwischen dem Erzeugen von "AM7_6" und "ADOConnection2.Connected:= True;" einen Haltepunkt setze und danach das Programm sofort wieder mit "F9" vortsetzte, funktioniert es.

Kann mir da jemand weiterhelfen?

Daniel
  Mit Zitat antworten Zitat