PDA

View Full Version : اين خطا بيشتر مربوط به چه ميشه؟



Modernidea
چهارشنبه 16 بهمن 1387, 02:08 صبح
Project Ajnas.exe raised exception class EDatabaseError with message 'Key column information is
insufficient or incorrect. Too many rows were affected by update'. Process stopped. Use Step or Run to
continue
عكس پنجره پيام رو هم گذاشتم
لطفا كمك
:اشتباه::ناراحت:

AliReza Vafakhah
چهارشنبه 16 بهمن 1387, 02:53 صبح
این طور که از نام فایل exe و متن خطا پیدا هست ، برنامه به پایگاه داده ای اتصال دارد و فکر کنم خطا باید موقعه ای رخ بده که قرار جدول یا رکوردی update بشه .

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

vcldeveloper
چهارشنبه 16 بهمن 1387, 02:54 صبح
یعنی فیلد کلید یکتا یا همون primary Key برای جدول مربوطه تعریف نکردید. اگر دقت می کردید، همین یکی دو روز پیش همین سوال پرسیده شد.

Modernidea
چهارشنبه 16 بهمن 1387, 11:04 صبح
یعنی فیلد کلید یکتا یا همون primary Key برای جدول مربوطه تعریف نکردید. اگر دقت می کردید، همین یکی دو روز پیش همین سوال پرسیده شد.

شرمنده نميدونستم چي بايد سرچ كنم.
اما من يك جدولي دارم كه اصلا كليد نبايد داشته باشه.
جدولي كه دارم مربوط به فاكتور هست . فيلدهاش به اين شكل است: كد فاكتور، كد جنس، كد مشتري، نام جنس و چند فيلد ديگه كه همشون تكرار ميشن. مثلا كد فاكتور كه اگر براي يك شخص مورد نظر بيشتر از يك جنس فاكتور شود پس اون شماره فاكتور چند بار تكرار شده ست. پس عملا نميشه كليدي داشت.
اشتباه من در كجا است؟

vcldeveloper
چهارشنبه 16 بهمن 1387, 16:56 عصر
مثلا كد فاكتور كه اگر براي يك شخص مورد نظر بيشتر از يك جنس فاكتور شود پس اون شماره فاكتور چند بار تكرار شده ست. پس عملا نميشه كليدي داشت.
این دلیل نمیشه که شما کلید نداشته باشید. ترکیب یک یا چند فیلد در هر سطر جدول شما باید بتواند آن سطر را منحصر به فرد بکند. حالا یا شما یک فیلد یکتا دارید، و آن را به عنوان کلید مطرح می کنید، یا چند فیلد را که با هم موجب منحصر به فرد شدن یک رکورد می شوند را به عنوان کلید انتخاب می کنید، یا به فیلدهای موجود یک فیلد جدید اضافه می کنید که کاربردش فقط منحصر به فرد کردن رکورد باشه، مثل یک فیلد ID از نوع AutoNumber.

mafazel
چهارشنبه 16 بهمن 1387, 17:19 عصر
جدولي كه دارم مربوط به فاكتور هست . فيلدهاش به اين شكل است: كد فاكتور، كد جنس، كد مشتري، نام جنس و چند فيلد ديگه كه همشون تكرار ميشن. مثلا كد فاكتور كه اگر براي يك شخص مورد نظر بيشتر از يك جنس فاكتور شود پس اون شماره فاكتور چند بار تكرار شده ست. پس عملا نميشه كليدي داشت.
اشتباه من در كجا است؟
دوست عزیز chatbaz، معمول این است که بجای اینکه یک جدول داشته باشید و توش کد فاکتور، کد مشتری، نام جنس و چند فیلد دیگه و رو داشته باشید، اول یک جدول برای فاکتورها طراحی می کنید که کد فاکتور، نام مشتری، مبلغ فاکتور، تاریخ فاکتور، نحوه تسویه و... رو ذخیره می کنید و در یک جدول دیگه ریز اجناس فاکتورها رو وارد میکنید که شامل کد فاکتور (این فیلد مشخص می کند که ردیفهای این جدول مربوط به کدام فاکتور هستند)، کد جنس، تعداد، قیمت واحد، قیمت کل و ... است. به این ترتیب در جدول اول (فاکتورها) فیلد کد فاکتور می تواند (باید) کلید باشد.
در جدول ریز اجناس فاکتورها هم میتوانید یک فیلد الکی بنام ID (پیشنهاد خود Access) تعریف کنید و اونو کلید کنید هر چند در عمل ازش استفاده نکنید.

Modernidea
پنج شنبه 17 بهمن 1387, 03:33 صبح
تشكرا جليلا از تمام آقايون

mafazel :
آقا دمت گرم زدي به خال. چون اول راهم هرچي توي اين سايت گشتم كه بايد چيكار كرد هيچ كس جواب درست حسابي نداد. خداييش زدي به خال. شايد براي خيلي ها جيزي خيلي ساده اي باشه ولي من كه خودمو كشتم. نگرفتم بايد چيكار كنم.
مرسي