View Full Version : بدست آوردن نام جدول از روی dataset
setare7sky
سه شنبه 01 خرداد 1386, 09:02 صبح
سلام . آیا راهی برای بدست آوردن نام جدول از روی Dataset وجود داره ؟ آیا باید از CommandText شی Dataset برای بدست آوردن اسم جدولی که داره ازش استفاده می کنه ، استفاده کرد یا خصوصیت دیگری برای این کار وجود داره ؟
ghabil
سه شنبه 01 خرداد 1386, 09:25 صبح
احتمالا منظورت ADODataSet هست، که خوب میتونه اصلا یکدونه جدول نداشته باشه ، مثلا Join چندتا جدول باشه ، حالا من نمیدونم برای چی لازمش داری اصلا؟ ولی خب راه حل سادت اینه که همیشه اولین Token بعد از کلمه کلیدی From توی CommandText اولین جدول هست.
setare7sky
سه شنبه 01 خرداد 1386, 10:08 صبح
ممنون از جوابتون . من دارم یه برنامه گزارشگیری بصورت Dynamic می نویسم و می خوام بعد از اینکه کاربر فیلدی را از Combobox ی انتخاب کرد(که البته Combobox هم زمان اجرا ایجاد میشه ) برای انتخاب مقدار متناظر با فیلد به جای وارد کردن اون مقدار به طور مستقیم توی TextBox با زدن یه کلید روی TextBox لیست فیلدهای متناظر برای انتخابش توی یه DBGrid نمایش داده بشن . مشکلی که هست اینه که موقع ساختن query مربوط به نمایش فیلدها، نام جدول برای ساخت اون رو نمی دونم . البته کاری که من کردم این بوده که یه ADODataSet به صورت پیش فرض توی Datamodule ساختم و کد نویسی ها رو مطابق با اون انجام دادم ولی قبل از Load شدن فرم مربوط به انتخاب فیلدها اسم AdoDataset مورد نظرم رو به اون اختصاص می دم . ولی برای فیلدهایی که lookup هستند اسم جدول انتخابی دیگه ثابت نیست تا از این راه استفاده کنم . البته من اینجا هم برای رفع مشکلم اسم ADoDataSet رو اسم جدول مورد نظرم قرار دادم و موقع ساختن command text از خاصیت name شی AdoDataSet استفاده می کنم که فکر می کنم کار معقولی نباشه . حالا می خواستم بدونم راه معقول تر این کار چیه . امیدوارم تونسته باشم منظورم رو درست برسونم .
ghabil
سه شنبه 01 خرداد 1386, 13:12 عصر
ببین من توی Report Genratorهایی که نوشتم تقریبا همیشه دوتا جدول اضافه توی دیتابیس داشتم :
یکی جدول RepTables که اسم تمام جداول و معادل اسم فارسیشون و نوع Joinی که باید روشون اعمال بشه بوده .
یکی جدول RepFields که توش اسم فیلدها یک کلید به رکورد جدولشون در جدول RepTables ، اینکه نوع فیلد چی هست (که بعدا روی این نوع مثلا کامپوننت مناسب برای نمایش رو میساختم) فیلد جدول لوک آپ ، فیلد کلید لوک آپ ، فیلد مقدار لوک آپ (که همه اینها درصورتیکه نوع فیلد لوک آپ باشه دیتا دارند) و در نهایت اسم فارسی که دوست دارم کاربر به ازای فیلد ببینه.
خوبیش اینه که اولا کاربر همیشه با اسامی فارسی و قابل فهم کار میکنه (البته خود دلفی هم بدون استفاده از دیتابیس این امکان رو داره ، امااطلاعات هاردکد میشند) بعد هم تمامی روابط معلوم هست و امکان گذارش گیری روی چند جدول و همینطور گرفتن پارامترها و شرایط گزارش از کاربر در حالت کلی وجود داره.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.