مشكل مع auto incrémentation
#6
حاول أخذ ما تحتاج من هذا الكود :

table Paradox (v.7)

PHP كود :
function PackTable(aNomDeLaTable : String; aReindexer : Boolean) : Boolean;
var
   
Tbl     : TTable;
   
cProps  : CURProps;
   
hDb     : hDBIDb;
   
TblDesc : CRTblDesc;
begin
     Result 
:= False;
     
Tbl := TTable.Create(nil);
     try
        
with Tbl do
        
begin
             Active 
:= False;
             
// Le chemin d'accès de la table
             
DatabaseName := ExtractFilePath(aNomDeLaTable);
             
// Le nom de la table paradox
             
TableName := ExtractFileName(aNomDeLaTable);
             
// Ouverture en mode exclusif
             
Exclusive := True;
             
Open;
        
end;
        
// Le chemin courant est utilisé de façon temporaire pour le pack
        
SetCurrentDir(ExtractFilePath(aNomDeLaTable));
        
// Il faut être sûr que la table soit ouverte (et de manière exclusive)
        
if not tbl.Active then
        begin
             
// La fonction renverra false
             // raise EDatabaseError.Create('La table doit être ouverte pour la compacter');
             
Exit;
        
end;
        if 
not tbl.Exclusive then
        begin
             
// La fonction renverra false
             // raise EDatabaseError.Create('La table doit être ouverte de manière exclusive pour la compacter');
             
Exit;
        
end;
        
// Recherche les propriétés de la table pour déterminer son type
        // Check(DbiGetCursorProps(tbl.Handle, cProps));
        
if DbiGetCursorProps(tbl.Handle, cProps) <> DBIERR_NONE then
        begin
             
// La fonction renverra false
             
Exit;
        
end;
        
// Si la table est une table Paradox, on la compacte
        
if (cProps.szTableType = szPARADOX) then
        begin
             
// Préparation d'une structure vide...
             
FillChar(TblDesc, SizeOf(TblDesc), 0);
             
// Obtient le handle de la table
             // Check(DbiGetObjFromObj(hDBIObj(tbl.Handle), objDATABASE, hDBIObj(hDb)));
             
if (DbiGetObjFromObj(hDBIObj(tbl.Handle), objDATABASE, hDBIObj(hDb)) <> DBIERR_NONE) then
             begin
                  
// La fonction renverra false
                  
Exit;
             
end;
             
// On remplit le nom de la table dans la description de table...
             
StrPCopy(TblDesc.szTblName, tbl.TableName);
             
// On remplit le type de la table dans la description de table...
             
StrPCopy(TblDesc.szTblType, cProps.szTableType);
             
// Coche l'option de compactage dans la description de table...
             
TblDesc.bPack := True;
             
// Ferme la table pour que la restructuration soit effective...
             
Tbl.Close;
             
// Appel de DbiDoRestructure qui effectue le compactage demandé...
             // Check(DbiDoRestructure(hDb, 1, @TblDesc, nil, nil, nil, aReindexer));
             
Result := (DbiDoRestructure(hDb, 1, @TblDesc, nil, nil, nil, aReindexer) = DBIERR_NONE);
        
end
        
else
            
// Compactage de table Paradox uniquement
            
Result := False; // raise EDatabaseError.Create('Compactage de table paradox uniquement !');
 
     
finally
            if 
Tbl.Active then
               Tbl
.Close;
            
Tbl.Free;
     
end;
end; 
الرد


الردود في هذا الموضوع
مشكل مع auto incrémentation - بواسطة BizDA - 22-05-2011, 09:09 PM
مشكل مع auto incrémentation - بواسطة أبو معاذ - 22-05-2011, 10:40 PM
مشكل مع auto incrémentation - بواسطة BizDA - 23-05-2011, 12:00 AM
مشكل مع auto incrémentation - بواسطة kachwahed - 23-05-2011, 12:34 AM
مشكل مع auto incrémentation - بواسطة BizDA - 23-05-2011, 12:56 AM
مشكل مع auto incrémentation - بواسطة لؤي - 23-05-2011, 08:42 AM
مشكل مع auto incrémentation - بواسطة BizDA - 23-05-2011, 07:32 PM
مشكل مع auto incrémentation - بواسطة kachwahed - 23-05-2011, 07:54 PM
مشكل مع auto incrémentation - بواسطة BizDA - 23-05-2011, 08:10 PM
مشكل مع auto incrémentation - بواسطة kachwahed - 23-05-2011, 10:19 PM

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم