delphi4arab منتديات دلفي للعرب

نسخة كاملة : كيف يتم الترقيم التلقائي لعمود جدول في قاعدة المعطيات Absolute
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
السلام عليكم

كيف يتم الترقيم التلقائي في قاعدة المعطيات Absolute

لنفرض انا لدينا جدول به أسماء الموظفين

نضيف عمود به الرقم التسلسلي للموظفين

كيف يتم الترقيم التسلسلي للموظفين  وتكون اظافة الرقم تلقائيا عند كل اظافة سجل اي موظف جديد

وعند حذف موظف يتم التصحيح تلقائيا وشكرا .
السلام عليكم الترقيم التلقائي لا يتم تصحيحه ...
أخي ليس عندي فكرة عن عملية الترقيم التلقائي بقاعدة البيانات
أبحث عن الطريقة لتعلم ذلك

لا اقصد التصحيح
اعني يأخذ الترتيب التلقائي بعد الحذف

قمت بتجريب هذه الدالة في زر الاظافة لكن مازال عندي مشكل
كود :
function code_suiv(x:string):string; var y,c:string; t,i:integer; begin y:=inttostr(strtoint(x)+1); t:=length(y); c:=''; for i:= 1 to length(x)-t do c:=c+'0'; code_suiv:=c+y; end; procedure TForm4.BitBtn1Click(Sender: TObject); var x:string; begin ABSTable1.Last; x:= ABSTable1.FieldValues['N']; ABSTable1.Insert; ABSTable1.FieldValues['N']:=code_suiv(x); end;
السلام عليكم لا استخدم Absolute Database و الا كنت ساعدتك ربما هذا يفيدك
PHP كود :
http://www.componentace.com/last-auto-inc-delphi.htm 
السلام عليكم و رحمة الله تعالى و بركاته
أخي اذا اردت الترقيم التلقائي موجود نوع من البيانات -type of data- وهو AutoInc يقوم بالترقيم التلقائي
أما إذا أردت اضافة شيء للترقيم مثلا السنة 19/0001 فهنا عليك بإضافة دالة تقوم بذلك
بالتوفيق
أنا أستعمل هذا الكود
حاول التغيير فيه حسب ماتراه مناسبا لك
Smile
كود :
procedure TForm1.Button1Click(Sender: TObject); var i:integer; begin i:=0; with adoTable1 do begin   First;   While Not EOF do   begin   edit;   Inc(i);    adotable1id.Value:=i;    Next;   end; end; end;
شكرا أخي على تنويه

وهل ينطبق ذلك على قاعدة بيانات من نوع Absolute

لقد غيرته  في قاعدة بيانات الى AutoInc

لكن لم ينجح الأمر ...  

مثال مرفق على ذلك
وعليكم السلام هذه دالة استخدمتها لترقيم الفواتير حسب السنة
وكملاحظة فقط عند حذف سجل يجب ان يكون السجل الاخير فقط لتعمل الدالة بفعالية لتفادي التكرار

PHP كود :
function Get_Bill_In_NUM(myDate: TDateTime): ShortString;
var
 sltb: TSQLIteTable;
 Year: Word;
begin
 Year 
:= YearOf(myDate);
   // رقم السلع الداخلة
 sltb := SQLiteDatabase.GetTable('select count(*) as _count from bills_in where date like "%' + inttostr(Year) + '"');
 try
   if sltb
.Count > 0 then
     Result 
:= IntToStr(Year) + '/' + (inttostr(sltb.FieldAsInteger(sltb.FieldIndex['_count']) + 1))
   else
     Result 
:= IntToStr(Year) + '/' + ('1');

 finally
   sltb
.Free;

end;
 end; 


الصورة المرفقة توضح طريقة عمل الدالة حبث عند تغيير التاريخ يتغير الترقيم
شكرا جزيلا لكم جميعا

تم ترقيم القاعدة بنجاح كما قال الأخ makhlouf

لكن بقيت المشكلة عند حذف سجل الجدول لا يواصل الترتيب التلقائي بل يتخطى الرقم المحذوف

ما هو حل مشكلة تعديل الارقام بعد الحذف
(15-04-2019, 06:26 PM)فارس المطر كتب : [ -> ]شكرا أخي على تنويه

وهل ينطبق ذلك على قاعدة بيانات من نوع Absolute

لقد غيرته  في قاعدة بيانات الى AutoInc

لكن لم ينجح الأمر ...  

مثال مرفق على ذلك

1- لا يمكن تغيير الحقل AutoInc 
2- أضف حقل ترقيم من إنشائك الذي سوف يقع عليه التغيير ( حذف تغيير تبديل .. ) الذي سميته أنا [size=small]id[/size]
[size=small]3- غير adotable بـ  Absolute[/size]
الصفحات : 1 2