Ver Mensaje Individual
  #2  
Antiguo 03-10-2004
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
No se si funcionará desde D2, pero mírate estas funciones:
Código Delphi [-]
 
 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