AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Kann nicht auf unmittelbar vorher erzeugte DB connecten
Thema durchsuchen
Ansicht
Themen-Optionen

Kann nicht auf unmittelbar vorher erzeugte DB connecten

Ein Thema von daniel71 · begonnen am 17. Feb 2008 · letzter Beitrag vom 17. Feb 2008
Antwort Antwort
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
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Kann nicht auf unmittelbar vorher erzeugte DB connecten

  Alt 17. Feb 2008, 23:56
1.) versuchen mit deiner DB zu verbinden
2.) bei Fehler die Connection ändern mit Initial Catalog=master und erneut verbinden
Die Datenbank "master" ist immer vohanden

2b) jetzt deinen CREATE Database ... absetzen und zwar direct über ADOConnection.Execute()
2c) SQL Befehl 'USE '+DBAM absetzen -> jetzt hast du von "master" in deine DB gewechselt
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz