واضح آرشیو وب فارسی:سایت ریسک: Masood_Heidarnia25-03-2008, 10:15 PMبا سلام باید دو تا برنامه بنویسم که یکی بعنوان نرم افزار سرور با امکان اضافه، ویرایش، حذف و ... با دیتابیس SQL است و بصورت اتوماتیک اطلاعات دیتابیس خودش رو به DBISAM تبدیل میکنه و نرم افزار دوم یا کلاینت فقط برای نمایش اطلاعات بکار میرود و دیتابیس آن DBISAM است. حداقل 6 جدول و تعداد رکوردها هم زیاد است. و بر روی همه فیلدها هم جستجو انجام میشه، هم فیلد تاریخ بصورت String فارسی، هم عددی و هم String. برای خواندن اطلاعات و جستجو از Query استفاده میکنم و در زمان جستجو یا نمایش اطلاعات و با نوشتن یه Select جدید اطلاعات را از بانک اطلاعاتی نمایش میدهم. هم با SQL و هم با DBISAM یه مشکلی که هست اینه که برای بالا بردن سرعت خواندن اطلاعات از چه روشی استفاده کنم؟ البته سرعت در نرم افزار نسخه نمایشی (کلاینت یا نرم افزار دوم) خیلی اهمیت بیشتری دارد. این روش واکشی اطلاعات در هر دفعه بهتر یا اینکه مثلا همه اطلاعات را در ابتدای اجرای برنامه لوود کرده و سپس از این اطلاعات استفاده کرد؟ اگر بخواهیم همه اطلاعات را در ابتدای برنامه در یه چیزی لوود کنیم اون چیز چی میتونه باشه؟ آیا میشه با نوشتن یه Select یک سری اطلاعات را از آن چیز به یک AdoQuery یا کوری منتقل کرد؟ لطفا راهنمایی بفرمایید. با شتکر F A R H A D26-03-2008, 08:57 AMاین روش واکشی اطلاعات در هر دفعه بهتر یا اینکه مثلا همه اطلاعات را در ابتدای اجرای برنامه لوود کرده و سپس از این اطلاعات استفاده کرد؟ اگر بخواهیم همه اطلاعات را در ابتدای برنامه در یه چیزی لوود کنیم اون چیز چی میتونه باشه؟ سلام. خوش آمديد مطمئنا اگر اطلاعات در بازه زماني كم، تغيير نمي كنه بهتره كه تمام اطلاعات رو يك بار در كلاينت ها بارگذاري كنيد. براي اين كار هم بايد از جزء ساخت ClientDataSet در برگه data access استفاده كنيد. Masood_Heidarnia26-03-2008, 01:09 PMبا سلام نسخه کلاینت فقط یک نسخه است و فقط روی یک کامپیوتر مشخص اجرا میشود و فقط قابل نمایش است و اطلاعات آن تغییری نمیکند. آیا با Dbisam میتونم ازش استفاده کنم؟ با تشکر F A R H A D26-03-2008, 02:16 PMشما ميتونيد با هر ابزار دلخواهي اين كار رو انجام بديد اما اگر سرعت مهمه، به نظر من از ClientDatsSet استفاده كنيد Masood_Heidarnia27-03-2008, 08:22 AMبا سلام برای کار کردن با یک دیتابیس خیلی بزرگ و استفاده از ClientDataSet یه پروژه جدید ایجاد کردم و کارهای زیر را انجام دادم: ADOConnection1 را به دیتابیس وصل کردم یه DataSet Provider بذار رو فرمت خاصیت Dataset از DataSetProvider رو بذار Query1 خاصیت ProviderName از ClientDataSet رو بذار DataSetProvider1 خاصیت DataSet از DataSource رو بذار ClientDataSet1 یه دیتا سورس هم به ClientDataSet وصل کردم و پس از حدود چند دقیقه تمام اطلاعات را بدرستی در ClientDataSet لوود و در dbgrid 1 نمایش میدهد. حالا میخوام یه AdoQuery با یه select جدید یک سری اطلاعات را از این ClientDataSet بر اساس کوری جدید خوانده و در یک dbgrid 2 جدید نمایش داده شود. حالا این AdoQuery که حاوی کوری جدید است را به کجا وصل کنم؟ نمیخوام اطلاعات را مجدد از دیتابیس بخونه. با تشکر F A R H A D29-03-2008, 09:42 AMبهتر هست كه به جاي انتقال تمام اطلاعات به كلاينتها فقط اطلاعات مورد نياز رو از ديتابيس بخونيد تا درخواست هاي شما با سرعت بهتري صورت بگيره. نمیخوام اطلاعات را مجدد از دیتابیس بخونه. بايد از filter استفاده كنيد سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 618]