AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi TADOConnection auf anderem Datenmodul wie TADOQuery
Thema durchsuchen
Ansicht
Themen-Optionen

TADOConnection auf anderem Datenmodul wie TADOQuery

Ein Thema von HolgerCW · begonnen am 2. Dez 2014 · letzter Beitrag vom 3. Dez 2014
Antwort Antwort
Seite 1 von 2  1 2      
HolgerCW

Registriert seit: 28. Nov 2006
Ort: Marl
1.207 Beiträge
 
Delphi XE7 Enterprise
 
#1

TADOConnection auf anderem Datenmodul wie TADOQuery

  Alt 2. Dez 2014, 14:16
Datenbank: Oracle • Version: 10 • Zugriff über: ADO
Hallo zusammen,

will mich gerade von meiner BDE lösen und versuche mich jetzt gerade mit TADO ...

Ich habe die TADOConnection auf dem Datenmodul_1
Die TADOQuery liegt auf Datenmodul_2.
Der TADOQuery habe ich auch die Connection von Datenmodul_1 zuweisen können. Die Verbindung ist auch hergestellt da ich die Felder hinzufügen konnte.

Wenn ich im Programm aber jetzt TADOQuery.Open mache kommt die Meldung das eine Connection oder Connectionstring fehlt.

Packe ich jetzt beide auf das gleiche Datenmodul klappt es.

Möchte aber nicht auf jedem Datenmodul eine Connection haben. Woran könnte es liegen ?

In den uses des Datenmodul_2 ist auch das Datenmodul_1 eingetragen.

Gruss

Holger
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#2

AW: TADOConnection auf anderem Datenmodul wie TADOQuery

  Alt 2. Dez 2014, 14:40

Möchte aber nicht auf jedem Datenmodul eine Connection haben. Woran könnte es liegen ?
Und warum nicht? ich habe für jede unterstützte DB falls notwendig ein eigenes Datenmodul, das war's dann.
teilweise mit 2 oder 3 connections, bisher hatte ich keine Probleme das zu handhaben.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
HolgerCW

Registriert seit: 28. Nov 2006
Ort: Marl
1.207 Beiträge
 
Delphi XE7 Enterprise
 
#3

AW: TADOConnection auf anderem Datenmodul wie TADOQuery

  Alt 2. Dez 2014, 14:47
Vorher mit den TDatabase-Komponenten hat das aber super funktioniert.

Ich habe in einem anderen Projekt festegestellt das wenn ich umso mehr Connections habe die Programme langsamer werden, da jedes Programm dann mehrere Connections gleichzeitig bedient und das mal die Anwender die das Programm nutzen.

Gibt es denn eine Idee wie ich die TQADOQuery auf ein anderes Datenmodul packen kann wie die TADOConnection ?

Gruss

Holger
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#4

AW: TADOConnection auf anderem Datenmodul wie TADOQuery

  Alt 2. Dez 2014, 15:27
Ich habe in einem anderen Projekt festegestellt das wenn ich umso mehr Connections habe die Programme langsamer werden, da jedes Programm dann mehrere Connections gleichzeitig bedient und das mal die Anwender die das Programm nutzen.
Deine Programme machen was sie wollen?
Aber im Ernst, eine Connection,eine Query fertig.

Manchmal braucht man noch eine zweite oder dritte (Connection/Query) aber das ist zumindestens für mich seehr selten.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#5

AW: TADOConnection auf anderem Datenmodul wie TADOQuery

  Alt 2. Dez 2014, 15:43
Ich würde mal annehmen, in deinem Projekt wird erst das Datenmodul erzeugt, das die Query hat. Nun steht in der DFM unter Connection 'Module2.myADOConnection'... Aber 'Module2' gibt es ja noch nicht. Ergo steht da nun null drin.


Abhilfe: Setzte die Connection-Eigenschaft explizit. Ist eh besser, weil Du irgendwann ja doch die Einstellung verlierst (beim rumeditieren)
  Mit Zitat antworten Zitat
HolgerCW

Registriert seit: 28. Nov 2006
Ort: Marl
1.207 Beiträge
 
Delphi XE7 Enterprise
 
#6

AW: TADOConnection auf anderem Datenmodul wie TADOQuery

  Alt 3. Dez 2014, 07:14
Es ist genau umgekehrt.

Das Datenmodul mit der Connection ist von Anfang an da. Die einzelnen Datenmodule mit den entsprechenden Querys werden je nach Nutzung nachgeladen.

Muss ich da eventuell noch was auf Aktiv setzen ?

Aber warum ging das mit der BDE und den TQuerys ohne Probleme ? Habe ja jetzt nur testweise eine neue ADOConnection und eine neue TADOQuery dazu erstellt. Alles andere mit der BDE läuft weiterhin.

Gruss

Holger
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#7

AW: TADOConnection auf anderem Datenmodul wie TADOQuery

  Alt 3. Dez 2014, 07:28
Wie erstellst Du die Instanzen?

Aber das ist doch eigentlich nebensächlich. Setze die Verknüpfung explizit (was sowieso 1000x besser ist) und widme dich dem nächsten Problem..
  Mit Zitat antworten Zitat
HolgerCW

Registriert seit: 28. Nov 2006
Ort: Marl
1.207 Beiträge
 
Delphi XE7 Enterprise
 
#8

AW: TADOConnection auf anderem Datenmodul wie TADOQuery

  Alt 3. Dez 2014, 07:36
Du meinst also ich soll den Connection String direkt in die Query setzen ?

Nur wäre dann bei der Auswahl eines Testservers die Notwendigkeit das ich allen Querys den neuen Server mitteilen muss und nciht nur einer. Gehen würde das, aber ist halt auch aufwendig und muss ich bei Erweiterungen des Programms auch immer dran denken.

Wenn der Anwender einen bestimmten Programmteil benutzen will, create ich nur die entsprechende Form und das entsprechende Datenmodul mit den dazugehörigen Querys. Das Datenmodul mit der Connection ist aber immer erstellt. Wenn der Anweder einen anderen Programmteil nutzen möchte werden die wieder mit freeandnil gekillt und die neuen erstellt.

Gruss

Holger
  Mit Zitat antworten Zitat
HolgerCW

Registriert seit: 28. Nov 2006
Ort: Marl
1.207 Beiträge
 
Delphi XE7 Enterprise
 
#9

AW: TADOConnection auf anderem Datenmodul wie TADOQuery

  Alt 3. Dez 2014, 07:42
Habe gerade was herrausgefunden.

Wenn ich bei erstellen des Datenmoduls die Connection nochmal explizit zuweise klappt es:

Delphi-Quellcode:
procedure TDM_Systemoptionen.DataModuleCreate(Sender: TObject);
begin

 inherited;
 DM_Systemoptionen := Self;

 ADOQueryTreeView.Connection := DM_Menu.ADO_Con_SYSDBP;

end;
Aber warum muss ich das tuen ?

Gruss

Holger
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#10

AW: TADOConnection auf anderem Datenmodul wie TADOQuery

  Alt 3. Dez 2014, 07:43
Nur so als Beispiel
Delphi-Quellcode:
TADODataModule = class( TDataModule )
public
  procedure SetConnection( AConnection : TADOConnection );
end;

procedure TADODataModule.SetConnection( AConnection : TADOConnection );
var
  LIdx : Integer;
begin
  for Lidx := 0 to ComponentCount - 1 do
    if Components[LIdx] is TCustomADODataSet then
      ( Components[Lidx] as TCustomADODataSet ).Connection := AConnection;
end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo ( 3. Dez 2014 um 07:46 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 05:09 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