PDA

View Full Version : ADO Problem



Farhad.B.S
جمعه 03 مرداد 1382, 13:16 عصر
سلام.
من تو چند تا از برنامه هام از کامپوننت های ADO استفاده کردم.
اما پس از اجرا تو سیستم های دیگه این error رو میده :
Provider can't be found. it must be not installed
میخواستم ببینم به چه فایل هایی نیاز هست ؟
ممنون.

جمعه 03 مرداد 1382, 14:09 عصر
باید mdac رو از سایت مایکروسافت بگیرین روی سیستم نصب کنین

میتونین ران تایم بفهمین که طرف ado داره یا نه اگر نه براش نصب کنین
اما چه جوری تشخیص بدهید که آیا کاربر ADO دارد یا نه. خیلی راحت کافی است به Database برنامه تون Connect کنید و در صورتی که این Connect کردن نتونست انجام بشه بنابراین طرف ADO نداره. به این شکل:

try
with ADOConnection do
begin
Connected := False;
ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + ExtractFilePath(Application.ExeName) + 'Data.mdb;Persist Security Info=False';
Connected := True;
end;
except
on EOleException do
ShowMessage('ADO Nadarid');
end;


در این کد ابتدا ConnectionString کمپوننت ADOConnection به درستی تنظیم شده و سپس Connected برابر True قرار گرفت است. حالا در صورتی که این کد با مشکل بر بخوره می آید در قسمت except و در صورتی که خطای EOleException روی داده باشه در اون صورت یعنی کاربر ADO ندارد (البته احتمالات دیگه ای هم وجود داره مثل عدم وجود فایل Data.mdb در آن آدرسی که گفته شده و یا خطای فیزیکی هارد دیسک یا خطای Share و امثال این. البته احتمال این خطاها خیلی خیلی کم است)


حالا اگه این mdacرو با سوییچ /؟ اجرا کنی لیست پارامترهایش رو به شما نشون می دی. یکی از پارامترهای /q یا /s است (مطمئن نیستم خودن نگاه کن) اگر از این سوییچ استفاده کنی MDAC به اصطلاح در مد Silent یا بی سر و صدا اجرا می شه و هیچ دیالوگ و سوال و جوابی رو به کاربر نشون نمی ده و کاربر هم اصلا از نصب برنامه دیگری مطلع نمی شه.

SyntaxCheck
جمعه 03 مرداد 1382, 14:12 عصر
دیتابیس پرووایدری رو که ازش استفاده میکنید رو باید روی سیستم نصب کنید مثلا اگر از اکسس استفاده میکنید باید موتور بانک اکسس رو روی سیستم مذکور نصب کنید.همچنین mdac رو هم روی سیستم مقصد نصب کنید.
برای نصب موارد فوق خوبه که از یک برنامه نصب کننده مثل اینستال شیلد استفاده کنید تا کار بدون درد سر و راحت انجام بشه.