View Full Version : سوال: مشکل با paradox و BDE-لطفا راهنمایی کنید
amir_ir
چهارشنبه 23 اردیبهشت 1388, 08:42 صبح
سلام به همه دوستان
من یک database با Paradox دارم و در برنامه از alias استفاده کردم. برای search در onchange یک editbox کد زیر رو نوشتم.
table1.Active:=false;
query1.Active:=false;
query1.SQl.Clear;
query1.SQL.Add('select * from dr where name like :na and familly like :fa ');
query1.ParamByName('na').AsString:=(txtname.Text)+ '%';
query1.ParamByName('fa').AsString:=(txtfamily.Text )+'%';
query1.ExecSQL;
table1.Active:=true;
query1.Active:=true;
dbgrid1.DataSource.DataSet:=query1;
برنامه به خوبی کار می کنه ولی روی سیستم خودم بعد از حدودا 70 بار که جستجو انجام میشه پیغام زیر رو میده(روی سیستم دیگه بعد از 20 بار اجرا)
Project DR.EXE raised exception class EDB Engine Error with mesage "Insufficient memory for this operation"a.
و باید از برنامه خارج شد و دوباره run کرد.
لطفا راهنماییم کنید:ناراحت: .آیا راهی هست که بدون نیاز به تغییر paradox یا بدون نیاز به حذف alias برنامه درست بشه؟
ممنون از همه دوستان
Saeed_m_Farid
چهارشنبه 23 اردیبهشت 1388, 09:57 صبح
برنامه به خوبی کار می کنه ولی روی سیستم خودم بعد از حدودا 70 بار که جستجو انجام میشه پیغام زیر رو میده(روی سیستم دیگه بعد از 20 بار اجرا)
اولا فکر میکنم Event ای که شما این کدها رو واسش نوشتین درست نیست، اگه trace کنین می بینین که شما هر کاراکتری که تایپ میکنید ای کد فراخوانی میشه! OnExit بنظرم بهتره، چرا اینکار رو میکنید؟ Query شما که ثابته! فقط پارامترهاتون تغییر میکنن؛ هردفعه اینهمه کار نکنین، نیازی به Close/Open جدولتون هم نیست چون دو تا مقوله جدا هستن، فقط پارامترهای Query رو مقداردهی کنین
پ.ن. : کدهاتون رو هم تو تگ کد بذارین که بشه خوندشون!
amir_ir
جمعه 25 اردیبهشت 1388, 02:13 صبح
سلام و ممنون
من کاملا متوجه نشدم. یعنی کسی نمی دونه علتش چیه ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ :ناراحت:
کمککککککککککککککککککککککک کککککککککککککککک لطفا :ناراحت:
merced
جمعه 25 اردیبهشت 1388, 23:07 عصر
http://info.borland.com/devsupport/sqllinks/pub-88.html
C:\Program Files\Borland\Common Files and open the BDE folder.
Click the System Folder to expand it.
Click the INIT icon. A list of configuration settings will display.
Type 0x5BDE in the SHAREDMEMLOCATION field.
Change the value in the SHAREDMEMSIZE field to 4096.
Click the Object pull-down menu.
Click Apply, and then answer OK to the confirmation to Save all edits...
If the problem still occurs, try the same instructions above, but this time try a SHAREDMEMSIZE property at 8192.
amir_ir
شنبه 26 اردیبهشت 1388, 20:20 عصر
http://info.borland.com/devsupport/sqllinks/pub-88.html
C:\Program Files\Borland\Common Files and open the BDE folder.
Click the System Folder to expand it.
Click the INIT icon. A list of configuration settings will display.
Type 0x5BDE in the SHAREDMEMLOCATION field.
Change the value in the SHAREDMEMSIZE field to 4096.
Click the Object pull-down menu.
Click Apply, and then answer OK to the confirmation to Save all edits...
If the problem still occurs, try the same instructions above, but this time try a SHAREDMEMSIZE property at 8192.
سلام .وقعا ممنون
مطلب جدید و جالبی بود. ممنون
ولی متاسفانه با تغییرات بالا هم باز پیغام insufficiente mmemory for this operation رو میده. فکر می کنید چی میتونه باشه؟؟؟؟
merced
شنبه 26 اردیبهشت 1388, 23:14 عصر
اين ديگه معركه است . بهتر هم نشد؟
شايد واقعاً حافظه كم مياره.
شايد موقع شروع برنامه همه جداول رو باز مي كني بدون اينكه نياز داشته باشي.
كد رو بهينه كنيد. هر جدول هر زمان كه لازمه باز شه و به موقع هم بسته شه.
جداول رو كامل باز نكن . مثلاً اگه قراره كارمند جستجو كنيد ليست 10000 تايي رو نشون كاربر نديد. بذاريد اول اسمش رو بزنه و بعد جستجو انجام بشه. كه اونوقت حداكثر 100 ركورد رو برگردونيد.
حتماً از كوئري استفاده كنيد و تمام بازيابي ها رو به روشي محدود كنيد. مثلاً بطور پيش فرض ركوردهاي ثبت شده روز جاري فقط نشون داده بشه و بذاريد كاربر جستجو كنه!
amir_ir
یک شنبه 27 اردیبهشت 1388, 00:45 صبح
ok سعی می کنم برنامه رو بهینه کنم. ممنون از راهنماییت
خودم که حسابی گیج شدم. اگر به مشکلی برخوردم مزاحم همه دوستان میشم :گیج:
amir_ir
جمعه 01 خرداد 1388, 12:44 عصر
http://info.borland.com/devsupport/sqllinks/pub-88.html
C:\Program Files\Borland\Common Files and open the BDE folder.
Click the System Folder to expand it.
Click the INIT icon. A list of configuration settings will display.
Type 0x5BDE in the SHAREDMEMLOCATION field.
Change the value in the SHAREDMEMSIZE field to 4096.
Click the Object pull-down menu.
Click Apply, and then answer OK to the confirmation to Save all edits...
If the problem still occurs, try the same instructions above, but this time try a SHAREDMEMSIZE property at 8192.
سلام
قبلا خدمتتون گفتم که کارهای بالا رو انجام دادم و جواب نداد. حتی بیان شد نکنه واقعا حافظه در حین کار کم میاد . برنامه ای با یک table که شامل 3 رکورد هست رو هم امتحان کردم و باز پیغام Insuffisient memmory for this operation رو میده
merced
جمعه 01 خرداد 1388, 23:58 عصر
واقعاً ديگه چيزي باقي نمونده از كامپوننت Session و پراپرتي PrivateDir اون براي مشخص كردن يه مسير روي ديسك كه فضاي بيشتري داره استفاده كنيد
يا كلاً اين مسير رو از BDEAdmin عوض كنين
شايد روي ديسك فضاي كافي ندارين (كه با پست بالا بعيد به نظر ميرسه)
راستي اينو ديدي ؟؟
http://barnamenevis.org/forum/showthread.php?t=25286
Hamid_Programmer
شنبه 02 خرداد 1388, 00:20 صبح
سلام برای جستجو توی paradox به قول معروف خیلی لقمه رو دور سرت تابوندی . از فیلتر استفاده کن.توی onchange این کدها رو بنویس
if Name.Text<>'' then
begin
Form2.Table1.Filter:='Name = '+''''+name.Text+'*''';
form2.Table1.Filtered:=True;
end
else
Form2.Table1.Filtered:=False;
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.