PDA

View Full Version : ذخیره اطلاعات در دیتابیس



حمیدرضاصادقیان
دوشنبه 26 اردیبهشت 1384, 11:14 صبح
سلام.
من میخوام وقتی که اطلاعات وارد یک editbox کردم بعد از زدن دکمه ای اونو وارد دیتابیس بکنم.
خودم از این کد استفاده کردم.

adotable1.fieldbyname('no_factor').value := edtfano.text;
حالا مشکل اینجاست که پیغام میده دیتابیس در حالت ادیت نیست.
میام قبلش اونو باز میکنم و سپس این کد رو مینویسم

adotable1.edit;

حالا وقتی میخوام اطلاعات رو پست کنم یا اضافه کنم بازم خطا میده.
چیکار کنم؟
روش دیگه ایی داره؟؟؟؟؟؟؟؟ :گیج:

V60
دوشنبه 26 اردیبهشت 1384, 12:51 عصر
ببین مهندس
قاعدتا نباید ایراد بگیرد
ولی اگر بازهم مشکل داشتی من یک راه دیگه پیشنهاد می کنم
که البته مثل راه خودت است
(((توی پرانتز بگم بهت که چک کرده ای که آیا دیتابست در ویندوز در حالت read only نباشد , می دونی که در property خود فایل منظورم است , اگر اونجا به حالت فقط خواندنی باشد این ایراد را می گیرد البته من توسط کد بلد نیستم که از حالت read only خارج کنم , اساتید محترم هرکی بلده بگه)))))
و اما راه اینه که روی adotable کلیک راست کن و field editor را انتخاب کن و در صفحه ای که باز می شود دوباره کلیک راست کن و add all را بزن حالا به جای کد خط اولی که نوشته ای اینجوری بنویس
adotable1.open;
adotable1.edit;
adotable1no_facto.asstringr:= edtfano.text;
adotable1.post;
فکر کنم درست بشه
البته روش خودت هم جواب می ده
پرانتز را بررسی کن و ببین چطوریه :flower:

حمیدرضاصادقیان
دوشنبه 26 اردیبهشت 1384, 13:02 عصر
دستت درد نکنه حالا اینم تست میکنم. :sunglass:

دوشنبه 26 اردیبهشت 1384, 14:20 عصر
edit برا وقتی است که شما میخوای یک رکورد رو ویرایش کنید برای اضافه کردن باید از متد insert یا apend استفاده نمایید . البته خطا مربوط به آن نیست این رو برای این نوشتم که گفتی میخوای رکورد اضافه کنی .
برای خطای مربوطه متن آن را بنویسید .

:موفق:

hr110
سه شنبه 27 اردیبهشت 1384, 07:18 صبح
قبل از ویرایش رکورد باید با اسفاده از متدهایی شبیه به Locate کنترل را به رکورد مورد نظر انتقال بدهید ، من فکر میکنم خطایی که شما با آن مواجه هستید به این دلیل باشد.
ضمناً هیچگاه از Value. استفاده نکنید :موفق:

leylam
سه شنبه 27 اردیبهشت 1384, 14:33 عصر
دو تا پیشنهاد دارم :
1).به دلیل داشتن قابلیت های بیشتر برایqueryو محدودیت های کمتر بهتر است به جای tadotable از tadodataset
2)به جای نوشتن:
adotable1.fieldbyname('no_factor').value := edtfano.text
به صورت:
adotable1.fieldbyname('no_factor').asstring:= edtfano.text(بستگی به نوع داده از:asstring or asinteger or .....استفاده نمائید.
موفق باشید. :)

javidtaheri
سه شنبه 27 اردیبهشت 1384, 17:51 عصر
دوست عزیز
1-این کاری که میکنی رکورد جاری را ویرایش میکند و یا اگر جدول خالی باشد یک رکورد اضافه میکند و با این دستور جدولت همیشه یک رکوردی است
2- بهتر است از Insert استفاده کنی
3- error خودت را اینجا بنویس شاید مشکل از ایندکس باشد
4- این دستور چی ؟ خطا میده؟ i = شماره فیلد جدول adotable1.fields[i].Text:= edtfano.text;
:kaf:

javidtaheri
سه شنبه 27 اردیبهشت 1384, 17:57 عصر
فیلد مذکور نکنه که Text نباشه

mmds
چهارشنبه 04 خرداد 1384, 05:55 صبح
لطفا کد کامل خطا را بنویس

kamyar_kimiyabeigi
شنبه 21 خرداد 1384, 16:06 عصر
در ضمن اگر می خواین با Text مربوط به Edit کار کنید بهتره از function زیر استفاده کنین

Trim()