TQuery->ParamByName - Klump?
-
Hallo!
Schaut euch doch mal folgendes Phänomen in meiner Paradox-Datenbank an:
Query1->Close();
Query1->SQL->Clear();Query1->SQL->Add(select count(:tab) from gutesache);
//Query1->ParamByName("tab")->Value="ID";
Query1->Open();---
Er macht beim Ausführen einen Fehler "Merkmal nicht verfügbar". Was für ein Merkmal?Ich hab dann einfach mal das :tab gelöscht und gleich ID" reingeschrieben. So:
Query1->SQL->Add(select count(ID) from gutesache);---
dann hat's funktioniert!!
Für was ist dann ParamByName gut?? Ich meine, für was soll ich das hernehmen?Jetzt mache ich es immer so - und es funktioniert perfekt - nur ist halt diese Lösung nicht optimal...
Query1->Close();
Query1->SQL->Clear();
AnsiString tabelle = "ID"; // Kommt normalerweise als Funktionsparamter mitAnsiString str="select count(" + tabelle + ") from binaer";
Query1->SQL->Add(str);
//Query1->ParamByName("tab")->Value=tabelle;
Query1->Open();---------
Wer weiß warum die Lösung mit ParamByName nicht funktioniert?
Danke schonmal!
-
Mit ParamByName kannst du keine Felder angeben.
Du kannst nur Werte für die einzelnen Felder angegeben.Also z.B. wenn dein Befehl so lautet:
SELECT * FROM tabelle1 WHERE feld1 = "Test"
Dann könntest du den String folgendermaßen mit ParamByName aufbauen:
Query->Close(); Query->SQL->Clear(); Query->SQL->Add("SELECT * FROM tabelle1"); Query->SQL->Add("WHERE feld1 = :Wert1"); Query->ParamByName("Wert1")->Value = "Test"; // oder auch Inhalt eines Edits etc Query->Open();
-
Vielen Dank für die gute Erklärung!
Jetzt ist mir das Prinzip von ParamByName klar!
Danke JeGr!!!!!!