View Full Version : خطا از رفتن یک سطر dbgrid به سطرهای قبلی
mohamadmjk
پنج شنبه 19 بهمن 1385, 22:22 عصر
توی برنامه من کاربر میتونه اطلاعات رو در یک جدول وارد کنه و همین کار هم میشه ولی یک مشکل هست اگر کاربر بخواد یکی از سطرهای قبلی رو تغییر بده جدول دیگه کار نمیکنه و همش خطا میده خطاش هم اینه :
m-khorsandi
پنج شنبه 19 بهمن 1385, 22:49 عصر
لینک زیر کمکت میکنه :
من از ado , sql استفاده می کنم و مشکل زیر را دارم (http://barnamenevis.org/forum/showthread.php?t=30186)
merced
جمعه 20 بهمن 1385, 07:12 صبح
فیلد های رکورد را کامل پر کن
حداقل کلیدهای ثانوی و ایندکس ها رو
mohamadmjk
یک شنبه 22 بهمن 1385, 11:54 صبح
فیلد های رکورد را کامل پر کن
حداقل کلیدهای ثانوی و ایندکس ها رو
ولی این کار شده
m-khorsandi متشکر ولی روش شما نیز جواب نداد و هنوز هم همون پیغام رو میده
m-khorsandi
یک شنبه 22 بهمن 1385, 13:07 عصر
تنظیماتت و اینکه چه کدی نوشتی رو اینجا بنویس،
یا اینکه یه نمونه برنامه کوچیک که این خطا رو بده، ضمیمه کن.
user addi
یک شنبه 22 بهمن 1385, 17:14 عصر
اگه تو بانکت یه فیلد PK داری که autoincrement نیست باید موقعی که یه رکورد جدید تو جدول باز میکنی حتما به اون مقدار بدی وگرنه درست نمی شه...
اگه فیلدت مثلا شماره ایندکس یا یه فیلد عددی هست بهتره autoincrement بزاریش .
همچنین اگه fk هم تو بانکت داری باید اون رو هم مقدار بدی....
این کار ها رو هم باید به صورت دستی و در یکی از event های کامپوننت table که متاسفانه الان یادم نیست بنویسی...
متاسفانه الان delphi ندارم که دقیقا بگم کجا و چی باید بنویسی !!!!!
mohsenmodhej
سه شنبه 24 بهمن 1385, 04:08 صبح
اگر جدولت هیچ ارتباطی با جایی نداشته باشه احتمال وجود دو تا مشکل وجود داره
1) هیچ فیلد کلیدی تعریف نکردید
2) در دلفی 5 این مشکل وجود دارد مگر آنکه بانکتان BDE باشد.
mohamadmjk
جمعه 27 بهمن 1385, 11:28 صبح
اول از همه معذرت میخوام
تنظیماتت و اینکه چه کدی نوشتی رو اینجا بنویس،
یا اینکه یه نمونه برنامه کوچیک که این خطا رو بده، ضمیمه کن.
فیلد کلید گذاشتم.مقدار اتوماتیک داره.
حتی کدی برای post کردن رکورد هم گذاشتم ولی فایده نداشت.
به همه فیلدها هم قبل از ترک خط مقدار غیر تکراری دادم.
هیچ تنظیم خاصی هم نگذاشتم البته فکر کنم مشکل از ehlib باشه چون جدولم با اونه
اینم کد برای پرکردن جدول قبل از خروج ازفیلد که در رویداد oncolexit گذاشتم
if (DataSource3.DataSet.State=dsedit)or(DataSource3.D ataSet.State=dsinsert) then
begin
if DBGridEh2.SelectedField.FieldName='name' then
if frm_kala.DataSource1.DataSet.Locate('name',DBGridE h2.Fields[0].text,[]) then
begin
DBGridEh2.Fields[2].Text:=frm_kala.DataSource1.DataSet.fieldbyname('c ode').AsString;
DBGridEh2.Fields[3].Text:=frm_kala.DataSource1.DataSet.fieldbyname('t edad').AsString;
DBGridEh2.Fields[4].Text:=frm_kala.DataSource1.DataSet.fieldbyname('f ikharid').AsString;
end;
if DBGridEh2.SelectedField.FieldName='fi' then
DBGridEh2.Fields[5].Value:=DBGridEh2.Fields[3].Value*DBGridEh2.Fields[4].Value;
end;
البته همونطور که گفتم فقط وقتی که کاربر برای تغییر تعداد یا قیمت یکی از رکوردهای قبلی روی اون کلیک میکنه مشکل پیش میاد و باید جدول رو خالی کنم تا دوباره بشه توش اطلاعات وارد کرد
V60
جمعه 27 بهمن 1385, 14:21 عصر
توی before post یا afterpost چیزی ننوشتی؟
mohamadmjk
جمعه 27 بهمن 1385, 17:40 عصر
توی before post یا afterpost چیزی ننوشتی؟
هیچی فقط توی رویدادی که توی کد گفتم نوشتم
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.