Entwickler-Ecke

Datenbanken - Ändern bei ADOQuery Connection


Hänsel - Do 09.08.18 15:30
Titel: Ändern bei ADOQuery Connection
Ändern bei ADOQuery Connection

Hallo kann jemand weiterhelfen,

Ich habe zwei ADOConnection Komponenten. Alle ADOQuery Tabellen sind zur Zeit mit der ADOConection1 verbunden. Ich möchte aber zur Laufzeit eine Tabelle (ADOQuery1) mit ADOConnection2 verbinden.

Hier gab es eine Fehlermeldung

Delphi-Quelltext
1:
DataModule1.ADOQuery1.Connection:= ADOConnection2;                    

Im voraus besten Dank
hänsel

Moderiert von user profile iconTh69: Delphi-Tags hinzugefügt


jasocul - Do 09.08.18 15:32

user profile iconHänsel hat folgendes geschrieben Zum zitierten Posting springen:
Hier gab es eine Fehlermeldung

Und jetzt dürfen alle raten, welche das ist? :wink:
Bitte die Fehlermeldung mit angeben.


Sinspin - Do 09.08.18 16:56

Das ist ein bisschen wie nen Ratespiel ohne Felermeldung. Aber, falls ich das richtig verstehe ist deine Query vorher schon mit der ersten Connection verbunden gewesen? Dann musst Du die Query natürlich zu machen bevor Du die Connection wechseln kannst.


Hänsel - Do 09.08.18 17:19


Delphi-Quelltext
1:
DataModule1.ADOQuery_Objekte.Connection:='ADOConnection2';                    

Die Fehlermeldung lautet:
Zitat:
[dcc32 Fehler] Unit_Abrechnung.pas(126): E2010 Inkompatible Typen: 'TADOConnection' und 'string'

hatte ich vergessen.

Moderiert von user profile iconTh69: Delphi-Tags hinzugefügt
Moderiert von user profile iconTh69: Quote-Tags hinzugefügt


Sinspin - Fr 10.08.18 12:45

Auf die Antwort zu deiner Frage kommst Du doch selber!
Dafuer muss man doch nicht erst eine Frage hier im im Forum stellen und dann tagelang auf eine Antwort warten.

PS: Schau doch einfach mal nach von was fuer einem Typ Connection sein muss!


jasocul - Fr 10.08.18 13:02

Boah, ich habe immer nur im ersten Beitrag versucht, die Fehlermeldung abzugleichen.

@Hänsel:
Vergleiche mal die Zeile des Sources, der in deinem Beitrag mit der Fehlermeldung steht, mit dem im ersten Beitrag. Die sind unterschiedlich.

Das ist so banal, dass ich die Lösung nicht verraten mag. Das würde den Lerneffekt zerstören.


Hänsel - Fr 10.08.18 13:26

Hallo
wenn ich es gewusst hätte, hätte ich euch nicht gefragt.
Trotzdem besten Dank.

hänsel


jasocul - Fr 10.08.18 13:50


Delphi-Quelltext
1:
2:
DataModule1.ADOQuery_Objekte.Connection:='ADOConnection2'// Fehler
DataModule1.ADOQuery_Objekte.Connection:=ADOConnection2; // kein Fehler


Hänsel - So 12.08.18 08:49

Dies wurde bei mir auch schon getestet, mit folgender Fehlermeldung:
Zitat:
[dcc32 Fehler] Unit_Abrechnung.pas(864): E2003 Undeklarierter Bezeichner: 'ADOConnection2'


Moderiert von user profile iconTh69: Quote-Tags hinzugefügt


Delete - So 12.08.18 12:06

- Nachträglich durch die Entwickler-Ecke gelöscht -


jasocul - Mo 13.08.18 07:45

Vielleicht fehlt es nicht, sondern ist nur auf der falschen Form/DataModul.
Bei der Schreibweise der ADOQuery vermute ich, dass das hier die Lösung sein könnten:

Delphi-Quelltext
1:
DataModule1.ADOQuery_Objekte.Connection:=DataModule1.ADOConnection2;                    

Falls das so sein sollte:
Wenn du bei der Zuweisung nicht sagst, wo das liegt, wird nur in der aktuellen Form gesucht.
Genaugenommen ist das in dieser Formulierung nicht korrekt, aber ich will dich an dieser Stelle nicht verwirren. Sollte das die Lösung sein, kann man sicher nochmal genauer darauf eingehen


Hänsel - Mo 13.08.18 13:31

Der letzte Hinweis war richtig. Für mich nicht ganz klar, denn ich habe ja zu Begin der Zeile (DataModule1) ja schon den Ort benannt. Aber egal so läuft es und dafür möchte ich mich noch einmal bedanken!

Gruß
hänsel


jasocul - Mo 13.08.18 14:14

Neee, egal ist das nicht (falls du was dabei lernen möchtest) :wink:

Einfach ausgedrückt:
Deine "Variable" ADOQuery_Objekte ist etwas eigenständiges und hat mit der "Variablen" ADOConnection2 nichts zu tun, außer, dass beide in DataModule1 deklariert wurden.
Das bedeutet, dass du die Variablen immer vollständig bezeichnen musst, wenn du diese verwenden willst. Es gibt eine Möglichkeit, das zu umgehen (with), aber von der Nutzung rät eigentlich jeder Profi ab. Falls du also mal über "with" stolperst, lass die Finger davon.