Ver Mensaje Individual
  #3  
Antiguo 27-05-2005
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Reputación: 10
marcoszorrilla Va por buen camino
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.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita