delphi4arab منتديات دلفي للعرب
كيف اربط قاعدة البيانات بالملف التنفيذي - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : كيف اربط قاعدة البيانات بالملف التنفيذي (/showthread.php?tid=12200)



كيف اربط قاعدة البيانات بالملف التنفيذي - salmaanga - 31-01-2023

السلام عليكم
 كيف اربط DatabaseFileName  بالملف التنفيذي مباشرة بحيث كلما غيرت مكان الملف الذي يحوي البرنامج لا احتاج لتغيير المسار مجددا


RE: كيف اربط قاعدة البيانات بالملف التنفيذي - bouh25 - 01-02-2023

قم بالبحث على التعليمة connection string تختلف حسب قاعدة البيانات المستعملة و المكون المستعمل
مثل SQLServer مع المكون FireDac
procedure TForm2.Button1Click(Sender: TObject);
begin
try
FMSSQLDriverLink := TFDPhysMSSQLDriverLink.Create(nil);
FDBConnection := TFDConnection.Create(nil);
FDBConnection.Params.DriverID := 'MSSQL';
FDBConnection.Params.UserName := 'sa';
FDBConnection.Params.Password := '<your_password>';
FDBConnection.Params.Database := '<your_database>';
FDBConnection.Params.Add('server=<your_DB_server>');
FDBConnection.Connected := True;
if FDBConnection.Connected then begin
ShowMessage('Connected successfully');
end;
finally
if FDBConnection.Connected then begin
FDBConnection.Close;
end;
end;
end;


RE: كيف اربط قاعدة البيانات بالملف التنفيذي - salmaanga - 01-02-2023

(01-02-2023, 01:30 PM)bouh25 كتب : ما العبارة التي اكتبها في خانة DatabaseFileName تعلم البرنامج بأن قاعدة البيانات مرفقة مع الملف التنفيذي مباشرة بحيث كلما غيرت مكان الملف الذي يحوي البرنامج لا احتاج لتغيير المسار مجددا فهو مرتبط تلقائيا بالملف التنفيذ



RE: كيف اربط قاعدة البيانات بالملف التنفيذي - larbiparadox - 01-02-2023

وعليك السلام

اولا عليك تحديد نوع قاعدة البيانات


RE: كيف اربط قاعدة البيانات بالملف التنفيذي - salmaanga - 02-02-2023

(01-02-2023, 01:30 PM)bouh25 كتب : قم بالبحث على التعليمة connection string  تختلف حسب قاعدة البيانات المستعملة و المكون المستعمل
مثل SQLServer مع المكون FireDac
procedure TForm2.Button1Click(Sender: TObject);
begin
  try
    FMSSQLDriverLink := TFDPhysMSSQLDriverLink.Create(nil);
    FDBConnection := TFDConnection.Create(nil);
    FDBConnection.Params.DriverID := 'MSSQL';
    FDBConnection.Params.UserName := 'sa';
    FDBConnection.Params.Password := '<your_password>';
    FDBConnection.Params.Database := '<your_database>';
    FDBConnection.Params.Add('server=<your_DB_server>');
    FDBConnection.Connected := True;
    if FDBConnection.Connected then begin
      ShowMessage('Connected successfully');
    end;
  finally
    if FDBConnection.Connected then begin
      FDBConnection.Close;
    end;
  end;
end;
هذا الكود يستعمل عند التنفيذ و هو ناجح بارك الله فيك على الاضافة المهمة التي احتاجها عند نقل البرنامج لاكن كيف اكتب مسار قاعدة البيانات الموجودة مع الملف التنفيذي قبل التنفيذي  عند التصميم في خانة  DataBaseFileName
بحيث استطيع ان اجعل عدة نسخة لملف لتصميم البرنامج بحيث يكون كل ملف بقاعدة البيانات المرفقة ضمنه التي توجد في موقع الملف التنفيذي بهذه الطريقة اتجنب امرين الاول عند عمل نسخة من ملف التصميم تكون مرتبطة بقاعدة بياناتها فقط و ثانيا لا احتاج اذا غيرة مكان الملف ان اغير معه مسار قاعدة البيانات
الفكرة هي قبل التنفيذ عند تصميم البرنامج و ليست بعد التنفيذ و شكرا

