ADODataSet und LIKE Parameter über SQLOLEDB SQL Server 2005
-
Hallo Zusammen,
habe Problem mit dem TAdoDataSet in Verbindung mit dem LIKE Parameter in der SQL Anweisung.
Folgender Code funktioniert:
ADODataSetVLOG_DB->CommandText="SELECT Send_Hilf_04,Send_Hilf_01,Send_Hilf_02,Send_ID,Empf_Adr_01,Empf_Adr_02,Send_Versanddatum,Send_GewichtEinzel,Frachtfuehrer,INT_Benutzer,Send_VersandUhrzeit,Empf_Mail FROM Archiv_Versanddaten WHERE Empf_Adr_01 LIKE '%" + this->EditName1->Text + "%'"; if( this->ADODataSetVLOG_DB->RecordCount > 0 ) { //weiterer Code //Dieser FUNKTIONIERT !!!!!!
Folgender Code unter Verwendung der Parameter dagegen nicht:
ADODataSetVLOG_DB->CommandText="SELECT Send_Hilf_04,Send_Hilf_01,Send_Hilf_02,Send_ID,Empf_Adr_01,Empf_Adr_02,Send_Versanddatum,Send_GewichtEinzel,Frachtfuehrer,INT_Benutzer,Send_VersandUhrzeit,Empf_Mail FROM Archiv_Versanddaten WHERE Empf_Adr_01 LIKE :Empf_Adr_01"; ADODataSetVLOG_DB->Parameters->ParamByName("Empf_Adr_01")->Value="%Dat%"; ADODataSetVLOG_DB->Open(); //anzahl treffer 0 if( this->ADODataSetVLOG_DB->RecordCount > 0 ) { //weiterer code
Weiß jemand Rat ?
Ich möchte schon mit Parametern arbeiten, stichwort SQL Injection...
-
"Funktioniert nicht" ist keine Problembeschreibung.
-
Also... nur mal zum Verständnis...
In Deinem Beispiel 1 hast Du in
EditName1->Text
"DAT" drinstehen?
Und warum hast Du im 2. Beispiel die Hochkomata um das "§DAT§" nicht gesetzt?
mfg
Frank
-
Hallo,
erstmal Danke.Was ist an meiner Formulierung unverständlich?
Wenn ich den LIKE ohne Parameter aus dem TAdoDataSet übergebe, sprich komplett
im CommandText läuft es.
Wenn ich die Parameter verwende bekomme ich 0 Treffer!
-
habe ich selber gelöst:
Auf den Parameter muß vor der Zuwesisung des Values ein
DataType=ftString //oder natürlich ein anderer typ
folgen.trotztdem Danke!