![]() |
Wo, wie wann wird die SQL-Anweisung erzeugt?
Hallo erst einmal,
wenn man Anweisungen an die Datenbank in der Art
Code:
schickt, müssen diese doch vorher durch Delphi(oder dem Datenbanktreiber) in eine SQL-Anweisung verwandelt werden
LTable.FieldByName('ID').AsString := myID;
damit sie auf der Datenbank ausgeführt werden können. Oder seh ich das falsch? Wenn es so ist,... ... wo, wie und wann wird diese SQL-Anweisung erzeugt? Gruß Tyrael |
Re: Wo, wie wann wird die SQL-Anweisung erzeugt?
versteh ich nicht was hat der feldname mit ner sql abfrage zutun????
moon |
Re: Wo, wie wann wird die SQL-Anweisung erzeugt?
Zitat:
Code:
UPDATE myTable SET ID = myID
... wenn ich mich nicht irre |
Re: Wo, wie wann wird die SQL-Anweisung erzeugt?
Üblicherweise brauchst Du mindestens folgende Komponenten:
- Database - Transaction - Dataset Und das Dataset muß Kenntnis von den Feldern haben. Sind diese drei Komponenten richtig eingestellt, dann kann man so eine Zuweisung machen. Denn das ist dann die Verbindung zu Delphi. |
Re: Wo, wie wann wird die SQL-Anweisung erzeugt?
ähm
Zitat:
ich benutze eine MSSQL - Datenbank... Die Verbindung zur DB wird so aufgebaut ...
Code:
z.B lese ich ich Daten folgendermassen aus der DB... fDBConnector := TADOConnection.Create(nil); try fDBConnector.LoginPrompt := False; fDBConnector.ConnectionString := 'Provider=SQLOLEDB.1;Password=Test;Persist Security Info=True;User ID=sa;Initial Catalog=ACMP;Data Source=myComputer'; fDBConnector.Connected := True; ...
Code:
also in dem Schritt
...
lTable := TADOTable.Create(nil); try lTable.Connection := fDBConnector; lTable.TableName := 'TestTable'; lTable.Open; while not lTable.Eof do begin myMemo.Lines.Add(lTable.fieldbyname('NAME').AsString); lTable.Next; end; finally lTable.Free; end; ...
Code:
wird ja die Anweisung lTable.fieldbyname('NAME').AsString auf der DB ausgeführt
myMemo.Lines.Add(lTable.fieldbyname('NAME').AsString);
was der SQL-Anweisung SELECT NAME FROM TestTable entspricht Die DB kann ja halt nur SQL-Anwesiungen ausführen, ... ... wann, wo, wie wird lTable.fieldbyname('NAME').AsString in SELECT NAME FROM TestTable gewandelt? Ich hoffe jetzt wird meine Frage klarer. |
Re: Wo, wie wann wird die SQL-Anweisung erzeugt?
Bei ADO und dem Access Krempel muß ich passen. Allerdings wirst Du wohl auch eine Datenmenge brauchen, die mit SELECT zusammengesucht wurde. Und hierauf kann man dann mit FieldByName zugreifen.
|
Re: Wo, wie wann wird die SQL-Anweisung erzeugt?
ok trotzdem thx.
ich bin mir ja auch nicht sicher, ob das überhaupt geht, da ich ganz gerne die SQL-Anweisung die zum Ausführen auf die DB geschickt wird auslesen möchte, das ist das Ziel... .. alles andere war nur eine Überlegung meinerseits Gruß Tyrael |
Re: Wo, wie wann wird die SQL-Anweisung erzeugt?
Hallo Tyrael Y. ,
Es ist sehr wahrscheinlich, daß hier überhauptnicht mit SQL gearbeitet wird. Du greifst sicherlich über einen ODBC- Treiber auf deine Datenbank zu. Die Übergabe an den ODBC-Treiber erfolgt über eine standardisierte Schnittstelle und dementsprechenden Befehlen (nicht SQL). Der ODBC- Treiber greift dann auf die Datenbank über Datenbankspezifische Befehle zu (ebenfalls nicht SQL). Wenn du aber eine SQL-Anweisung abschickst, wird diese über den ODBC-Treiber an den DB-Server geroutet und dort ausgeführt. Sieh also SQL bitte nur als eine Möglichkeit auf Datenbanken zuzugreifen. Grüße Daniel |
Re: Wo, wie wann wird die SQL-Anweisung erzeugt?
@daniel
ok danke, habe ich auch vermutet, aber habe trotzdem in der TADOTable und verwandten Klassen nach dem setzen und schicken des SQL-Strings gesucht und leider nicht fündig geworden Schade eigentlich, daß kein SQL-String aufgebaut wird, da ich diesen in einem Log-File speichern wollte .. da kann man wohl erst einmal nix machen... :? .. muss also nach ner anderen Möglichkeit zum loggen gucken danke dir Gruß Tyrael |
Re: Wo, wie wann wird die SQL-Anweisung erzeugt?
Hast du schon mal versucht mit dem Profiler (SQL-Servertool) den Verkehr zwischen Delphi und dem SQL-Server abzuhören? Ich schau mir so immer an, was genau passiert wenn ich ne SQL-Fehlermeldung bekomme mit der ich nichts anfangen kann.
Nen Versuch wärs auf jeden Fall wert! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:58 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