Entwickler-Ecke
Datenbanken - Connection änderbar?
D. Annies - Sa 23.03.13 07: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 07:45
Den Datasets die andere Connection zuweisen und öffnen ... oder meinst Du etwas anderes?
D. Annies - Sa 23.03.13 07:46
Hi, Bummi,
  ja, genau so meine ich es.
Detlef
bummi - Sa 23.03.13 08: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 11:18
Leider eine Fehlermeldung: "Operator oder Semikolon fehlt"
            
Delphi-Quelltext    
                                        | 1:2:
 
 | for I := 0 to l.Count - 1 doDaMod1.AdoDataset1(l[i]).Connection := nil;
 | 
        
      
 
bummi - Sa 23.03.13 12: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 13: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 13: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 15:44
Danke - dein Kommentar stimmt.  :-))
LG, Detlef
D. Annies - So 24.03.13 19: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 20:47
- Nachträglich durch die Entwickler-Ecke gelöscht -
D. Annies - So 24.03.13 22:21
Moin, Frühlinggsrolle,
  leider ist die Ausgabe nicht sehr erhellend, etwa in der Art:  @M
Bis zum Sommer :-))
LG, Det
bummi - So 24.03.13 23: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!