View Full Version : دستور update در دلفی7
soft-c
چهارشنبه 16 تیر 1389, 14:06 عصر
سلام.
من یک برنامه با دلفی 7 نوشتم و در دستور update آن مشکل دارم .(بانک sql)
برنامه به این صورت است :
adoquery1.close;
adoquery1.sql.clear;
adoquery1.sql.text:='update active set (name='+edit1.text+',famil='+edit2.text+' where id2='+edit3.text+')';
adoquery1.exeproc;
ایزاد نمیگیره ولی اجرا هم نمیشه .
soft-c
چهارشنبه 16 تیر 1389, 15:24 عصر
سلام.
کد قبلی این بود :
ADOQuery2.Close ;
ADOQuery2.SQL.Clear ;
ADOQuery2.SQL.Text := 'update active set name='''+Edit2.Text +''' where id2='''+Edit1.Text +''' ';
ADOQuery1.ExecSQL ;
gbg
چهارشنبه 16 تیر 1389, 16:03 عصر
نگفتی درست شد یا نه
ولی بهتره به جای Text از Add استفاده کنی ولی اینجوری هم مشکلی نداره
و به جای ''' از Qoudstr استفاده کنی که خواناتر بشه
و در آخر باید AdoQuery2 رو اجرا کنی نه AdoQuery1 رو
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('update active set name='+Qoudstr(Edit2.Text)+' where id2='+Edit1.Text);
ADOQuery2.ExecSQL;
soft-c
چهارشنبه 16 تیر 1389, 21:52 عصر
سلام.
تشکر دوست عزیز .
مشکل حل شد .
حواسم نبود که باید adoquery 2 را اجرا کنم .
ممنون.
soft-c
چهارشنبه 16 تیر 1389, 22:12 عصر
سلام.
یک سوال دیگه هم داشتم .
اگر بخواهم تغییرات را با dbedit انجام بدهم چطوریه؟
یعنی کاربر برای مثال شماره ملی را وارد می کند و اطلاعات مورد نظر در dbedit نشان داده می شود . بعد کابر اگر خواست این اطلاعات را تغییر میدهد ( داخل dbedit) و روی یک دکمهی دیگر که دستورات update نوشته سده است کلیک میکند تا این تغییرات اعمال شود .
اولا آیا این راه منطقی است ؟
دستورات آن با زمانیکه از edit استفاده می کنیم فرقی دارد .
تشکر.
mehdimdp
پنج شنبه 17 تیر 1389, 00:11 صبح
اتفاقا این کار یک روش راحت و آسوده و منطقی هستش. مخصوصا در زمانی که تعداد فیلدها زیاد باشند.
و برای این کار باید از دستور locate برای پیدا کردن رکورد مورد نظر و با دستور youradotable.edit به همراه youradotale.post میتونید عملیات اصلاح رکوردها را انجام دهید.
hamidrah
پنج شنبه 17 تیر 1389, 12:13 عصر
با دستور locate کدوم رکورد رو پیدا کنه dbedit که خودش روی رکورد فعلیه و میتونه ویرایش بشه دوست عزیز ، منظورتون چی بود؟:متفکر:
soft-c
پنج شنبه 17 تیر 1389, 12:55 عصر
سلام.
میشه دستورات update با dbeditرا بنویسید . چون وقتی من از همان دستورهای تاپیک 3 استفاده می کنم و به جای dbedit، edit قرار می دهم syntacs error می دهد .
و یک مشکل دیگه اینکه یک فیلد آدرس دارم که از نوع nvarchar است و آدرس کاربر در آن ذخیره میشود ولی وقتی با adotable و dbgrid برای نشان دادن table به پایگاه وصل می شوم درون grid به جای آدرس عبارت [memo]قرار دارد که امکان ویرایش آن هم وجود ندارد چون error می گیرد . چه راهکاری پیشنهاد می دهید ؟
تشکر.
mehdimdp
پنج شنبه 17 تیر 1389, 19:02 عصر
با دستور locate کدوم رکورد رو پیدا کنه dbedit که خودش روی رکورد فعلیه و میتونه ویرایش بشه دوست عزیز ، منظورتون چی بود؟:متفکر:
سلام
مثلا میخواهید رکوردی با کد 1234 را ویرایش کنید.
که مثلا کاربر اون رو در یک edit وارد کرده باشد . حالا میتوان با دستور youradotable.locate اشاره گر جدول رو به رکورد مورد نظر جهت ویرایش انتقال داد.
soft-c
جمعه 18 تیر 1389, 17:05 عصر
سلام.
مشکل من در locate نیست .
مشکل من در فیلد آدرس است که در تاپیک 8 گفتم .
تشکر.
soft-c
جمعه 18 تیر 1389, 20:30 عصر
help!!!!???????
gbg
یک شنبه 20 تیر 1389, 00:08 صبح
کار سختی نیست
راحت ترین راحی که به نظرم میرسه اینه که خاصیت Auto edit دیتاسورست رو True کنی و یک دکمه هم بزاری و جدول یا گزارشت رو با دستور Post ذخیره کنی
babak_delphi
یک شنبه 20 تیر 1389, 13:19 عصر
ضمنا میتونی از یک DBMemo هم برای آدرس استفاده کنی
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.