PDA

View Full Version : در مورد اتصال DBComboBox به دیتا بیس



Roozbeh
پنج شنبه 03 فروردین 1385, 12:26 عصر
درود
سال نو همه دوستان مبارک.
من در یک برنامه DBComboBox رو به یکی از فیلدهای دیتا بیس متصل کردم،اما در زمان اجرا فقط
موقعیت جاری رو نشون میده و وفتی دکمه انتخاب DBComboBox رو میزنم هیچی نشون نمیده.
مگه نباید اطلاعات اون فیلد رو نشون بده تا امکان انتخاب داشته باشیم؟
از دوستان خواهش میکنم راهنمایی کنند.
در ضمن وقتی کپشن یک دکمه رو فارسی مینویسم بعضی حروف مثل ک یا گ روکه مینویسم بهم میریزه.آیا باید نرم افزار خاصی نصب کنم؟یا تنظیم خاصی داره؟
سپاسگزارم.

sasan_vm
پنج شنبه 03 فروردین 1385, 22:12 عصر
سلام
شما باید از DBLookupComboBox استفاده کنید. :)

Roozbeh
جمعه 04 فروردین 1385, 07:43 صبح
ساسان جان،ارادتمندم
مرسی بخاطر راهنمایی .
من الان این کار را کردم .دیتا سورس ودیتا فیلدش رو هم تنظیم کردم.برنامه روکه ران کردم دیدم
باکس رو حالت ریدانلی نشون میده یعنی هیچی در اوننشون نمیده.اومدم لیست سورس و لیست فیلد ایندکس روهم تنظیم کردم اما فایده نداره.در ضمن من هدفم اینه که از فیلدی رو که کاربر در این باکس انتخاب میکنه با زدن یک دکمه در یک دیتا بیس دیگه وارد بشه.آیا با دی بی لوک آپ این امکان وجود دارد؟
از شما سپاسگزارم.
در مورد فارسی نویسی هم اگر راهنمایی کنید ممنون میشم.

sasan_vm
شنبه 05 فروردین 1385, 10:05 صبح
سلام
شما برای استفاده از Lookup باید چند ایتم را ست کنید :
- ListSource : جدول source که اطلاعات از ان گرفته و در combobox قرار میگیرد.
- ListField : نام فیلدی از جدول source که در combobox لیست میشود.

- DataSource : جدول destination برای ذخیره اطلاعات.
- DataField : نام فیلدی در جدول destination که اطلاعات در ان ذخیره میگردد.

- KeyField : نام فلیدی از جدول source که باید از نوع DataField در جدول destination
باشد و در واقع این فیلد در جدول destination ذخیره میگردد.

برای مشکل فونت از فونتهای Microsoft Sans Serif یا Tahoma استفاده کنید.

موفق باشید.

Roozbeh
یک شنبه 06 فروردین 1385, 11:55 صبح
ساسان جان،ازشما ممنونم.
من الان این کار را کردم.این مشکل درست شد اما در حال حاضریک مشکل دیگر پیش اومده:
در این جدولی که من دارم کار میکنم غیر از دو تا DBLookupComboBox دوتا فیلد دیگر هم است که توسط edit پر میشود و با فشردن یک دکمه(ورود) که این دستور محتویاتش هست به دیتا بیس میرود:


DataModule1->choosTable->Insert();
//DataModule1->choosTable->FieldByName("id")->Value=DBLookupComboBox1->Text;
//DataModule1->choosTable->FieldByName("code")->Value=codeDBComboBox1->Text;
DataModule1->choosTable->FieldByName("term")->Value=ctermEdit->Text;
DataModule1->choosTable->FieldByName("number")->Value=cnumEdit->Text;
DataModule1->choosTable->Post();

همانطور که میبینید من دستورات مربوط به idDBLookupComboBox را غیر فعال کردم .به این دلیل که در زمان اجرا از کلمه Text ایراد میگره و زمانی که غیر فعال میکنم پس از فشردن دکمه ورود در جدول فیلدهای مربوط به لوکاپ کومبوباکس ها خالی میمونه و دوباره که با منوهای کشویی آنها کار میکنم و دکمه ورود رو میزنم این فیلدها پر میشه اما یک خط جدید بوجود میاد باز همون مشکل رو داره.
فکر کنم دلیلش اینه که لوکاپ کومبوباکس در همون لحظه که با منوی کشویی کار میکنیم در موقعیت جاری تغییرات رو اعمال میکنه و من میخوام بدونم راهی وجود نداره که من بتونم هر چهار تا فیلد رو با هم وارد کنم و این مشکل پیش نیاد؟
آیا بجای text باید کد دیگه ای گذاشت؟
البته من keyfieldو keyvalue زا امتحان کردم اما جواب نداد.
سپاسگزارم.

sasan_vm
یک شنبه 06 فروردین 1385, 15:04 عصر
سلام
اصلا شما نیازی به کد نویسی ندارید به جای TEdit از TDBEdit استفاده کنید - در کامپوننتهایی پنل Data Control بعضی خصوصیات private می باشند که در نمونه
عادی ان (TEdit, TComboBox) چنین نیست و خطائی
که شما میگیرید به همین علت است . مقادیری که کاربر داخل کامپوننتهای DBxxx وارد
میکند بعد از فراخوانی تابع Post مستقیما وترد database میشوند .
برای خودکار کردن همه عملیات از TDBNaigator استفاده کنید.

Roozbeh
دوشنبه 07 فروردین 1385, 07:27 صبح
ساسان جان،ازشما ممنونم.
مشکل اینجاست که استاد ما ازمون خواسته بجای TDBNaigator از باتن استفاده کنیم.
بهر حال از اینکه راهنمایی کردید ممنونم.

karzari
جمعه 11 فروردین 1385, 19:39 عصر
سلام دوست عزیز
مث اینکه شما در کل برنامتون مشکل دارید.
اما برای برطرف شدن فارسی باید اول فارسی رو در پروژتون ادد کنید و برای گ و پ و ژ و چ باید فنت رو تغییر بدید .
برای دیتا بیس هم من فکر میکنم مشکلتون داره حل میشه اما اگه کاری از دست من برمیاد بگید تا من راهنماییتون کنم .

Roozbeh
سه شنبه 15 فروردین 1385, 19:47 عصر
karzari جان
شرمنده از این که دیر جواب میدم.
من نمیدونم چطوری باید فارسی رو ادد کنم.ممنون میشم اگر راهنمایی کنید.
مشکل جدید من هم استفاده از query که در یک تاپیک دیگه مطرح میکنم.
سپاسگزارم.