PDA

View Full Version : سوال: update کردن فیلد کلید اصلی که در جدول دیگر کلید خارجی است



amir_ir
شنبه 09 آبان 1388, 18:51 عصر
سلام به دوستان عزیز
اگر 2 جدول 'خودرو' و 'تعمیرات' موجود باشند. کلید اصلی جدول خودور، فیلد پلاک هست و همین فیلد در جدول تعمیرات کلید خارجی تعریف شده است. حال اگر بخواهیم مقادیر فیلد پلاک موجود در جدول خودرو را ویرایش کنیم به علت اینکه پلاک در جدول تعمیرات کلید خارجی هست ، دلفی خطا میگیره و برعکسش هم صادقه . حتی اگر بخواهیم مقادیر پلاک را به صورت یکسان در هر دو جدول Update کنیم ، باز بالاخره یکی از دو کد Update خودور یا تعمیرات زودتر اجرا میشن و دوباره خطا ظاهر میشه .

از دوستان می خوام راهنمایی کنند که به چه شکل میشه مقادیر فیلدی رو که خود کلید اصلی و در جدول دیگر کلید خارجی هست را Update کرد ؟؟؟؟؟
شاد و پیروز

حسین شهریاری
یک شنبه 10 آبان 1388, 11:21 صبح
اگه از SqlServer استفاده میکنید در زمان تعریف کلید خارجی گزینه های Cascade مربوط به
DeleteوUpdate را تیک زده باشید خودبه خود کار شما انجام شده و با تغییر کد در جدول اصلی
سایر کدها در جدول دوم که حاوی کلید خارجی است تغییر میکنند

ولی حتی بدون این کار هم اگر ابتدا دستور ویرایش جدول اول و سپس برای جدول دوم ارسال کنید مشکلی پیش نمیاد

amir_ir
یک شنبه 10 آبان 1388, 17:06 عصر
اگه از SqlServer استفاده میکنید در زمان تعریف کلید خارجی گزینه های Cascade مربوط به
DeleteوUpdate را تیک زده باشید خودبه خود کار شما انجام شده و با تغییر کد در جدول اصلی
سایر کدها در جدول دوم که حاوی کلید خارجی است تغییر میکنند

ولی حتی بدون این کار هم اگر ابتدا دستور ویرایش جدول اول و سپس برای جدول دوم ارسال کنید مشکلی پیش نمیاد

سلام
ممنون از راهنماییتون.
Cascade رو میدونم . می خواستم با کد این کار رو انجام بدم. اتفاقا در ابتدا که جدول اول update میشه بلافاصله خطا میگیره :افسرده:

حسین شهریاری
دوشنبه 11 آبان 1388, 08:43 صبح
سلام

با دستور Update این کار را انجام میدید نه؟

میشه متن پیغام خطا را اینجا بنویسید؟

البته فکر کنم دستور شما به لحاض سیسنتکسی مشکل داشته باشه.اول خاصیت Text مربوط به Query
را با Showmessage مشاهده کنید،اگه به لحاض سینتکس دستوری مشکل نداشت بعدا ExecSql کنید.

ضمنا نوع فیلدهاتون و مقادیری که به اونا ارسال میکنید سازگاری داره ؟