قاعدة بيانات اكسس دينامكية
#1
السلام عليكم ورحمة الله وبركاته,
احبابي الكرام
اسال عن كيفية انشاء قاعدة بيانات  اكسس   محمية [b]بكلمة سر متصلة بدلفي دينامكيا حتى لا تقع مشاكل عند تغير المسار لقد وجدت هذا الكود ولكنني لم استطع الاتصال[/b]
كود :
procedure TForm1.FormCreate(Sender: TObject); var passwd:string; begin  passwd:='123456';  adoconnection1.ConnectionString:=     'Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;'+     'Data Source='+extractfilepath(application.ExeName)+'\Test.mdb'+     ';Mode=Share Deny None;Jet OLEDB:System database="";Jet OLEDB:Registry Path="";'+     'Jet OLEDB:Database Password='+passwd+     ';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='+passwd+     ';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;';  adoconnection1.Connected:=true;  AdoTable1.TableName:='Table1';  Adotable1.Active:=true; end;

مع الشرح الوافي جزاكم الله خيرا.
الرد
#2
[quote pid='37255' dateline='1455852009']
السلام عليكم ورحمة الله وبركاته,
احبابي الكرام
اسال عن كيفية انشاء قاعدة بيانات  اكسس   محمية [b]بكلمة سر متصلة بدلفي دينامكيا حتى لا تقع مشاكل عند تغير المسار لقد وجدت هذا الكود ولكنني لم استطع الاتصال

[/b]
لك الحل بشرط وضع قاعدة البيانات جنب الملف التنفيذي للمشروع سوى كان في جهازك او اي جهاز اخر

إذا كنت تستخدم وحدة (MataModule) فعليك اضافة هذه المكتبه الى الوحده 
uses
 Vcl.Dialogs,
//من اجل ظهور رسالة فشل الاتصال 

// ملاحظة الاتصال هنا عن طريق friedac
ثم لك الخيار في اختيار اين تكتب اجراء الاتصال والمستحسن في حدث الانشاء كما هو موضح

procedure TDM.DataModuleCreate(Sender: TObject);
var
i:Byte;// من اجل الحلقة التكرارية
begin
 try
 with con1 do
  begin   Close;// هنا غلق الاتصال في حالة كان متصل
   with Params do
    begin
     Clear;
     Add('DriverID=MSAcc');// دريفر ادي
     Add('Database='+ExtractFilePath(ParamStr(0))+'\test.accdb');
     // ExtractFilePath(ParamStr(0)) من اجل جلب مسار الملف التنفيذي دون اسم الملف التنفيذي
  // '\test.accdb' هذه اسم قاعدة البيانات وامتدادها لا يهم سوى كانت بتنسيق 2003 او 2007 

     Add('Password=4444444');// اكتب كلمة السر للقاعدة ان وجدت او احذفه كاملا 
    end;
   Open;
  end;
  except  // حتى لا يتوقف البرنامج في حالة الفشل في الاتصال
   showmessage('لا يمكن الاتصال بقاعدة البينات ...؟؟؟');
   Exit;  //الخروج وعدم اكمال اوامر باقي الاجراء
 end;
 // هنا المشكله
  for I := 0 to ComponentCount - 1 do // من اجل استخدتم عدد المكونات على الفورم
   if (Components[i] is TFDTable) then // التحقق من نوع المكون اذا كان من نوع جدول ينفذ
   ( Components[i] as TFDTable).Open;// هنا يجلب اسم الجدول ثم يقوم بفتحه

 end;

// اتمنى اني اكون افدتك ويكون شرحي وافي 
ولله الحمد من قبل ومن بعد
السلام عليكم ورحمة الله وبركاته

[/quote]


.png   الاتصال.png (الحجم : 47.31 ك ب / التحميلات : 12)
[-] كل من 1 user says قال شكرا ل السوفي على المشاركة المفيدة
  • wadoud
الرد
#3
احسن الله عليك اخي السوفي
انا استعمل مكونات ADO هذا ما احسنه الى الان
رجائي النظر في الكود الذي كتبته و ان امكن مثال صغير من اجل تطبيقه على الوجه الاحسن.
شكرا جزيلا
الرد
#4
في المرفقات مثال عن اتصال بقاعدة بيانات اسس برمجيا ولن يظر خطا عند التنفيد كما في الصورة
[صورة: ?f2ee924e6d2efb0ae3944b7e99acc8cbo.jpg]
المساعدة يا اساتذة من فضلكم


الملفات المرفقة
.rar   Test.rar (الحجم : 73.85 ك ب / التحميلات : 27)
الرد
#5
Lightbulb 
جرب هذا أخي.


الملفات المرفقة
.zip   Test.zip (الحجم : 89.45 ك ب / التحميلات : 36)
[-] كل من 1 user says قال شكرا ل PLANSHARP على المشاركة المفيدة
  • wadoud
الرد
#6
أشكرك كثيرا أخي

PLANSHARP أحسن الله اليك.

هذا ما كنت اريد . هناك سؤال وحيد استاذ اذا خرجنا من البرنامج هل نغلق الاتصال بقاعدة البيانات ام نترك الكود اعلاه على حاله؟.
اشكرك مرة اخرى.
الرد
#7
عند إغلاق البرنامج سيتم قطع الإتصال بقاعدة البيانات تلقائيا.
[-] كل من 1 user says قال شكرا ل PLANSHARP على المشاركة المفيدة
  • wadoud
الرد
#8
جزاك الله خيرا.
الرد


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


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