![]() |
AdsConnection während Laufzeit erstellen
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
ich beschäftige mich im Moment mit den ADS-Komponenten, um die BDE zu ersetzen. Jetzt würde ich die AdsConnection gerne während der Laufzeit erstellen. Folgendermaßen habe ich es versucht:
Delphi-Quellcode:
Später möchte ich eine SQL-Anweisung ansführen:
slKategorien := TStringlist.Create;
Query := TAdsQuery.Create(Query); AdsConn := TAdsConnection.Create(AdsConn); AdsConn.IsConnected := false; AdsConn.ConnectPath := ExtractFilePath(ParamStr(0)); AdsConn.AdsServerTypes := [stADS_LOCAL]; Query.DatabaseName := 'AdsConn';
Delphi-Quellcode:
Dann kommt die Fehlermeldung, die ich an diesen Beitrag angehängt habe. Kann mir jemand sagen, wo der Fehler liegt?
with Query do
begin Close; Sql.Clear; Sql.Add('SELECT Kat_Name FROM "' + StrTabelle + '"'); Open; end; |
Re: AdsConnection während Laufzeit erstellen
Du mußt glaube ich nicht Query.Databasename auf einen String setzen, sondern vor allem Query.Connection auf die Connection.
|
Re: AdsConnection während Laufzeit erstellen
Kommt die Meldung auch schon in der IDE? Wann genau kommt die Fehlermeldung und unter welchem Betriebssystem?
|
Re: AdsConnection während Laufzeit erstellen
Hi,
ein guter Weg herauszufinden, was man coden muß, ist diegleiche Komponenten einmal in der IDE zu erstellen, und dann die Komponente markieren, und kopieren und in einen Texteditor pasten. Was noch besser geht ist die Funktion Componenttocode der Gexperts. Grüsse Woki |
Re: AdsConnection während Laufzeit erstellen
@bttb930: Die Eigenschaft Query.Connection habe ich nicht gefunden. Bist du sicher, dass es sie gibt?
@Kevin: Die Fehlermeldung kommt nicht in der IDE. Die Fehlermeldung taucht auf, wenn ich eine Query ausführe. Ich arbeite mit Windows. @Woki: Danke für den Tipp, aber das hat mir auch nicht weitergeholfen. Ich habe mir das in einem Texteditor angesehen und die angezeigten Eigenschaften programmiert, aber es hat nichts genützt :( |
Re: AdsConnection während Laufzeit erstellen
Zitat:
|
Re: AdsConnection während Laufzeit erstellen
Zitat:
|
Re: AdsConnection während Laufzeit erstellen
Also ich verbinde meine Datenbank zur Laufzeit folgendermaßen:
Delphi-Quellcode:
Alle Querys sind mit der Connection verbunden und lassen sich ohne Probleme ausführen. Unter 98/2000/XP.
DataModule2.AdsConnection1.IsConnected := false;
DataModule2.AdsConnection1.ConnectPath := ExtractFilePath(Application.ExeName); DataModule2.AdsConnection1.IsConnected := true; Ich fragte nur nach der Windowsversion, weil ich unter 98 und 2000 eine Fehlermeldung bekam, wenn ich den direkten Pfad vor dem Erzeugen des Projektes nicht gelöscht habe. Bei XP war auch das kein Problem. |
Re: AdsConnection während Laufzeit erstellen
Danke, aber das habe ich bei mir ja auch alles drin. Aus der Fehlermeldung schließe ich, dass es etwas mit dem lokalen Betrieb zu tun hat.
|
Re: AdsConnection während Laufzeit erstellen
Schonmal die KnowledgeBase von Advantage dazu befragt?
|
Re: AdsConnection während Laufzeit erstellen
Nein, noch nicht.
Meinst du damit die Hilfe oder gibt es da etwas anderes? |
Re: AdsConnection während Laufzeit erstellen
Du gibst für Deine Query als databasename 'AdsConn' an. Woher weiss denn Delphi zur Laufzeit, was das wohl sein soll ? Es fehlt in Deinem Source eine Zeile:
Delphi-Quellcode:
Und später natürlich:
AdsConn := TAdsConnection.Create(nil);
AdsConn.Name := 'FckngConnection';
Delphi-Quellcode:
Immer dran denken. AdsConn ist ein VARIABLENNNAME, den gibts aber nicht zur Laufzeit. Also muss über den KOMPONENTENNAMEN gegangen werden, und der heißt bei jeder Komponente name.
Query.DatabaseName := 'FckngConnection';
Zu guter Letzt solltest Du die Komponenten (Also TAdsConnection und TQuery) nicht auf sich selbst als Parent legen. Falsch:
Delphi-Quellcode:
Richtig:
AdsConn := TAdsConnection.Create(AdsConn);
Delphi-Quellcode:
AdsConn := TAdsConnection.Create(nil); // oder z.B. Form1
|
Re: AdsConnection während Laufzeit erstellen
Zitat:
![]() |
Re: AdsConnection während Laufzeit erstellen
@Union: Vielen Dank. Ich versuche es gleich.
@Kevin: Danke für den Tipp. Ich sehe es mir mal an. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:59 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz