12-02-2011, 03:14 PM
السلام عليكم و رحمة الله
منذ مدة و أنا أحاول الإتصال بقاعدة بيانات Microsoft Sql Server Compact ( ذات الإمتداد *.sdf) بإستعمال الـ ADO لكني لم أنجح
فلا نجد المزود Microsoft.SQLSERVER.CE.OLEDB.3.5 بقائمة المزودات الموجودة
و بينما كنت أتجول البارحة في منتدى delphipraxis (يبدو الوحيد الذي طرح الحل أما الباقي أغلبهم يقول مستحيل) وجدت طرحا يتناول مشكلتي و الحل بسيط
لكني لم أفكر فيه
ألا و هو أستخدام الـ ConnectionString مباشرة دون إختيار المزود من القائمة ( الذي لا يظهر أصلا )
ملاحظات :
* لا تقم بالإتصال في وقت التصميم وإلا واجهت المشكلة (الصورة) أثناء التنفيذ
![[صورة: qog9ib.jpg]](http://i53.tinypic.com/qog9ib.jpg)
* لا يمكن الإتصال بالجداول مباشرة بإستخدام
ADOTable / ADODataSet=cmdTable|cmdTableDirect
تواجهك رسالة محتواها مثل الصورة ( سواء في وقت التصميم أو التنفيذ )
أي إستخدام الـ Sql
![[صورة: 2wdwlft.jpg]](http://i56.tinypic.com/2wdwlft.jpg)
* لا يمكن الإضافة/التعديل/الحذف المباشر في البيانات
أي إستخدام الـ Sql
* الـ Refresh تعطي رسالة خطأ
الحل (لا أظن أنه الوحيد) إستعمل Requery مع حفظ التأشير
لتوزيع التطبيق مع القاعدة يجب تنصيب SSCERuntime
للتحميل 3.5 sp2
مثال بسيط مرفق ( الإتصال + الإضافة + الحذف + التعديل )
والسلام عليكم
منذ مدة و أنا أحاول الإتصال بقاعدة بيانات Microsoft Sql Server Compact ( ذات الإمتداد *.sdf) بإستعمال الـ ADO لكني لم أنجح

فلا نجد المزود Microsoft.SQLSERVER.CE.OLEDB.3.5 بقائمة المزودات الموجودة
و بينما كنت أتجول البارحة في منتدى delphipraxis (يبدو الوحيد الذي طرح الحل أما الباقي أغلبهم يقول مستحيل) وجدت طرحا يتناول مشكلتي و الحل بسيط
لكني لم أفكر فيهألا و هو أستخدام الـ ConnectionString مباشرة دون إختيار المزود من القائمة ( الذي لا يظهر أصلا )
=ConnectionString
Provider=Microsoft.SQLSERVER.CE.OLEDB.3.5;Persist Security Info=False;Data Source=C:\Program Files\Microsoft SQL Server Compact Edition\v3.5\Samples\Northwind.sdf
Provider=Microsoft.SQLSERVER.CE.OLEDB.3.5;Persist Security Info=False;Data Source=C:\Program Files\Microsoft SQL Server Compact Edition\v3.5\Samples\Northwind.sdf
ملاحظات :
* لا تقم بالإتصال في وقت التصميم وإلا واجهت المشكلة (الصورة) أثناء التنفيذ
![[صورة: qog9ib.jpg]](http://i53.tinypic.com/qog9ib.jpg)
* لا يمكن الإتصال بالجداول مباشرة بإستخدام
ADOTable / ADODataSet=cmdTable|cmdTableDirect
تواجهك رسالة محتواها مثل الصورة ( سواء في وقت التصميم أو التنفيذ )
أي إستخدام الـ Sql
![[صورة: 2wdwlft.jpg]](http://i56.tinypic.com/2wdwlft.jpg)
* لا يمكن الإضافة/التعديل/الحذف المباشر في البيانات
أي إستخدام الـ Sql
* الـ Refresh تعطي رسالة خطأ
الحل (لا أظن أنه الوحيد) إستعمل Requery مع حفظ التأشير
لتوزيع التطبيق مع القاعدة يجب تنصيب SSCERuntime
للتحميل 3.5 sp2
كود :
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=e497988a-c93a-404c-b161-3a0b323dce24&displaylang=enوالسلام عليكم