ورود

View Full Version : update کردن یک رکورد با استفاه از دستور SQL در ADOCommand



teresa
سه شنبه 02 بهمن 1386, 21:12 عصر
سلام
برای update کردن بانکم توسط دستور SQL در ADOCommand1.CommandText با مشکل مواجه شدم از دستورات زیر استفاده کردم کارم را راه نمی اندازد نمی دانم در کجا اشتباه می کنم!!

ADOCommand1.CommandText := 'UPDATE table1 set name=+edit5.Text+'
ADOCommand1.Execute

می خواهم فیلد نام را تغییر دهم هر چقدر هم سعی کردم پیغام خطا برای اشتباه بودن دستور SQL به من می دهد
از دستورات زیر هم استفاده کردم باز هم به من خطا می دهد.!!

ADOCommand1.Parameters.Clear
ADOCommand1.CommandText := 'UPDATE table1 set name= :pn'
ADOCommand1.Parameters.ParamByName('pn').Value := Edit5.Text
ADOCommand1.Execute

JAFO_IRAN
سه شنبه 02 بهمن 1386, 21:41 عصر
سلام

چه خطایی میده؟

البته در کد اولی که نوشتید اشکال هست - کد دوم هم اسامی تمام رکوردهای table1 رو اصلاح میکنه - به هر حال خطا رو هم لطفا بگید....



ADOCommand1.CommandText := 'update table1 set name = ' + QuotedStr(Edit5.Text);



ارادت

teresa
پنج شنبه 04 بهمن 1386, 17:24 عصر
سلام. از راهنمایی شما متشکرم. بالاخره مشکلم را توانستم حل کنم

ADOCommand1.CommandText:='update table1 set name='#39+edit5.Text+#39' where code=:pcode'
ADOCommand1.Parameters.ParamByName('pcode').Value := Edit3.Text
ADOCommand1.Execute


از دستوری که برایم نوشتید ممنون هستم

ADOCommand1.CommandText := 'update table1 set name = ' + QuotedStr(Edit5.Text);

من تا حالا از QuotedStr استفاده نکرده بودم ولی نتوانستم آن را در دستوراتم استفاده کنم چون با مشکل مواجه می شوم . وقتی دستور where را بعد از آن میگذارم به من error میدهد میخواهم از QuotedStr بتوانم استفاده کنم.

Undefined function 'QuotedStr' in expression

JAFO_IRAN
پنج شنبه 04 بهمن 1386, 17:46 عصر
سلام

این جور وقتها ممکنه که یونیت حاوی این تابع رو use نکرده باشید. برای اینکه همیشه به دردتون بخوره میگم (جسارتا) روی نام تابع help بگیرید - توی متن help اسم یونیت مربوط نوشته شده - اون رو use کنید تا ببینیم چی میشه...

ارادت

teresa
پنج شنبه 04 بهمن 1386, 21:38 عصر
سلام
این دستور QuotedStr با یونیت SysUtils استفاده می شود وقتی که یک فرم به صورت عادی ساخته شود به صورت پیش فرض SysUtils وجود دارد من فقط در درست نوشتن این تابع در نوشتن دستورم مشکل دارم

ADOCommand1.CommandText := 'update table1 set name = ' + QuotedStr
(Edit5.Text);

وقتی دستور where code=:pcode را بعد از آن می آورم به من خطا می دهد با آن به صورت مختلف امتحان کردم ولی نمی دانم که کجای کارم اشتباه است.
مشکلم را توانستم حل کنم ولی خواستم از این تابع که شما معرفی کردید هم بتوانم استفاده کنم

ممنون

حمیدرضاصادقیان
جمعه 05 بهمن 1386, 22:43 عصر
فکر کنم باید به شکل زیر استفاده کنید


ADOCommand1.CommandText := 'update table1 set name = ' + QuotedStr(Edit5.Text)+' Where code=:pcode';