PDA

View Full Version : ثبت dblookup key value در بانک sql



khoshblagh
پنج شنبه 07 خرداد 1394, 09:28 صبح
با سلام خدمت دوستان
گاهی وقتها در فرمی که کاربر اطلاعاتی را ثبت مینماید dblookup موجود است که در حال حاضر نیازی به ثبت اطلاعات آن در بانک نمیباشد.
در این صورت در موقع ثبت اطلاعات خطای برنامه مبنی بر ثبت اطلاعات مربوط به dblookup را درخواست مینماید. آیا راهی هست که موقع ثبت در صورتیکه آن dblookup ست نشده باشد برنامه به آن گیر ندهد؟ . البته تا به حال من برای این جور کارها عبارت ثبت را به 2 نوع عبارت با اطلاعات dblookup و بدون اطلاعات dblookup انجام میدهم. ولی باید راهی بهتری هم باشد. متشکرم

pezhvakco
پنج شنبه 07 خرداد 1394, 12:40 عصر
اگه منظور شما DBLookupComboBox است
=>
پیشنهاد من این است با این ابزار کار نکنید چون تاثیر مستقیم در نمایش و ویرایش اطلاعات داره.

در تنطیمات این ابزار دو بخش است که یه بخشش برای اتصال به جدول اصلی و خواندن داده ها است و بخش دیگه اون برای ذخیره این داد در جدول دیگر است

شما می توانید با این دو بخش کار کنید.

khoshblagh
پنج شنبه 07 خرداد 1394, 14:22 عصر
با تشکر از پاسختان
من اینطور از این DBLookupComboBox استفاده میکنم. این شیئی را با یک کوئری و دیتاسورس مناسب تنظیم میکنم. سپس کاربر گزینه مورد نظر را از لیست انتخاب میکند و سپس برنامه با یک دستور adocommand این داده را در فیلد یک جدول ثبت میکند. مشکل وقتی پیش میآید که ممکن است نیازی به استفاده از این ابزار در یک مرحله نباشد. پس اگر انتخابی توسط کاربر انجام نشود keyvalue آن برابر null میشود که در اینصورت خطا در موقع ثبت صورت میگیرد. آیا برای حل مشکل باید از بخش دوم آن استفاده نمایم؟ زیرا من فقط از بخش اول آن استفاده منمایم و بخش دوم در این روش کاربرد ندارد. آیا برداشت من غلط میباشد؟

pezhvakco
پنج شنبه 07 خرداد 1394, 23:08 عصر
درست نفهمیدم چه خواسته ای داریند.
اون جدول که با adocommand داده ای دریک ستون اون ذخیره چه کاربردی داره
اون ستون چه ساختاری داره
آیا کلید است، داده های درونش می تونه Null باشه.

شاید با یه دستور شرطی بشه کنترل کرد اگر این Combo انتخاب شده بود مقدار اون تاثیر داشته باشه.

khoshblagh
جمعه 08 خرداد 1394, 09:16 صبح
خیلی ساده
من یک جدولی دارم مثلا اسم شرکتها در آن ثبت است. حالا یک جدول دیگری دارم که مثلا اطلاعات پیمانها در آن ثبت است. حالا یکی از فیلدهای جدول پیمان اسامی شرکت در آن ثبت میشود. بعضی وقتها نیازی نیست که اسم یک شرکت در جدول پیمان ثبت شود . اینجاست که دستور ثبت باعث خطا میشود. زیرا DBLookupComboBox فاقد مقدار انتخابی بوده و adocommand اعلام خطا میکند. همین. در جدول اولی(نام شرکتها) کلید است و جدول دومی (جدول پیمانها) کلید خارجی بوده و نمیتواند null باشد. متشکرم

pezhvakco
شنبه 09 خرداد 1394, 10:15 صبح
بعضی وقتها نیازی نیست که اسم یک شرکت در جدول پیمان ثبت شود

البته تا به حال من برای این جور کارها عبارت ثبت را به 2 نوع عبارت با اطلاعات dblookup و بدون اطلاعات dblookup انجام میدهم.
در این حالت چه کدی در جدول پیمان ها ذخیره می کنید.

می توانید یه دستور شرطی بنویسید و اگر DBCombo مورد انتخابی داشت
DBComboBox.ItemIndex
که با این کار کند و اگر نه اون مقدار پیش فرض.