المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : مشكل في تفعيل الجدول


أمير الدلفي
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
شكرا موفق
***** ان تكتب ملاحظتك القيمة في موضوع الأخ أمكروس لتكون اكثر فعالية فهي في صلب الموضوع