Rückgabewert einer Access Datenbank
-
Hallo, Ich probier hier jetzt ewig damit herum einen Autowert einer DB (long integer) in meinem Programm zwischenzuspeichern.
ich habe es so probiert:
long int tmp = 1; Main->ADOQuery1->Close(); Main->ADOQuery1->SQL->Clear(); tmp = Main->ADOQuery1->SQL->Add("Select Tabelle2.AnlagenNr FROM Tabelle2 WHERE Tabelle2.Typ = '" + Main->DBComboBox1->Text + "'"); Main->ADOQuery1->Open();
Ich bekomme mittlerweile zwar keine Fehlermeldung, aber es tut sich auch nichts. tmp ist immer 0 obwohl ich es sogar versuchsweise mit 1 initialisiert habe.
Zum Zweck: Ich benötige diesen tmp wert weil er der Primärschlüssel einer anderen Tabelle ist, aus dem ich die entsprechenden Datensätze löschen möchte.
Irgendwie wollen diese SQL befehle aber nicht wie ich will, wenn mir jemand sagen könte was falsch ist,oder wie ich es sonst machen könnte(bitte mit code) dann sagt es mir!
-
Sieh dir in der FAQ mal den Beitrag "Ergebnisse von SELECT auswerten" an.
TADOQuery::SQL ist eine StringList, zu der du mit Add lediglich einen neuen String hinzufügst. Mit dem Inhalt der DB kommst du an dieser Stelle gar nicht in Berührung.
-
Danke ich habe es hinbekommen.
trotzdem würde mich interessieren was wohin so eine select Abfrage eigentlich was zurückgibt, irgendetwas virtuelles wohl?!
wie kann ich eigentlich einer Select Abfrage als where Bedingung eine variable übergeben? mit
Main->ADOQuery1->SQL->Add("SELECT * FROM Tabelle1 WHERE Tabelle1.AnlagenNr like" + Variable);
funktioniert es nicht wirklich, da bekomme ich nähmlich eine DB Error meldung wegen unzulässiger SQL Anweisung, SELECT,INSER oder UPDATE erwartet.
-
Hallo
Wenn Variable ein AnsiString ist, kannst du diese so einbinden :
Main->ADOQuery1->SQL->Add("SELECT * FROM Tabelle1 WHERE Tabelle1.AnlagenNr like '%" + Variable + "%'");
bis bald
akari