PDA

View Full Version : Auto Increment



شفیعی
چهارشنبه 12 فروردین 1383, 05:01 صبح
سلام
2تا TABLE داریم که هر کدام یک فیلد ID دارند در ولی این فیلد از نوع autoincrement تعریف شده است و کلید اصلی نیز می باشد در دولی این فیلد از نوع NUMBER تعریف شده است می خواهیم این دو TABLE را توسط این دو فیلد به هم وصل کنیم وقتی وصل می کنیم و در 2 DBGRID نمایش می دهیم وقتی در DBGRID دومی 2 تا رکورد وارد می کنیم پیغام زیر را می دهد ارتباط بین TABLE ها یک به چند است


EDBENGINEERROR WITH MESSAGE ' KEY VIOLATION'
[/quote]

moradi_am
چهارشنبه 12 فروردین 1383, 10:50 صبح
احتمالا در فیلد دوم امکان ایجاد رکورد تکراری را نداده اید یا ایندکسی که ایجاد شده بصورت uniq تعریف شده است.

شفیعی
پنج شنبه 13 فروردین 1383, 04:43 صبح
سلام
2تا TABLE داریم می خواهیم طوری این TABLE ها را طراحی کنیم که توسط یک فیلد به نام ID با هم مرتبط باشند در TABLE اولی مشخصات مشتری درج می شود و فیلد ID کد مشتری می باشد و در TABLE دومی مشخصات چکهای صادر شده توسط مشتری نگه داری می شود می خواهیم برنامه به طور خود کار برای هر مشتری یک کد تولید کند که در TABLE اولی این کد منحصر بفرد و در TABLE دومی این کد می تواند تکراری باشد زیرا یک مشتری بیش از یک چک می تواند صادر کند حالا باید این فیلد ها را از چه نوع و چگونه طراحی کنیم

DataMaster
پنج شنبه 13 فروردین 1383, 09:10 صبح
خوب چیزی که مشخصه باید در جدول اطلاعات مشتریان هر مشتری کد یکتا داشته باشه و به همین دلیل خودبه خود کلید میشه که این فیلد رو میتونی به صورت خوکار هم تعریف کنی اما من شخصا به عهده کاربر میذارم چون کاربر ها یه سری مسایل دلخواه خودشون رو بایت کد اجرا می کنن
اما در جدول دوم فیلد کد همراه با یک یا چند فیلد دیگه می تونن کلید رو تشکیل بدن(به هر حال جدول بدون کلید نمیشه) که این بستگی طراحی داره
موقع ثبت کردن در جدول اول شما مشکلی متوجه شما نیست ؛اما در جدول دوم حتما باید کد مشتری رو به نحوی قرار بدید حالا یا توسط کد یا توسط کاربر

شفیعی
شنبه 15 فروردین 1383, 18:23 عصر
سلام
من روی دوتا بانک اطلاعاتی که از نوع پاراداکس هستند روی فیلد CODE این دو بانک ایندکس زده ام وقتی داخل بانک دوم اطلاعات وارد می کنم پیغام می دهد که ایندکس فقط خواندنی است
INDEX IS READ ONLY

reza_moridi
شنبه 15 فروردین 1383, 18:49 عصر
من هم باهمین مشکل روبروهستم اگرراه حلی پیداکردی به من هم اطلاع بده

مهدی کرامتی
شنبه 15 فروردین 1383, 18:55 عصر
دوست عزیز، این یک تذکر برای بار شونصدم است:

لطفا عنوان سوالتان را گویا و با معنی انتخاب کنید.

amirrf
چهارشنبه 19 فروردین 1383, 19:42 عصر
سلام،

روی جدول دوم یک ایندکس Secondary تعریف کنید روی فیلد پیوند با جدول اصلی. برای این کاربرد این ایندکس باید Maintained باشد (وگرنه: "INDEX IS READ ONLY") بنابراین لازم است یک کلید اصلی روی این جدول موجود باشد که می توانید از طریق یک فیلد خود افزایشی آن را داشته باشید. فیلد پیوند در جدول دوم نمی تواند خود به عنوان کلید اصلی به کار رود چراکه رابطه یک به چند است (وگرنه: "KEY VIOLATION") .

شفیعی
چهارشنبه 19 فروردین 1383, 22:27 عصر
سلام
خسته نباشید
دوست عزیز لطفا بیشتر توضیح دهید یا اگر ممکن است یک نمونه برنامه برایم ارسال نمائید

amirrf
جمعه 21 فروردین 1383, 17:31 عصر
سلام،

روی همین دو جدول پیوست شده بررسی می کنیم:
کالا: کد کالا، کد گروه، دیگر صفت های کالا
گروه: کد گروه، نام گروه
و می خواهیم کد گروه در جدول کالا را به کد گروه در جدول گروه ارتباط دهیم. با این رابطه قادر خواهیم بود هم به نام گروه دسترسی پیدا کنیم و هم از آن طرف بتوانیم کالاهایی که در هر گروه قرار دارند را داشته باشیم. کد کالا در جدول کالا را به عنوان کلید اصلی معرفی می کنیم.
کد گروه در جدول گروه باید به عنوان یک کلید اصلی معرفی شود.
کد گروه در جدول کالا یک کلید خارجی محسوب می شود بنابراین برای برقراری رابطه باید روی آن یک ایندکس تعریف کنید. برای داشتن امکان ویرایش آن را به صورت Maintained (در Index Options) معرفی می کنیم. شما نمی توانستید ایندکس را Maintained تعریف کنید چون جدول شما کلید اصلی نداشت (بنابراین در شکل نیز غیرقابل انتخاب نشان داده شده).

Inprise
جمعه 21 فروردین 1383, 23:02 عصر
:تشویق:

شفیعی
جمعه 21 فروردین 1383, 23:26 عصر
سلام
دوست عزیز خیلی ممنون با جواب کامل شما مشکل حل شد