Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi ADOConnection - Probleme (https://www.delphipraxis.net/44080-adoconnection-probleme.html)

hsbc 13. Apr 2005 09:11

Datenbank: Access • Zugriff über: Delphi 7 Professional + ADO

ADOConnection - Probleme
 
Ich bekomme bei folgendem Code, welcher direkt bei Programmstart im FormActivate aufgerufen wird, eine Fehlermeldung: Die Routine selbst liegt in einem DatenModul-Formular, welches natürlich auch eingebunden ist. In einem anderen Programm eingebunden, funktioniert sie aber. Der Fehler kommt im try-Block, gleich in der ersten Zeile.

Hier der Ausschnitt:

Zitat:

GCS := 'Provider=Microsoft.Jet.OLEDB.4.0;' +
'User ID=' + User + ';' +
'Data Source=' + DBVerz + Datenbank + ';' +
'Persist Security Info=False';

try
if DatenModul.ADOConnection.Connected = false then begin
Die Fehlermeldung:

Zitat:

Zugriffsverletzung bei Adresse 004C52D8 in Modul ... Lesen von Adresse 00000058
mfg
Herbert

Bernhard Geyer 13. Apr 2005 09:13

Re: ADOConnection - Probleme
 
Ich Tipp mal darauf das DatenModul nil ist, sprich das Datenmodul ist noch nicht angelegt.

hsbc 13. Apr 2005 09:23

Re: ADOConnection - Probleme
 
Hallo Bernhard,

was meinst du mit das Datenmodul ist noch nicht angelegt?

Am DatenModul sind alle Tabellen positioniert, sowie auch die ACOConnection.

Das Datenmodul ist im Hauptprogramm eingebunden.

hsbc 13. Apr 2005 09:36

Re: ADOConnection - Probleme
 
Ich sehe gerade, der Debugger gibt die erwähnte Fehlermeldung bereits bei der Zuweisung des GCS in der ersten Zeile aus.

Zitat:

DatenModul.ADOConnection.ConnectionString := GCS;
DatenModul.ADOConnection.Connected := true;
mfg
Herbert

Bernhard Geyer 13. Apr 2005 09:39

Re: ADOConnection - Probleme
 
Zitat:

Zitat von hsbc
Hallo Bernhard,

was meinst du mit das Datenmodul ist noch nicht angelegt?

Am DatenModul sind alle Tabellen positioniert, sowie auch die ACOConnection.

Das Datenmodul ist im Hauptprogramm eingebunden.

Wie wird dein Datenmodul angelegt? Was wird angezeigt wenn du im Debugger auf DatenModul gehst und den Tooltipp anzeigen läßt.

hsbc 13. Apr 2005 09:50

Re: ADOConnection - Probleme
 
Ach Bernhard, wenn wir dich nicht hätten

es wird angezeigt: DatenModul = nil

wie recht du hattest - aber:

ich weiss wirklich nicht, was ich jetzt zu machen habe, wie bringe ich das nil weg ???

Muss man, ausser das DatenModul in die entsprechenden Units einzubinden, noch etwas machen ?

Ich verwende im Prinzip folgenden Aufbau:

1. DatenModul
2. Unit def - wo das Datenmodul eingebunden ist und auch die Connection stattfinden soll
3. Hauptformular - hier ist ebenfalls das Datenmodul und auch die Unit def eingebunden - von hier aus erfolgt der Aufruf des Connects

Was habe ich hier falsch gemacht bzw. auf was habe ich vergessen ?

mfg
Herbert

Jens Schumann 13. Apr 2005 09:54

Re: ADOConnection - Probleme
 
Hallo,
wenn Du im OnCreate Event des Hauptformulars auf das Datenmodul zugreifen möchtest
geht das schief. Zu diesem Zeitpunkt existiert das Datenmodul noch nicht.
Man könnte aner manuell die Erzeugung der Datenmoduls in der Projektquelltext
vor die Erzeugung der Hauptformulars ziehen. Dann klappt es.

Funktioniert nicht
Delphi-Quellcode:
program Project2;

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1},
  Unit2 in 'Unit2.pas' {DataModule2: TDataModule};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TDataModule2, DataModule2);
  Application.Run;
end.
Funktioniert
Delphi-Quellcode:
program Project2;

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1},
  Unit2 in 'Unit2.pas' {DataModule2: TDataModule};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TDataModule2, DataModule2);
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.

hsbc 13. Apr 2005 10:07

Re: ADOConnection - Probleme
 
Hallo Jens,

genau - das war es !!!

ALLER BESTEN DANK nochmals an euch beide, Bernhard und Jens

oft sind es die kleinen Dinge, die man übersieht, die aber grosse Auswirkungen haben.

mfg
Herbert


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:29 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