Entwickler-Ecke
Datenbanken - Connection änderbar?
D. Annies - Sa 23.03.13 08:10
Titel: Connection änderbar?
Hi, Delpher,
(wie) kann ich zur Laufzeit die Connection, z.B. von AdoConnection1 zu AdoConnection2 ändern?
Detlef
bummi - Sa 23.03.13 08:45
Den Datasets die andere Connection zuweisen und öffnen ... oder meinst Du etwas anderes?
D. Annies - Sa 23.03.13 08:46
Hi, Bummi,
ja, genau so meine ich es.
Detlef
bummi - Sa 23.03.13 09:18
Dann kannst Du ja aus folgendem, das basteln was für Dich am besten passt ...(lässt sich je nach Intention massiv kürzen)
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| procedure TForm3.Button1Click(Sender: TObject); var l:TList; i:Integer; begin l:=TList.Create; try for i := 0 to AdoConnection1.DataSetCount -1 do if AdoConnection1.DataSets[i].Active then l.Add(AdoConnection1.DataSets[i]); for I := 0 to l.Count - 1 do TAdoDataset(l[i]).Connection := nil; for I := 0 to l.Count - 1 do TAdoDataset(l[i]).Close; for I := 0 to l.Count - 1 do TAdoDataset(l[i]).Connection := AdoConnection2; for I := 0 to l.Count - 1 do TAdoDataset(l[i]).Open; finally l.Free; end; end; |
D. Annies - Sa 23.03.13 12:18
Leider eine Fehlermeldung: "Operator oder Semikolon fehlt"
Delphi-Quelltext
1: 2:
| for I := 0 to l.Count - 1 do DaMod1.AdoDataset1(l[i]).Connection := nil; |
bummi - Sa 23.03.13 13:40
Zitat: |
DaMod1.AdoDataset1(l[i]).Connection := nil;
|
Du hast ja die Adodatasets bereits in der Liste, was fehlt ist ein CAST auf TAdoDataset
Delphi-Quelltext
1:
| TAdoDataset(l[i]).Connection := nil; |
D. Annies - Sa 23.03.13 14:00
Hi, Bummi,
[delphi] for I := 0 to l.Count-1 do TAdoDataset.Connection := NIL;
Fehlermeldung:
[Pascal Fehler] BJS03.pas(298): E2233 Auf Eigenschaft 'Connection' kann hier nicht zugegriffen werden
LG, Detlef
bummi - Sa 23.03.13 14:10
Du sollst ja auch L[i] casten nicht die Connectionproperty der Klasse beschreiben .....
L[i].Connection geht nicht, daher TAdoDataset(L[i]).Connection ...
D. Annies - Sa 23.03.13 16:44
Danke - dein Kommentar stimmt. :-))
LG, Detlef
D. Annies - So 24.03.13 20:03
Noch eine Nachfrage:
ich will mir die Einträge in der Liste ausgeben lassen, scheitere aber mit dem folgenden Code:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| l := TList.Create; meldung := ''; try for i := 0 to DaMod1.AdoConnection1.DataSetCount-1 do begin l.Add(DaMod1.AdoConnection1.DataSets[i]); end; showmessage(meldung); ..... |
Delete - So 24.03.13 21:47
- Nachträglich durch die Entwickler-Ecke gelöscht -
D. Annies - So 24.03.13 23:21
Moin, Frühlinggsrolle,
leider ist die Ausgabe nicht sehr erhellend, etwa in der Art: @M
Bis zum Sommer :-))
LG, Det
bummi - Mo 25.03.13 00:28
Da es sich bei den Items in der Liste um CustomAdoDatasets handelt musst Du wieder casten und kannst dann alles ausgeben was ein CustomAdoDataset kennt, also z.B. Name ...
[delphi]
meldung := meldung + TCustomAdoDataset(l.items[i]).Name +#13#10;
[delphi]
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!