مشكل في تفعيل الجدول
#1
سلام احباب
عسى ان يكون الجميع في تمام الصحة و العافية
****ا منكم تصحيح الكود التالي :

[HTML]RepExe:=ExtractFilePath(Application.EXEName);
FichierIni:=TIniFile.Create(repexe+'test.ini');
rep:='data\'+fichierini.ReadString('base','rep','nonbd');
if rep='data\nonbd' then showmessage('Chemin pour la base de données non valide')
else
begin
rep:=repexe+'data\'+fichierini.ReadString('base','rep','nonbd');
table1.DatabaseName:=Rep;
table1.TableName:='data.DB';
table1.Active := true ;
end ;[/HTML]

يظهر لي الرسالة التالية

[صورة: FhK77391.jpg]

مع وقوف مؤ شر التشغيل في [HTML]table1.Active := true [/HTML]

و شكرا لكل من تعاون معي و ***** له كل التوفيق


الملفات المرفقة
.rar   bibliothèque.rar (الحجم : 403.31 ك ب / التحميلات : 38)
الرد
#2
و عليكم السلام

الخطأ الأول في الملف INI حيث /rep=bd خطأ

الصواب: rep=bd

ثم في الكود فأنت لا تحتاج لمعرفة مكان الملف التنفيذي لأن المجلد مع الملف التنفيذي تحت نفس المجلد

rep:=repexe+'data\'+fichierini.ReadString

الأسهل : rep:='data\'+fichierini.ReadString

كود :
procedure TForm1.FormCreate(Sender: TObject); begin [color=Blue]//flash[/color] ShockwaveFlash1.Movie := ExtractFilePath(Application.ExeName) + 'swf\movie.swf'; [color=Blue]//Alias[/color] RepExe:=ExtractFilePath(Application.EXEName); FichierIni:=TIniFile.Create(repexe+'test.ini'); rep:='data\'+fichierini.ReadString('base','rep','nonbd'); if rep='data\nonbd' then showmessage('Chemin pour la base de données non valide') else begin rep:='data\'+fichierini.ReadString('base','rep','nonbd'); table1.DatabaseName:=Rep; table1.TableName:='data.DB'; table1.Active := true ; end ; end;

بالتوفيق Smile


الملفات المرفقة
.zip   bibliotheque_correct.zip (الحجم : 498.74 ك ب / التحميلات : 34)
الرد
#3
جزاك الله خيرا و بارك فيك و في علمك
الرد
#4
merouane كتب :
ثم في الكود فأنت لا تحتاج لمعرفة مكان الملف التنفيذي لأن المجلد مع الملف التنفيذي تحت نفس المجلد
end;[/COD

هل يمكن استنتج من كلامك اني عندما استعمل التعليمة الاولى يمكن لي نسخ الملف في اي موضع ****
الرد
#5
لدي ملاحظة مكملة للسابقة

من الأفضل ، ولكي نستفيد من الملف INI أكبر قدر ممكن نجعل rep في الملف السابق تحتوي على الوجهة الكاملة للجدول، مثلا : 'C:\MyProject\Datas'
طبعا المستعمل يستطيع تغيير مكان قاعدة البيانات أين يشاء (مثلا FlashDisk) لكن دائما نحفظ الوجهة في الملف INI

ثم في الكود

كود :
procedure TForm1.FormCreate(Sender: TObject); begin //flash ShockwaveFlash1.Movie := ExtractFilePath(Application.ExeName) + 'swf\movie.swf'; //Alias RepExe:=ExtractFilePath(Application.EXEName); FichierIni:=TIniFile.Create(repexe+'test.ini'); rep:=fichierini.ReadString('base','rep','nonbd'); if rep='nonbd' then showmessage('Chemin pour la base de données non valide') else begin table1.DatabaseName:=Rep; table1.TableName:='data.DB'; table1.Active := true ; end ; end;

الآن ضع قاعدة البيانات في FlashDisk ، و أدخل الوجهة في الملفINI عند Rep

و نفذ البرنامج

منه للمستعمل حرية تغيير مكان قاعدة البيانات (طريقة لزيادة الحماية)

تحياتي Smile
الرد
#6
الوجهة تقصد بها الامتداد لقاعدة المعطبات
توضع بدل bd في rep=bd
و بعد تثبيت البرنامج ننسخ ملف قاعدة المعطيات حيث شئنا و نغير الامتداد كل مرة مفهوم
و لكن لماذا استعمل الاخ امكروس instelshiled في مشروعه
الرد
#7
الوجهة أقصد بها مكان الجدول في القرص الصلب أو FlashDisk (أي بالفرنسية Chemin)، مثلا :
قاعدة البيانات في F:\Datas\ProjectFinal ، والبرنامج في D:\myProjectFinal\Version1

الأخ أمكروس استعمل instelshiled لتثبيت BDE ( لأن TTable تستعمله) و هو غير مثب على النظام
الرد
#8
شكرا جزيلا على التوضيح
نعم انا ايصاقصدت Chemin
F:\Datas\ProjectFinal هو ما نكتب بدل bd في rep=bd قل نعم ****ك
الرد
#9
نعم ، ولا تحتاج للكلمة التي بعدها Smile
الرد
#10
شكرا موفق
***** ان تكتب ملاحظتك القيمة في موضوع الأخ أمكروس لتكون اكثر فعالية فهي في صلب الموضوع
الرد


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


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