PDA

View Full Version : روش صحیح رفرش کردن دیتا بیس چیه ؟



afshinrz
یک شنبه 03 بهمن 1400, 19:50 عصر
دوستان من یه بانک اطلاعاتی دارم که با sql server 2008 r2 نوشته شده با adotable , adoquery
وقتی توی یه صفحه یه اطلاعاتی را تغییر میدم ، بعدش توی یه صفحه دیگه اونارو فرا میخونم توی صفحه جدید هنوز اطلاعات قبلی نمایش داده میشه و برای اینکار باید دیتا بیس را ریفرش کنم من از روش زیر استفاده میکنم

ADOTable1.Active:=false;
ADOTable1.Active:=true;
اما اینکار چند ثانیه طول میکشه که این مدت زمان کاربرو اذیت میکنه
بنظرتون باید چکار کنم روش دیگه ای برای رفرش کردن وجود داره ؟ یا کلا روش ذخیره دیتایی که استفاده میکنم اشتباهه و اصلا احتیاجی به رفرش کردن نیست ؟ ممنون میشم راهنمایی کنید

Touska
چهارشنبه 06 بهمن 1400, 13:28 عصر
سلام

شما دوست عزیز Adotable خودتون رو داخل یک data module قرار بدید.
تغییرات و نمایش اطلاعات این جدول رو در تمامی فرم ها از این adotable فراخوانی و یا نمایش بدید.

فکر کنم شما در هر فرم یک adotable گذاشته اید.

afshinrz
جمعه 08 بهمن 1400, 18:51 عصر
نه عزیز جان اتفاقا توی دیتا ماژول است اما حجم دیتا بیس و تعداد رکورد ها که بالا بره این مدت ژمان به وجود میاد

Touska
یک شنبه 10 بهمن 1400, 16:23 عصر
اگر امکانش کوئری رو اینجا قرار بدید

afshinrz
چهارشنبه 13 بهمن 1400, 13:27 عصر
With DataModule2.ADOQuery1 do
begin
Active:=false;
Active:=true;
Close;
SQL.Clear;
sql.Text:='select * from Tab1';
Open;
end;

اون قسمتی که اکتیو و فالس و ترو میکنم چند ثانیه زمان میبره که کاربرو اذیت میکنه و میخام این مدت زمانو حذف کنم

afshinrz
چهارشنبه 13 بهمن 1400, 13:27 عصر
With DataModule2.ADOQuery1 do
begin
Active:=false;
Active:=true;
Close;
SQL.Clear;
sql.Text:='select * from Tab1';
Open;
end;

Touska
شنبه 16 بهمن 1400, 13:32 عصر
اگر یک جا Dataset رو قرار دادید (مثلا در داخل data moudle) و تمامی کنترل هاتون از یکجا ارتباط گرفتن روش کار درست هست.

ولی اینکه با رفرش کردن Dataset زمان می بره :
- آیا حجم داده فراخوانی شده خیلی زیاد هست (نمیشه با فیلتر کردن داده مثلا داده های روز حجم داده رو کمتر کرد) - چون شما بدون شرط و با * داده رو فراخوانی کردید.

موفق باشید