نمایش نتایج 1 تا 4 از 4

نام تاپیک: چند سوال در مورد Pack

  1. #1
    VIP آواتار رضا عربلو
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    تهران
    پست
    1,597

    چند سوال در مورد Pack

    با سلام.
    حتماً اساتید گرامی تا به حال با pack کردن بانک های پارادکس خود با الگوریتمی شبیه به زیر پرداخته اند.
    (می بخشید من سیستم نامگذاری دراز اما کارای خودم را دارم)
    procedure Procedure_ParadoxPack(Table_Paradox : TTable);
    var
    CRTblDesc_TBDesc : CRTblDesc; // Uses BDE
    hDbiDb_hDb : hDbiDb; // Uses BDE
    CharArray_TablePath : array[0..DBIMAXPATHLEN] of char;
    begin
    FillChar(CRTblDesc_TBDesc, SizeOf(CRTblDesc_TBDesc), 0);
    with CRTblDesc_TBDesc do
    begin
    StrPCopy(szTblName, Table_Paradox.TableName);
    StrPCopy(szTblType, szPARADOX);
    bPack := True;
    end;
    Table_Paradox.Open;
    hDbiDb_hDb := nil;
    Check(DbiGetDirectory(Table_Paradox.DBHand le, True, CharArray_TablePath));
    Table_Paradox.Close;
    Check(DbiOpenDatabase(nil, 'STANDARD', dbiREADWRITE, dbiOPENEXCL, nil, 0, nil, nil, hDbiDb_hDb));
    Check(DbiSetDirectory(hDbiDb_hDb, CharArray_TablePath));
    Check(DbiDoRestructure(hDbiDb_hDb, 1, @CRTblDesc_TBDesc, nil, nil, nil, False));
    Table_Paradox.Open;
    Table_Paradox.Close; {// I added}
    end;


    حال سوال های من به قرار زیر است.
    1 - چگونه می توانم در حین انجام pack برای اینکه کاربر حوصله اش سر نرود و در ضمن از مدت زمان لازم برای انجام این دستور و میزان ÷یشرفت دقیق این عمل اگاه شود position یک progressbar را مقدار داد.
    2 - وقتیکه دستور فوق را به یک بانک پارادکس بزرگ می زنم. برنامه بسیار کند می شود چگونه می توانم. بلافاصله بعد از دستور فوق دوباره درایورهای بانک الاعاتی را در حافظه لود کنم تا سرعت برنامه از دست نرود.

  2. #2
    سلام
    برای فشرده سازی یک جدول از نوع پاراداکس می توانید از کد زیر استفاده کنید

    procedure PARADOXPACK(TABLE:TTABLE);
    VAR
    TBDESC:CRTBLDESC;
    HDB:HDBIDB;
    TABLEPATH:ARRAY[0..DBIMAXPATHLEN] OF CHAR;
    BEGIN
    FillChar(TBDESC,SIZEOF(TBDESC),0);
    WITH TBDESC DO BEGIN
    StrPCopy(SZTBLNAME,TABLE.TableName);
    STRPCOPY(SZTBLTYPE,SZPARADOX);
    BPACK:=TRUE;
    END;
    TABLE.Open;
    HDB:=NIL;
    Check(DBIGETDIRECTORY(TABLE.DBHANDLE,TRUE, TABLEPATH));
    TABLE.Close;
    CHECK(DBIOPENDATABASE(NIL,'STANDARD',DBIRE ADWRITE,DBIOPENEXCL,NIL,0,NIL,HDB));
    CHECK(DBISETDIRECTORY(HDB,TABLEPATH)&# 41;;
    Check(DBIDORESTRUCTURE(HDB,1,@TBDESC,NIL,N IL,NIL,FALSE));
    TABLE.Open;
    END;

    برای فشرده سازی جداول نوع DBASE از دستور زیر استفاده نمایید

    DBIPACKTABLE(TABLE1.DBHANDLE,TABLE1.HANDLE,NIL ,NIL,TRUE);



    نقل از کتاب 296 برنامه اجرا شده در دلفی 6 ( نویسنده : حسین ریاضی )

  3. #3
    VIP آواتار رضا عربلو
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    تهران
    پست
    1,597
    با سلام
    این جواب من نیست. :shock:

    این پروسیجر را من هم از کتاب 296 برنامه اجرا شده در دلفی 6 پیدا کرده ام و برای ان افرادی که کتاب فوق را نتوانسته ان تهیه کنند نوشته ام. 8)
    اگر Net. نمی دانید وارد نشوید.

  4. #4
    1) اگر واقعا به حوصله کاربرانتون علاقه مندید می تونید با نوشتن یک Thread زمان تخمینی مانده را نمایش دهید
    اما من پیشنهاد می کنم بجای اینکار از یک Lable ساده استفاده کنید "لطفا کمی صبر کنید ...."(و زمان "کمی را هم قید کنید ")

    2)بدلیل بافری که BDE استفاده می کند پیشنهاد می کنم اصلا اینکار را نکنید

تاپیک های مشابه

  1. کامپونت sui pack
    نوشته شده توسط davoodmz در بخش کامپوننت های سایر شرکت ها، و توسعه کامپوننت
    پاسخ: 3
    آخرین پست: سه شنبه 19 اردیبهشت 1385, 07:09 صبح
  2. pack کردن بانکهای پارادکس با کد
    نوشته شده توسط mehialdst در بخش برنامه نویسی در Delphi
    پاسخ: 6
    آخرین پست: دوشنبه 28 آذر 1384, 16:52 عصر
  3. Service Pack 4
    نوشته شده توسط Krubnik در بخش SQL Server
    پاسخ: 6
    آخرین پست: دوشنبه 06 تیر 1384, 22:25 عصر
  4. ZAP-PACK
    نوشته شده توسط شفیعی در بخش برنامه نویسی در Delphi
    پاسخ: 14
    آخرین پست: دوشنبه 17 اسفند 1383, 20:14 عصر
  5. Pack کردن برنامه VB.Net(فوری)
    نوشته شده توسط sh_m در بخش VB.NET
    پاسخ: 3
    آخرین پست: سه شنبه 12 آبان 1383, 17:31 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •