PDA

View Full Version : مرتبط کردن combo box ,check box و radio button به SQL



sara99
چهارشنبه 07 مرداد 1388, 15:28 عصر
سلام

من یک جدول دارم که یکی از فیلدهای آن تاریخ است که یک combo box برای آن گذاشتم و می خواهم هر کدام از آیتمهای آن را انتخاب کردم در جدول SQL ذخیره شود .باید یک dbgrid بگذارم و combo box را به dbgrid متصل کنم مثل دستور زیر؟
dbgrid.columns:=combox1.items

یا یک db edit بزارم که از طریق آن با SQL ارتباط بر قرار کنم؟ اگر نخواهم هیچ کدام از اینها را بگذارم چگونه؟
این مسئله در مورد radio button و check box ها که چند جوابی اند هم صدق می کند آنها را چگونه در یک فیلد پایگاه دادهام ربط بدهم و ذخیره کنم؟

ممنون می شوم اگر پاسخ سوالهایم را بدهید خیلی به آنها نیاز دارم.

_abiriamir
چهارشنبه 07 مرداد 1388, 16:38 عصر
adoquery1.fieldbyname('your record').asstring := combobox1.text;

سلام
فکر کنم کد بالا کار شما را راه بیندازد البته اگر از adoquery یا adotable استفاده میکنید

sara99
چهارشنبه 07 مرداد 1388, 17:42 عصر
دوباره سلام
نه من از table استفاده کردم!

vcldeveloper
چهارشنبه 07 مرداد 1388, 18:30 عصر
نه من از table استفاده کردم!
فرقی نمیکنه، روش کار یکسان هست. شما فقط AdoQuery1 در کد بالا را با نام مورد نظر خودتون جایگزین کنید، مثلا AdoTable1، و اسم فیلد و نوع آن را هم در کد مشخص کنید.



من یک جدول دارم که یکی از فیلدهای آن تاریخ است که یک combo box برای آن گذاشتم و می خواهم هر کدام از آیتمهای آن را انتخاب کردم در جدول SQL ذخیره شود .
اگر تاریخ میلادی هست، خودِ دلفی DBDateTimePicker داره که می تونید آن را به یکی از فیلدهای جدول متصل کنید، و هر زمان بازش کنید، یک تقویم نمایش میده، که کاربر بتونه تاریخ را انتخاب کنه، و با انتخاب کاربر، تاریخ در جدول ذخیره بشه.

اگر تاریخ شمسی هست، یا باید در ساده ترین حالت کدی مثل کد بالا بنویسید، یا می تونید از کامپوننت های تقویم شمسی استفاده کنید که چیزی مشابه DBDateTimePicker دلفی را برای تقویم شمسی ارائه می کنند. یکی دو نمونه اش در همین سایت توسط کاربران بطور رایگان قرار داده شده، چندین نمونه پولی هم در اینترنت موجود هستند.

sara99
پنج شنبه 08 مرداد 1388, 11:46 صبح
سلام
من این کد را داخل combo box نوشتم ولی وقتی برنامه run می شه error میده

DataModule2.Table1.FieldByName('date').AsInteger:= ComboBox1.ItemIndex
در ضمن اسم جدولم رو که stu هست رو کجا باید وارد کنم؟

sara99
پنج شنبه 08 مرداد 1388, 12:10 عصر
اگر تاریخ شمسی هست، یا باید در ساده ترین حالت کدی مثل کد بالا بنویسید، یا می تونید از کامپوننت های تقویم شمسی استفاده کنید که چیزی مشابه DBDateTimePicker دلفی را برای تقویم شمسی ارائه می کنند. یکی دو نمونه اش در همین سایت توسط کاربران بطور رایگان قرار داده شده، چندین نمونه پولی هم در اینترنت موجود هستند.

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

_abiriamir
پنج شنبه 08 مرداد 1388, 19:08 عصر
جناب کشاورز
من فکر کنم ایشون از adotable استفاده نمیکنن بلکه از table مربوط به bde استفاده میکنن که اگه اینجوره من بهشون توصیه میکنم که از ado استفاده کنن و دستور گفته شده رو بنویسن
اگر هم نظرشون هنوز رو bde هست که کمکی از من ساخته نیست چون من تا به حال با اون کار نکردم
موفق باشید

_abiriamir
پنج شنبه 08 مرداد 1388, 19:55 عصر
دوست عزیز
من داشتم داخل سورس هام میگشتم که چندتا سورس دیتابیس با bde دیدم
از همون locate استفاده شده و کار میکنه
بازم اگه کار نکرد تاپیک زیر رو نگاه کنین:
http://barnamenevis.org/forum/showthread.php?p=768425#post768425

vcldeveloper
پنج شنبه 08 مرداد 1388, 19:57 عصر
من فکر کنم ایشون از adotable استفاده نمیکنن بلکه از table مربوط به bde استفاده میکنن که اگه اینجوره من بهشون توصیه میکنم که از ado استفاده کنن و دستور گفته شده رو بنویسن
اگر هم نظرشون هنوز رو bde هست که کمکی از من ساخته نیست چون من تا به حال با اون کار نکردم
از نظر رابط برنامه نویسی فرقی نمیکنه. تمام دیتاست های دلفی از کلاس TDataSet مشتق میشند، برای همین هم رابط برنامه نویسی یکسانی دارند. البته پیاده سازی های آنها با هم فرق میکنه. پس همانطور که در AdoTable شما FieldByName دارید، در AdoQuery، هم همین را دارید، در BDE هم همین را دارید، در ClientDataset هم همین را دارید. هر کدام از اینها ممکن است به شیوه متفاوتی فیلد را پیدا کنند، ولی از نظر رابط برنامه نویسی یکسان هستند، و برنامه نویس نیازی ندارد که بداند هر کدام از اینها به چه شکلی فیلد را پیدا می کنند.


error میده
خب، چه Errorایی؟!


توصیه میکنم که از ado استفاده کنن
بله، BDE منسخوخ شده هست. درباره اش قبلا توضیح دادیم.


من می خواهم تاریخ به صورت شمسی باشد برای سال تولد افراد که اگر خواستند آن را انتخاب کنند این کار را از طریق combo انجام دهندکه تاریخ های آن آیتم های combo باشد
دو مجموعه کامپوننت رایگان کار با تاریخ شمسی در سایت وجود دارند، یکی XCalendar هست، یکی هم کامپوننت های فارسی جناب خورسندی. هر دو هم Combobox انتخاب تاریخ شمسی دارند. می تونید در سایت آنها را پیدا کنید، و هر کدام را دوست داشتید، استفاده کنید.