مشاهدة النسخة كاملة : مشكل في تفعيل الجدول
أمير الدلفي
25-05-2008, 01:57 AM
سلام احباب
عسى ان يكون الجميع في تمام الصحة و العافية
****ا منكم تصحيح الكود التالي :
RepExe:=ExtractFilePath(Application.EXEName);
FichierIni:=TIniFile.Create(repexe+'test.ini');
rep:='data\'+fichierini.ReadString('base','rep','n onbd');
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 ;
يظهر لي الرسالة التالية
http://www.arb-up.com/files/arb-up-2008-1/FhK77391.jpg
مع وقوف مؤ شر التشغيل في table1.Active := true
و شكرا لكل من تعاون معي و ***** له كل التوفيق
merouane
25-05-2008, 02:31 AM
و عليكم السلام
الخطأ الأول في الملف INI حيث /rep=bd خطأ
الصواب: rep=bd
ثم في الكود فأنت لا تحتاج لمعرفة مكان الملف التنفيذي لأن المجلد مع الملف التنفيذي تحت نفس المجلد
rep:=repexe+'data\'+fichierini.ReadString
الأسهل : rep:='data\'+fichierini.ReadString
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:='data\'+fichierini.ReadString('base','rep','n onbd');
if rep='data\nonbd' then
showmessage('Chemin pour la base de données non valide')
else
begin
rep:='data\'+fichierini.ReadString('base','rep','n onbd');
table1.DatabaseName:=Rep;
table1.TableName:='data.DB';
table1.Active := true ;
end ;
end;
بالتوفيق :)
أمير الدلفي
25-05-2008, 04:37 AM
جزاك الله خيرا و بارك فيك و في علمك
SALAH
25-05-2008, 10:02 AM
ثم في الكود فأنت لا تحتاج لمعرفة مكان الملف التنفيذي لأن المجلد مع الملف التنفيذي تحت نفس المجلد
end;[/COD
هل يمكن استنتج من كلامك اني عندما استعمل التعليمة الاولى يمكن لي نسخ الملف في اي موضع ****
merouane
25-05-2008, 10:20 AM
لدي ملاحظة مكملة للسابقة
من الأفضل ، ولكي نستفيد من الملف 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
و نفذ البرنامج
منه للمستعمل حرية تغيير مكان قاعدة البيانات (طريقة لزيادة الحماية)
تحياتي :)
SALAH
25-05-2008, 10:33 AM
الوجهة تقصد بها الامتداد لقاعدة المعطبات
توضع بدل bd في rep=bd
و بعد تثبيت البرنامج ننسخ ملف قاعدة المعطيات حيث شئنا و نغير الامتداد كل مرة مفهوم
و لكن لماذا استعمل الاخ امكروس instelshiled في مشروعه
merouane
25-05-2008, 10:40 AM
الوجهة أقصد بها مكان الجدول في القرص الصلب أو FlashDisk (أي بالفرنسية Chemin)، مثلا :
قاعدة البيانات في F:\Datas\ProjectFinal ، والبرنامج في D:\myProjectFinal\Version1
الأخ أمكروس استعمل instelshiled لتثبيت BDE ( لأن TTable تستعمله) و هو غير مثب على النظام
SALAH
25-05-2008, 10:56 AM
شكرا جزيلا على التوضيح
نعم انا ايصاقصدت Chemin
F:\Datas\ProjectFinal هو ما نكتب بدل bd في rep=bd قل نعم ****ك
merouane
25-05-2008, 10:58 AM
نعم ، ولا تحتاج للكلمة التي بعدها :)
SALAH
25-05-2008, 11:02 AM
شكرا موفق
***** ان تكتب ملاحظتك القيمة في موضوع الأخ أمكروس لتكون اكثر فعالية فهي في صلب الموضوع
vBulletin® , Copyright ©2008-2012