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=3811)

الصفحات: 1 2


جعل الربط ديناميكي في الإتصال بقاعدة البيانات - SamirAloui - 22-01-2012

السلام عليكم






أواجه مشكلة في جعل الربط ديناميكي في الإتصال بقاعدة بيانات Access مع Delphi

حيث لدي في ConnectionString ما يلي

PHP كود :
Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=Base\DB.mdb;Mode=Share Deny None;Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False; 


كما تلاحظون

Data Source=Base\DB.mdb

ملف قاعدة البيانات DB.mdb وضعته داخل مجلد يحمل إسم Base و الملف التنفيذي في نفس مسار هذا الأخير ( مجلد يحمل إسم Base ) لكن يأتيني خطأ في الإتصال

و لما أغير Data Source بالتالي

Data Source=D:\Program Files\Test\Base\DB.mdb

و هو مسار القاعدة الثابت يتصل البرنامج بدون مشاكل

لكني أود جعل المسار ديناميكي ، و شكراً للقائمين على هذا المنتدى الرائع


جعل الربط ديناميكي في الإتصال بقاعدة البيانات - Lam.Abdeldjalil - 22-01-2012

وعليكم السلام و رحمة الله

Data Source=
كود :
ExtractFilePath(Application.ExeName)+\Base\DB.mdb
بالتوفيق


جعل الربط ديناميكي في الإتصال بقاعدة البيانات - kachwahed - 22-01-2012

وعليكم السلام
يمكن تشغيل البرنامج مع استرجاع المسار إليه (أضف في الملف dpr)
PHP كود :
{$R *.res}

begin
  SetCurrentDir
(ParamStr(0));//uses SysUtils
  
Application.Initialize;
  
Application.CreateForm(TForm1, Form1); 
وقد يتغير أثناء العمل بالبرنامج (عند استخدام TCommonDialog مثلا)، حينها ينبغي استدعاء SetCurrentDir ثانية...
بالتوفيق.



جعل الربط ديناميكي في الإتصال بقاعدة البيانات - SamirAloui - 22-01-2012

Lam.Abdeldjalil كتب :وعليكم السلام و رحمة الله

Data Source=
كود :
ExtractFilePath(Application.ExeName)+\Base\DB.mdb
بالتوفيق

شكراً على الرد أخي

لكن الطريقة لم تنجح ! أضفت ExtractFilePath(Application.ExeName) كما كتبتها لكن يأتيني خطأ


جعل الربط ديناميكي في الإتصال بقاعدة البيانات - SamirAloui - 22-01-2012

kachwahed كتب :وعليكم السلام
يمكن تشغيل البرنامج مع استرجاع المسار إليه (أضف في الملف dpr)
PHP كود :
{$r *.res}

begin
  setcurrentdir
(paramstr(0));//uses sysutils
  
application.initialize;
  
application.createform(tform1, form1); 
وقد يتغير أثناء العمل بالبرنامج (عند استخدام tcommondialog مثلا)، حينها ينبغي استدعاء setcurrentdir ثانية...
بالتوفيق.


لم أفهم جيداً ممكن توضح أكثر جزاك الله خيراً


جعل الربط ديناميكي في الإتصال بقاعدة البيانات - alkofily - 23-01-2012

السلام عليكم
استخدم ال odbc


جعل الربط ديناميكي في الإتصال بقاعدة البيانات - Lam.Abdeldjalil - 23-01-2012

السلام عليكم

إقتباس : لكن الطريقة لم تنجح ! أضفت ExtractFilePath(Application.ExeName) كما كتبتها لكن يأتيني خطأ
أين أضفتها ؟
كود :
ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+ExtractFilePath(Application.ExeName)+'\Base\DB.mdb;Persist Security Info=False';
بالتوفيق


جعل الربط ديناميكي في الإتصال بقاعدة البيانات - Lam.Abdeldjalil - 23-01-2012

وعليكم السلام و رحمة الله

إقتباس : استخدم ال odbc
هو يستخدم الـ Ado مع Access من الأفضل إستخدام OleDb ـ Smile


جعل الربط ديناميكي في الإتصال بقاعدة البيانات - SamirAloui - 23-01-2012

Lam.Abdeldjalil كتب :السلام عليكم

أين أضفتها ؟


هنا

PHP كود :
http://i.imgur.com/Z2UkI.png 

إذا كان غلط دلني أين أضيفه ؟


جعل الربط ديناميكي في الإتصال بقاعدة البيانات - Lam.Abdeldjalil - 23-01-2012

السلام عليكم

حين ذكرت ' ديناميكيا ' حسبتها برمجيا Smile

تابع هذا الرابط
http://www.delphi4arab.net/forum/showthread.php?tid=1572

على كل ، برمجيا ما عليك إلا إضافة سطر واحد فقط قبل الإتصال :
كود :
ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+ExtractFilePath(Application.ExeName)+'\Base\DB.mdb;Persist Security Info=False'; ADOConnection1.Connected:=true;
بالتوفيق