كيف أعيد قيمة index عند حذف سطر؟
#4
أرفق المثال (إذا أمكن).

أسهل طريقة - بدون تعقيدات - يمكن أن أفكر فيها هي:

تغيير N إلى Integer (إنشاء حقل آخر اسمه id يكون AUTOINC)
عبر تعليمة SQL بسطر وحيد يمكن معرفة آخر N في الجدول.
ولأن الإضافة في البداية ستعتمد على هذه التعليمة ستكون N مرتبة تصاعديا، بعد الحذف لن يكون هناك تكرار في الأرقام المعطاة للحقل (ستكون هناك فجوات بدون تكرار: مثل 1.2.3.5.7.13.25).

كود :
procedure addNewUser; var  LastN: Integer; const  SQLText = 'SELECT top 1,1 N FROM securite ORDER BY N DESC;'; begin  ABSQuery1.SQL.Clear;  ABSQuery1.SQL.Text := SQLText;  ABSQuery1.Active := True;  LastN := ABSQuery1.Fields[0].AsInteger;  ABSTable1.Append;  ABSTable1.FieldByName('N').AsInteger := LastN + 1;  ABSTable1.FieldByName('Utilisateur').AsString := 'BlaBla';  ABSTable1.Post; end;
[-] كل من 1 user says قال شكرا ل merouane على المشاركة المفيدة
  • belnono
الرد


الردود في هذا الموضوع
RE: كيف أعيد قيمة index عند حذف سطر؟ - بواسطة merouane - 25-07-2018, 06:14 PM

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


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