PDA

View Full Version : سوال: استفاده از دو WHERE



majid534
چهارشنبه 05 تیر 1398, 13:40 عصر
سلام و وقت دوستان بخیر

من میخوام از طریق ado دستور آپدیت رو با دوشرط اجرا کنم
کد حدودا این شکلیه :

ADOCommand1.CommandText:='update XXxXX';
ADOCommand1.CommandText:='set XXX73=' +Edit3.Text;
ADOCommand1.CommandText:='Where XXX02=' +Edit1.Text;
ADOCommand1.CommandText:='and XXX15=' +Edit2.Text;
ADOCommand1.CommandText:='and XXX = 1';
ADOCommand1.Execute;

همونطور که میبینید میخوام 3 شرط اجرا بشه اما ظاهرا استفاده از AND غلطه

چه راهکاری میتونید به من بدید؟

مرسی

hp1361
جمعه 07 تیر 1398, 08:42 صبح
سلام و وقت دوستان بخیر

من میخوام از طریق ado دستور آپدیت رو با دوشرط اجرا کنم
کد حدودا این شکلیه :

ADOCommand1.CommandText:='update XXxXX';
ADOCommand1.CommandText:='set XXX73=' +Edit3.Text;
ADOCommand1.CommandText:='Where XXX02=' +Edit1.Text;
ADOCommand1.CommandText:='and XXX15=' +Edit2.Text;
ADOCommand1.CommandText:='and XXX = 1';
ADOCommand1.Execute;

همونطور که میبینید میخوام 3 شرط اجرا بشه اما ظاهرا استفاده از AND غلطه

چه راهکاری میتونید به من بدید؟

مرسی

به این روشی که شما کامند رو پر میکنید، هر دستور جدید قبلی ها رو پاک میکنه و دستور جدید جایگزینش میشه.
مقدار کامند رو در قالب یک رشته تخصیص بدید.

majid534
یک شنبه 09 تیر 1398, 08:41 صبح
میشه لطف کنید و اصلاح شدش رو بهم بگید؟
من به ترتیب زیر عمل کردم اما هنوز یک خط ارور دارم

ADOCommand1.CommandText:='update XXxXX'
,'set XXX73=' +Edit3.Text
,'Where XXX02=' +Edit1.Text
,'and XXX15=' +Edit2.Text
,'and XXX01 = 1';
ADOCommand1.Execute;
سپاس

hp1361
یک شنبه 09 تیر 1398, 11:36 صبح
میشه لطف کنید و اصلاح شدش رو بهم بگید؟
من به ترتیب زیر عمل کردم اما هنوز یک خط ارور دارم

ADOCommand1.CommandText:='update XXxXX'
,'set XXX73=' +Edit3.Text
,'Where XXX02=' +Edit1.Text
,'and XXX15=' +Edit2.Text
,'and XXX01 = 1';
ADOCommand1.Execute;
سپاس

متن خطا رو بزارید


ADOCommand1.CommandText := 'insert into table_1(Field_1, Field_2, Field_3) values(:A_Field_1, :A_Field_2, :A_Field_3)';

ADOCommand1.Parameters.FindParam('A_Field_1').Valu e := '100';
ADOCommand1.Parameters.FindParam('A_Field_2').Valu e := '200';
ADOCommand1.Parameters.FindParam('A_Field_3').Valu e := '300';

ADOCommand1.Execute();

mafazel
یک شنبه 09 تیر 1398, 16:22 عصر
-احتیاط بین AND ها پرانتز بگذارید
ADOCommand1.CommandText:='update XXxXX'
+' set XXX73=' +Edit3.Text
+' Where (XXX02='+Edit1.Text
+') and (XXX15='+Edit2.Text
+') and (XXX01 = 1)';
ADOCommand1.Execute;

اگر یکی از فیلد ها مثلا XXX15 از نوع متنی (String) است از QuotedStr استفاده کنید:
+') and (XXX15='+ QuotedStr(Edit2.Text);