المشاركات : 25
المواضيع 11
:
: 0
الإنتساب : Nov 2011
عند استعمال Auto increment في جدول paradox يقوم بترتيب البيانات تلقائيا
لكن عند حذف أحد هذه البيانات يبقى الرقم فارغ
مثلا عندنا التسجيلة 1
// 2
// 3
// 4
عند حذف التسجيلة 3 تبقى فارغة
هل من طريقة لجعل البرنامج يملاء هذه الفراغات
المشاركات : 2,293
المواضيع 157
:
: 81
الإنتساب : Dec 2008
السلام عليكم
الخدعة باللعب على ملف قاعدة البيانات، وإعادة تهيئة قيمة بداخله:
PHP كود :
function ResetAutoInc(FileName: TFileName; NewValue:Longint): Boolean;
begin
with TFileStream.Create(FileName, fmOpenReadWrite) do
try
Result := (Seek($49, soFromBeginning) = $49) and (Write(NewValue, 4) = 4);
finally
Free;
end;
end;
فرنسي:
PHP كود :
(*Si tu implementes la procedure setAutoInc(sFilename : string;
iValeur:Longint) alors cette procedure permet d'effacer la
valeur iValeur à l'auto-increment de la table paradox sFilename.
Attention il faut donner le chemin complet du fichier *.db
correspondant à ta table paradox.
Par exemple, pour re-initialiser l'auto-increment de la table C:\Database\MaTable.DB :
setAutoInc('C:\Database\MaTable.DB',0)*)
unit UbsDBUtils;
interface
uses
classes,
Sysutils;
procedure setAutoInc(sFilename : string; iValeur:Longint);
function GetAutoInc(sFilename : string): Longint;
implementation
function GetAutoInc(sFilename : string): Longint;
var
myStream : tFileStream;
begin
result := -1;
myStream := tFileStream.create(sFileName, fmOpenRead + fmShareExclusive);
myStream.Seek(73, soFromBeginning);
//myStream.WriteBuffer(iValeur, 4);
myStream.ReadBuffer(result,4);
myStream.Free;
end;
procedure setAutoInc(sFilename : string; iValeur:Longint);
var
myStream : tFileStream;
begin
myStream := tFileStream.create(sFileName, fmOpenWrite + fmShareExclusive);
myStream.Seek(73, soFromBeginning);
myStream.WriteBuffer(iValeur, 4);
myStream.Free;
end;
لم أجرب أيا من ذلك، ولا أنصحك بهذه الطرق...
بالتوفيق.