PDA

View Full Version : نحوه اتصال combox به بانک اطلاتی



masiharoy
جمعه 30 فروردین 1387, 10:44 صبح
چه جوری یه combox به sql وصل کنم به طوری بتونه مستقیما از بانک اطلاعاتشو دستکاری کنم.

Amir_Safideh
جمعه 30 فروردین 1387, 11:19 صبح
چه جوری یه combox به sql وصل کنم به طوری بتونه مستقیما از بانک اطلاعاتشو دستکاری کنم.
منظورت از دستکاری مستقیم اطلاعات چیه ؟
شما میتویند از DBLookUpComboBox برای ارتباط با یکی از دیتاسورس هائی که در برنامت قرار دادی استفاده کنی . به این ترتیب شما مشخص میکنید که اطلاعات رو از کجا بخونه و نمایش بده و در ضمن میتونی مشخص کنی که بعد از انتخاب هر آیتم اطلاعات رو در چه دیتاسورسی ذخیره کنه . که من فکر نمیکنیم به این بشه گفت دستکاری مستقیم اطلاعات در اس کیو ال .
خوب برای استفاده از DBLookUpComboBox باید خواص زیر رو براش ست کنی :
1 - DataSource : برابر با دیتاسورسی که باید اطلاعات رو در اون ذخیره کنه .
2 - DataField : برابر با فیلدی که در نهایت باید اطلاعات در اون فیلد قرار بگیره (که این فیلد یکی از فیلدهای دیتاسورسی که در گزینه 1 انتخاب میکنی)
3 - ListSource : این رو باید برابر با دیتاسورسی قرار بدی که DBLookUpComboBox قراره اطلاعاتش رو برای نمایش به کاربر از اون فراخوانی کنه .
4 - ListField : این خاصیت رو باید برابر با نام یکی از فیلدهای دیتاسورسی قرار بدی که در شماره 3 انتخاب کردی . اطلاعات این فیلد در زمان اجرای برنامه در DBLookUpComboBox به نمایش در میاد .
5 - KeyField : این گزینه هم باید برابر با یکی از فیلدهای دیتاسورسی باشه که در گزینه 3 انتخاب کردی . این فیلد به کاربر نمایش داده نمیشه ولی وقتی که کاربر یکی از آیتمهای DBLookUpComboBox رو انتخاب میکنه این فیلد هستش که واقعا در دیتابیس ذخیره میشه .

مثلا فکر کن که یه جدول داری که میخوای ورود و خروج پرسنل رو توش ذخیره کنی (معادل گزینه شماره 1) و این جدول یه فیلد داره که کد پرسنلی شخص رو نگه میداره (برابر با گزینه شماره 2) . حالا شما یه جدول دومی داری که تمام پرسنل رو با کدشون در اون ذخیره کردی(برابر با گزینه 3) و برای ثبت ساعت ورود و خروج فقط به کد پرسنل احتیاج داری که در جدول دومت ذخیره شده . خوب در این مثال جدول پرسنل (برابر با گزینه 3) و فیلد نام پرسنل (برابر با گزینه 4) و فیلد کد پرسنل(برابر با گزینه 5).
---------------
موفق باشید .

masiharoy
جمعه 30 فروردین 1387, 11:55 صبح
خیلی ممنون کمک خیلی بزرگی به من کردین منظورم از دستکاری در sql اینکه بشه داده هارو از combox پاک کرد و در بانک هم اعمال شه .

Amir_Safideh
جمعه 30 فروردین 1387, 12:18 عصر
خیلی ممنون کمک خیلی بزرگی به من کردین منظورم از دستکاری در sql اینکه بشه داده هارو از combox پاک کرد و در بانک هم اعمال شه .
اگر منظور شما دقیقا خود combox باشه باید خدمتون عرض کنم که این ابزار به خودی خود دارای همچین قابلیتی نیست . ولی میتونید با کد نویسی این کار رو انجام بدید . یعنی اینکه ابتدا با کد نویسی اطلاعات فیلد مورد نظرتون رو در یک combox برزید بعد باز هم با کمک کد نویسی یک آیتم combox رو خذف کنید و در مرحله بعد مقدار حذف شده از combox رو در جدول مورد نظر جستجو کنید و با دستورات موجود اون رو حذف کنید و برای ویرایش و رکورد جدید هم چنین شرایطی رو میباست کاملا با کد نویسی کنترل کنید . و به صورت مستقیم چنین امکانی وجود نداره .
-------------
موفق باشید .

babak_delphi
جمعه 30 فروردین 1387, 12:48 عصر
از DBCombobox هم میتونید استفاده کنید
به Database وصل میشه
خودتون بایل لودش کنید ، ولی با بردن Datasource به حالت ویرایش می تونید تغییرات رو انجام بدید و در نهایت با دستور Post اونها را روی DB اعمال کنید.

masiharoy
جمعه 30 فروردین 1387, 12:49 عصر
ببینید اگه combobox من نام گروهایی باشه که با انتخاب اون گروه مواردی شامل اون گروه میشن نمایش داده میشن بعد یکی از موارد زیرگروه رو خذف کنم کلا حذف نمیشه؟

masiharoy
جمعه 30 فروردین 1387, 12:55 عصر
ببینید من تازه کارم و با bdcombobox کار نکردم چه جوریه و یعنی چی باید لودش کنم

Amir_Safideh
جمعه 30 فروردین 1387, 13:15 عصر
ببینید اگه combobox من نام گروهایی باشه که با انتخاب اون گروه مواردی شامل اون گروه میشن نمایش داده میشن بعد یکی از موارد زیرگروه رو خذف کنم کلا حذف نمیشه؟
شما دقیقا میخواهید چه کار کنید ؟ اگر تو ضیح کامل بدید سریعتر به جواب میرسید .
شما اگر یک زیر گروه رو حذف کنید در حالت عادی فقط اون زیر گروه حذف میشه مگر اینکه شما خودتون دستور دیگه ای رو برای حذف زیر گروه تعیین کرده باشید .


ببینید من تازه کارم و با bdcombobox کار نکردم چه جوریه و یعنی چی باید لودش کنم

این هم روش اضافه کردن آیتمها :

with ADOTable1 do
begin
First;
While Not EOF do
begin
DBComboBox1.Items.Add(FieldByName('Field1').AsStri ng);
Next;
end;
end;

-----------------
موفق باشید .