(01-02-2023, 10:27 PM)larbiparadox كتب : وعليك السلام

اولا عليك تحديد نوع قاعدة البيانات

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

(01-02-2023, 10:27 PM)larbiparadox كتب : وعليك السلام

اولا عليك تحديد نوع قاعدة البيانات


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


RE: كيف اربط قاعدة البيانات بالملف التنفيذي - larbiparadox - 03-02-2023

حسب ما فهمت أنت تريد تخزين إعدادات في قاعد بينات محلية لتتصل بقاعدة بيانات أخرى موجودة في جهاز أخر

* ملاحظة : يمكنك تغيير قاعدة بيانات محلية بملف ini.

_ عند تنفيذ البرنامج ولمعرفة مساره أو أين موجود توجد عدة طرق من بينها
كود :
Chemin := ExtractFileDir(Application.ExeName);

_ كمثال لإضافة إسم قاعدة البيانات :

كود :
Chemin_mdb := ExtractFileDir(Application.ExeName) +'mydata.mdb';

ركز على الامر ExtractFileDir(Application.ExeName) و وظفه برمجيا حسب متطلباتك


RE: كيف اربط قاعدة البيانات بالملف التنفيذي - Ndagor - 03-02-2023

انظر الى هذا الجواب

https://delphi4arab.net/forum/showthread.php?tid=11980&pid=55260#pid55260


RE: كيف اربط قاعدة البيانات بالملف التنفيذي - Mr.DOS - 03-02-2023

السلام عليكم
1 - ما نوع قاعدة البيانات
2 - وماهي ادوات الاتصال المستعملة .


RE: كيف اربط قاعدة البيانات بالملف التنفيذي - salmaanga - 05-02-2023

(03-02-2023, 06:45 PM)Mr.DOS كتب : السلام عليكم
1  - ما نوع قاعدة البيانات
2  - وماهي ادوات الاتصال المستعملة .

1 - Absolute Database
2 - ABSDatabase1 اكتب مسار قاعدة البيانات في خانة DatabaseFileName


RE: كيف اربط قاعدة البيانات بالملف التنفيذي - larbiparadox - 05-02-2023

** لو وضحت في البداية ما مرادك ، لا سهلت على الأعضاء الاجابة


ستحتاج إلى ABSDatabase1 و ABSTable1


_ ABSDatabase1 هذا المكون هو الذي سنربطه بقاعدة البيانات و شيء المهم سنعطي لقاعدة إسم مختسر في الخصائص DatabaseName كمثال أسميها My_Data

[صورة: 685407001.jpg]

_ الأن نربط ABSTable1 مع ABSDatabase1 ، بعدما سميناها My_Data    في ABSDatabase1 ، نذهب إلي خصائص ABSTable1 في DatabaseName و نضع فيها إسم My_Data    ، بعدها نذهب إلى ABSTable1 في خصائص TableName نعطيها إسم الجدول في قاعدة البيانات الذي سنفتحه
_ نفس الشيء للجداول الاخرى

[صورة: 116670030.jpg]

_ بعدها نذهب إلى الفورم الرئيسية في خصائص الاحداث نضغط مرتين على OnCreate كما هو مبين في الصورة عند الرقم 3

[صورة: 178420613.jpg]


نضع الكود التالي :

كود :
CurDir: String; begin   CurDir := ExtractFilePath(Application.ExeName);   ABSDatabase1.DatabaseFileName := CurDir + 'basedonnees.abs';   ABSDatabase1.Connected:=true;     ABSTable1.Active:=true;     . . .     . . .     . . .     ABSTable5.Active:=true;

[صورة: 265568998.jpg]

* غير إسم ملف قاعدة كمثال أنا وضعته بإسم basedonnees.abs