Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Configuracion DBE desde delphi (https://www.clubdelphi.com/foros/showthread.php?t=21767)

LordBits 27-05-2005 00:19:08

Configuracion DBE desde delphi
 
Buenas,
como puedo hacer que desde mi aplicacion yo pueda cambiar los parametros del DBE que son el block size y level.
esto lo necesito para cuando mis tablas se creen estas se creen con el tamaño que yo les especifique..

muchas gracias

marcoszorrilla 27-05-2005 07:08:48

Aquí tienes algunos ejemplos:
Código Delphi [-]
 {Code sample to change Paradox table properties at run-time 
 
 Calling Syntax: }
 
 SetParadoxTableVersion('c:\database\sometable.db', 5);
 
 SetParadoxTableBlockSize('c:\database\sometable.db', 2048);
 
 SetParadoxTableLanguage('c:\database\sometable.db', 'DBWINUS0');
 
 SetParadoxTableStrictIntegrity('c:\database\sometable.db', True);

Un Saludo.

marcoszorrilla 27-05-2005 07:14:01

Creo que hace falta esta Unit:

Código Delphi [-]
  
  
  unit pdxtable;
  
  interface
  
  uses
    DBTables, SYSUtils;
  
  function SetParadoxTableVersion(TablePathName : String; Version : Integer) : Boolean;
  function SetParadoxTableBlockSize(TablePathName : String; BlockSize : Integer) : Boolean;
  function SetParadoxTableLanguage(TablePathName, LangDriver : String) : Boolean;
  function SetParadoxTableStrictIntegrity(TablePathName : String; StrictIntegrity : Boolean) : Boolean;
  
  implementation
  
  uses
    DB, BDE;
  
  function RestructureParadoxTable(Table : TTable; Option, OptData: String) : Boolean;
  var
    hDb: hDBIDb;
    Res : DBIResult;
    TableDesc : CRTblDesc;
    FieldDesc : FLDDesc;
  begin
    If (Table.Active and Not Table.Exclusive) Then Table.Close;
    If (Not Table.Exclusive) Then Table.Exclusive := True;
    If (Not Table.Active) Then Table.Open;
  
    Check(DbiGetObjFromObj(hDBIObj(Table.Handle), objDATABASE, hDBIObj(hDb)));
  
    Table.Close;
  
    FillChar(TableDesc, SizeOf(TableDesc), 0);
    StrPCopy(TableDesc.szTblName, Table.Tablename);
    StrCopy(TableDesc.szTblType, szParadox);
  
    FieldDesc.iOffset := 0;
    FieldDesc.iLen := Length(OptData) + 1;
    StrPCopy(FieldDesc.szName, Option);
  
    TableDesc.iOptParams := 1;
    TableDesc.pFldOptParams := @FieldDesc;
    TableDesc.pOptData := @OptData[1];
    try
      Res := DbiDoRestructure(hDb, 1, @TableDesc, nil, nil, nil, False);
      Result := (Res = DBIERR_NONE);
    finally
      Table.Open;
    end;
  end;
  
  function SetParadoxTableVersion(TablePathName : String; Version : Integer) : Boolean;
  var
    MyTable : TTable;
  begin
    MyTable := TTable.Create(Nil);
    MyTable.DatabaseName := ExtractFilePath(TablePathName);
    MyTable.TableName := ExtractFileName(TablePathName);
  
    Result := RestructureParadoxTable(MyTable, 'LEVEL', IntToStr(Version));
  
    MyTable.Free;
  end;
  
  function SetParadoxTableBlockSize(TablePathName : String; BlockSize : Integer) : Boolean;
  var
    MyTable : TTable;
  begin
    MyTable := TTable.Create(Nil);
    MyTable.DatabaseName := ExtractFilePath(TablePathName);
    MyTable.TableName := ExtractFileName(TablePathName);
  
    Result := RestructureParadoxTable(MyTable, 'BLOCK SIZE', IntToStr(BlockSize));
  
    MyTable.Free;
  end;
  
  function SetParadoxTableStrictIntegrity(TablePathName : String; StrictIntegrity : Boolean) : Boolean;
  var
    MyTable : TTable;
  begin
    MyTable := TTable.Create(Nil);
    MyTable.DatabaseName := ExtractFilePath(TablePathName);
    MyTable.TableName := ExtractFileName(TablePathName);
  
    If (StrictIntegrity) Then
      Result := RestructureParadoxTable(MyTable, 'STRICTINTEGRTY', 'TRUE')
    else
      Result := RestructureParadoxTable(MyTable, 'STRICTINTEGRTY', 'FALSE');
  
    MyTable.Free;
  end;
  
  function SetParadoxTableLanguage(TablePathName, LangDriver : String) : Boolean;
  var
    MyTable : TTable;
  begin
    MyTable := TTable.Create(Nil);
    MyTable.DatabaseName := ExtractFilePath(TablePathName);
    MyTable.TableName := ExtractFileName(TablePathName);
  
    Result := RestructureParadoxTable(MyTable, 'LANGDRIVER', LangDriver);
  
    MyTable.Free;
  end;
  
  end.

Un Saludo.

LordBits 27-05-2005 16:36:16

muchas gracias marcoszorrilla de lujo esta ese ejemplo.

LordBits 27-05-2005 16:46:23

El codigo que nos dio marcoszorrilla sirve para restructurar las tablas ya creadas. el link que pongo abajo es para cambiar la configuracion del idapi32.cfg desde delphi, util si necesitas cambiar algun parametro antes de crear las tablas...

http://info.borland.com/devsupport/b...ginfolist.html

muy bueno..


La franja horaria es GMT +2. Ahora son las 23:55:35.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi