ورود

نسخه کامل مشاهده نسخه کامل : مشکل کار با یک جدول اکسس بدون کلید بوسیله Ado در دلفی



alî
17-02-2007, 11:43
دوستان من هنگام کار کردن با یک جدول اکسس در دلفی بوسیله ADO با این مشکلها بر میخورم.

هنگام حذف رکورد خطای زیر نمایش داده می شود
---------------------------
Project1
---------------------------
Key column information is insufficient or incorrect. Too many rows were affected by update.
---------------------------
OK
---------------------------

هنگام تغییر در رکوردی که تازه درج شده و پست شده
---------------------------
Project1
---------------------------
Row cannot be located for updating. Some values may have been changed since it was last read.
---------------------------
OK
---------------------------

هنگام رفرش کردن جدول بعد از پست
---------------------------
Project1
---------------------------
Insufficient key column information for updating or refreshing.
---------------------------
OK
---------------------------

آیا کسی تا به حال به این مشکل برخورد کرده که بدونه راه حل اون دقیقا چیه؟
ممنونم.

delphianddotnet
17-02-2007, 17:39
مشکل شما در طراحی بانک اطلاعاتی در اکسس هست . برنامه ات رو بفرست تا ببینیم چی کار کردی

delphianddotnet
17-02-2007, 17:41
یکی از مباحث مهم بانک اطلاعاتی ایجاد کلید در جداول است که شما رعایت نکردی !!!؟

Mahmood_N
18-02-2007, 00:52
سلام
برای دو مورد اول لطفا کدهایی که برای ثبت اطلاعات و حذف اونها استفاده می کنید رو بنویسید ، و در مورد سوم باید بگم که قبل از Refresh یک ADO باید ارتباطش رو با سایر کتمپوننتها ، مثلا DataSource یا ... قطع کنید ...
منتظریم ...
موفق باشید ...

delphianddotnet
18-02-2007, 01:13
و در مورد سوم باید بگم که قبل از Refresh یک ADO باید ارتباطش رو با سایر کتمپوننتها ، مثلا DataSource یا ... قطع کنید ...

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

alî
18-02-2007, 07:49
این لینک مثال برای این سوال هست:
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
برای همه جدول ها امکان تعریف کلید نیست.
مثلا دو جدول داریم: یکی فاکتور ها و دیگری لیست همه فاکتور ها. در جدول اول شماره فاکتور کلید است اما در جدول دوم هیچ کلیدی نمی توانیم تعریف کنیم.

MasterData
18-02-2007, 08:18
فايلتون ويروس داره

MasterData
18-02-2007, 08:21
در همه جدولها امكان تعريف كليد هست. ممكنه حتي كليدهاي تركيبي استفاده كنيد يا كليدها رو خودتون بسازيد(اسم اين نوع كليد رو نمي دونم. مثلا يه شماره اتوماتيك باشه)

delphianddotnet
18-02-2007, 12:51
اطلاعات تکمیلی

این لینک مثال برای این سوال هست:
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
برای همه جدول ها امکان تعریف کلید نیست.
مثلا دو جدول داریم: یکی فاکتور ها و دیگری لیست همه فاکتور ها. در جدول اول شماره فاکتور کلید است اما در جدول دوم هیچ کلیدی نمی توانیم تعریف کنیم.
دوست عزیز فایل شما الوده به ویروس jjeffo است
در صورت تکرار عمدا" از این سایت اخراج خواهید شد

alî
19-02-2007, 06:58
قضیه این ویروس عمدی نبوده و نمی دونم از کجا پیدا شده و اگه کسی به خاطرش به زحمت افتاده من معذرت می خوام.
در اکسس میشه کلید های ترکیبی تعریف کرد اما دلفی از اون اشکال می گیره. اگه کسی این کار رو کرده لطفا با جزئیات توضیح بده.

alî
19-02-2007, 07:02
تو این صفحه آقای دلفی و دات نت 4 تا پست داده که متاسفانه هیچ کدامش...

delphianddotnet
19-02-2007, 11:20
اجازه بدید دیگر کاربرها هم نظراتشون رو بگن.شاید نظرات متفاوت باشه و هر کدوم راهکار مناسب رو بگن.
موفق باشید

MasterData
19-02-2007, 11:21
من فایلو دانلود کردم حالا هر چی شد بادا باد
توی دیتابیس اکسس شما فقط یه جدول بود که هیچ کلیدی براش تعریف نشده بود
شما میتونی یه فیلد تعریف کنی و اون رو کلید قرار بدی(میتونه از نوع اتوماتیک باشخ تا نیازی به کنترل نداشته باشید)
مسلما به اشکال بر میخوره
شما یه توضیح در مورد ساختار کاری که میخواهی انجام بدی , ارائه کنید تا در طراحی دیتابیس کمک کنیم

alî
20-02-2007, 06:35
فرض کنید فاکتور های فروش را ثبت کنیم. یک جدول برای ثبت فاکتور نیاز داریم که شماره فاکتور در آن کلید اصلی است و یک جدول هم برای لیست کالاهای همه فاکتور ها. که وقتی با هم مستر/دیتیل می شوند روی هر فاکتور که کلیک کنی تمام لیست مربوط به آن فاکتور نمایش داده میشه. یعنی فیلد شماره فاکتور در جدول دوم هم وجود دارد. هیچ کلید منطقی برای جدول دوم نمیشه تعریف کرد.

MasterData
20-02-2007, 23:31
در امر طراحي شما بايد با يه ديد خاصي به مسئله نگاه كنيد
شما در يه جدول ليست كالاها رو نگهداري ميكنيد
حالا اگه بخواهيد اطلاعات يك فاكتور را نگهداري كنيد چه طراحي به نظرتان ميرسد؟
مشخصات فاكنور به طور مثال عبارتند از : شماره فاكتور ، كد كالا و نام كالا و تعداد فروخته شده
شما نياز به يك جدول داريد تا اطلاعات كلي فاكتور مانند شماره فاكتور ، تاريخ فاكتور و .... را ثبت كنيد
پس كالا ها چي شد؟؟؟
نياز به يك جدول مياني داريد كه كد فاكتور و كد كالا و تعداد كالا و ..... ثبت ميشه
به اين ميگن طراحي رابطه اي
خوب حالا سعي كن اول مدل رو روي كاغذ پياده كني و بعدا ديتابيس رو بسازي
اينجا رو هم بخوني خوبه [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

mahdi bg
22-02-2007, 00:16
سلام
من خودم یه برنامه با این مشخصات نوشتم عکس این قسمت از Data Base
رو می ذارم

mahdi bg
22-02-2007, 06:12
سلام
چیزی که Mater Data توضیح دادن + جدول مشتری

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

alî
23-02-2007, 06:15
ممنون
خطای زیر دلیلش این بود که مقدار پیش فرض فیلدی که توسط کاربر تکمیل نشده بود در اکسس 0 بود. اگه مقدار پیش فرض را برداری درست میشه.

هنگام تغییر در رکوردی که تازه درج شده و پست شده
---------------------------
Project1
---------------------------
Row cannot be located for updating. Some values may have been changed since it was last read.
---------------------------
OK
---------------------------

alî
23-02-2007, 06:19
در مورد مثالی که آقای مهدی زدند: مشکل من همون کد خرید بود. یعنی برای هر کالایی که فروخته میشه یک کد خرید باید صادر بشه. میخواستم این کار را نکنم اما مثل اینکه نمیشه.

alî
23-02-2007, 06:54
یک سوال اس کیو ال
فاکتور ها و اقلام این فاکتور و پرداختهای این فاکتور
با دستورات زیر جواب دوبرابر میده.

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]


select sum(clnum*mablagh),sum(payment.pay) from factor,forosh,payment where factor.ftcode = forosh.ftcode and factor.ftcode= payment.ftcode and facotr.ftcode = 100

alî
23-02-2007, 06:55
من نگقتم که میخوام مجموع و پرداختی فاکتور شماره 100 رو محاسبه کنم

MasterData
23-02-2007, 13:43
نمي دونم تو اكسس ميتوني از join استفاده كني يا نه . اينجوري خيلي راحت ميشه

alî
24-02-2007, 07:05
آقای مستر دیتا
اول خیلی ممنون از اینکه وقت میزارید.
دوم: من روزی یه بار به این انجمن سر میزنم. اگه شما بخواین همینطوری یه خط یه خط برین جلو تا یه ماه دیگه طول می کشه.
لطف کنین هر چی میدونین در این مورد بنویسین.
بازم ممنون

MasterData
24-02-2007, 08:34
من روزی یه بار به این انجمن سر میزنم. اگه شما بخواین همینطوری یه خط یه خط برین جلو تا یه ماه دیگه طول می کشه
هر كسي از فعاليت توي اين انجمنها هدفي داره
شما هدفتون يادگيري و منم هدفم بالابردن اطلاعاتم
وقتي ميگم از Join استفاده كنيد منظورم اين نيست كه بيان تمام جزئيات رو در اختيارتون بذارم به دو دليل :
1- من با عرض شرمندگي اينقدر وقت ندارم كه مسئله شما رو تحليل كنم و به جواب كامل برسم
2- اگه جواب كامل رو به شما بگم به شما ظلم كردم چون چيزي ياد ندادم فقط مسئلتون رو حل كردم در صورتي كه نميخوام اين انجمن ها باعث تنبلي برنامه نويسان بشه
پس من فقط در حد استارت موضوع راهنمايي ميكنم اگه ديگه نهايتا نتونستيد مشكل رو رفع كنيد ( كه ميتونيد) اونوقت به تحليل كامل مسال ميرسيم
در ضمن من از صبح تا شب توي اين انجمنها ميچرخم :دي
انجمنهاي زياد ديگه اي هم هست كه ميتونيد جستجو كنيد و مسالتون رو رفع كنيد
فكر كنم از انتظار كشيدن حيلي بهتر باشه
(خدا ميدونه الان ته دلت چقدر بدوبيراه بهم گفتي)

alî
25-02-2007, 06:42
نميخوام اين انجمن ها باعث تنبلي برنامه نويسان بشه

من قبل از اینکه سوال رو تو انجمن مطرح کنم به دو تا کتاب (راهنمای جامع دلفی و پایگاه داده ها در دلفی) رجوع کردم و هر کدی هم که به فکرم می رسید نوشتم. اما فایده ای نداشت. الان هم که چند روز از مطرح کردن سوال میگذره پروژه ام رو تموم کردم! به جای کلید در جدول ها هم autonumber تعریف کردم.چون اونقدر وقت ندارم که چند روز منتظر یک جواب بمونم.

اگه ديگه نهايتا نتونستيد مشكل رو رفع كنيد ( كه ميتونيد) اونوقت به تحليل كامل مسال ميرسيم

فکر کنم الان موقع تحلیل الگوریتم هست.

(خدا ميدونه الان ته دلت چقدر بدوبيراه بهم گفتي)
نه من همه اونایی که مردم رو دوست دارن، دوستشون دارم.