![]() |
D7: ADOConnection Datamodul, aber keine Daten zur Laufzeit
D7: ADOConnection Datamodul, aber keine Daten zur Laufzeit
Hallo Leute, ich möchte mit Delphi 7 Professional auf zwei Accessdatenbanken zugreifen, scheitere aber schon an einer einzigen ADOConnection... :( Da ich zwei AccessDBs einbinden möchte und weil ich glaube, daß es eine saubere Lösung ist, verwende ich DataModule. Eine Verbindung bekomme ich auch hin, das ist nicht das Problem. Mein Problem ist, daß ich trotz dieser Verbindung zur Laufzeit keine Daten angezeigt bekomme... In einem anderen Forum habe ich gelesen, daß es daran liegen könnte, daß das DataModule erst nach den anderen Units erzeugt wird. Als Lösung wurde folgender Code vorgeschlagen:
Delphi-Quellcode:
Also die Erzeugung des DataModules vor dem Hauptformular. Klappt aber nicht...
begin
Application.Initialize; Application.CreateForm(TDatenModul1, DatenModul1); Application.CreateForm(TForm1, Form1); Application.Run; end. Ok, auch wenn es wahrscheinlich eine echte Newbie-Frage ist, brauche ich dringend eine Lösung :thuimb: |
Re: D7: ADOConnection Datamodul, aber keine Daten zur Laufze
Zitat:
...:cat:... P.S.: Herzlich willkommen in der DP ;-) |
Re: D7: ADOConnection Datamodul, aber keine Daten zur Laufze
Ja, in der IDE bekomme ich die Daten korrekt angezeigt
|
Re: D7: ADOConnection Datamodul, aber keine Daten zur Laufze
Zitat:
|
Re: D7: ADOConnection Datamodul, aber keine Daten zur Laufze
Hallo Kevin,
hast Du schon mal überprüft, ob die DB-Connection zur Laufzeit aktiviert und die Tabellen geöffnet werden? |
Re: D7: ADOConnection Datamodul, aber keine Daten zur Laufze
Ich hab nun festgestellt, woran es liegt. :-D Weiß aber nicht warum... :pale:
Wenn ich folgende Prozedur deaktiviere, werden auch die Daten zur Laufzeit angezeigt:
Delphi-Quellcode:
Wenn ich sie aktiviert lasse, läuft sie aber ohne Fehler durch, sodaß ich annehmen muß, daß das Auslesen des Strings erfolgreich war... :?
procedure TForm1.FormShow(Sender: TObject);
var DSN: string; begin if ReadDSNFromRegistry(DSN)=true then begin if DataModule2.SetMeineAnwendungDSN(DSN)=true then if DataModule2.OpenDatabase=false then begin MessageDlg('Es konnte keine Verbindung zur Datenbank '+ 'aufgebaut werden.', mtError, [mbOK], 0); DatenbankKonfiguration1Click(Sender); end; end else if DataModule2.OpenDatabase=false then begin MessageDlg('Es konnte keine Verbindung zur Datenbank '+ 'aufgebaut werden.', mtError, [mbOK], 0); DatenbankKonfiguration1Click(Sender); end else begin MessageDlg('Es konnte keine DSN ausgelesen werden.', mtError, [mbOK], 0); DatenbankKonfiguration1Click(Sender); end; end; |
Re: D7: ADOConnection Datamodul, aber keine Daten zur Laufze
Erst einmal als allgemeine Regel: nie mit True oder False vergleichen.
Code:
Und nun :?:
procedure TForm1.FormShow(Sender: TObject);
var DSN: string; begin if ReadDSNFromRegistry(DSN) then begin if DataModule2.SetMeineAnwendungDSN(DSN) then [color=#ec0000]begin[/color] if [color=#ec0000]not[/color] DataModule2.OpenDatabase then begin MessageDlg('Es konnte keine Verbindung zur Datenbank '+ 'aufgebaut werden.', mtError, [mbOK], 0); DatenbankKonfiguration1Click(Sender); end; [color=#ec0000]end else begin MessageDlg('SetMeineAnwendungDSN ist fehlgeschlagen', mtError, [mbOK], 0); end;[/color] end else if [color=#ec0000]not[/color] DataModule2.OpenDatabase then begin MessageDlg('Es konnte keine Verbindung zur Datenbank '+ 'aufgebaut werden.', mtError, [mbOK], 0); DatenbankKonfiguration1Click(Sender); end else begin MessageDlg('Es konnte keine DSN ausgelesen werden.', mtError, [mbOK], 0); DatenbankKonfiguration1Click(Sender); end; end; ...:cat:... |
Re: D7: ADOConnection Datamodul, aber keine Daten zur Laufze
Leider keine Veränderung :( Ich steppe noch mal durch... :coder:
|
Re: D7: ADOConnection Datamodul, aber keine Daten zur Laufze
Öffnest Du in OpenDatabase nur die DB-Connection oder werden da auch die Tabelle/Queries geöffnet (mit Open bzw. Active := true)?
|
Re: D7: ADOConnection Datamodul, aber keine Daten zur Laufze
:duck: Oh Mann, wie extrem hypermegapeinlich :oops: :oops: :oops: :oops: :oops:
Ich Blödmann hab einfach nur einen Code-Schnippsel für eine ADOConnection kopiert und nicht entsprechend abgeändert. Natürlich wurden da keine Tabellen explizit geöffnet. Hab ich nun ergänzt und siehe da, kaum macht man es richtig, funktioniert's :mrgreen: Vielen, vielen Dank, daß ihr mir hier die Augen geöffnet habt. Und das auch noch so schnell und ohne mich als Newbie zu "beschimpfen" :thuimb: Das hat aber jetzt zur Folge, daß ich hier öfters auftauche, weil es mir wirklich gut gefällt. Damit müßt ihr nun leben... :mrgreen: Also, nochmals vielen Dank!!! :dp: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz