View Full Version : سوال: مشکل با FireDAC
Jarvis
دوشنبه 12 فروردین 1392, 11:03 صبح
سلام و درود
من فایرداک رو نصب کردم
اومدم توی قسمت مربوطه و خواستم دیتابیس ( دیتابیس FB ) رو بهش بدم این ارور رو میده...
توی اون گزینه ها Firebird رو نداشت ... با IB میشه دیتابیس FB رو ثبت کرد ؟
این ارور چیه ؟
http://img.majidonline.com/pic/289284/error.png
BORHAN TEC
دوشنبه 12 فروردین 1392, 11:19 صبح
سلام
در FireDac به طور پیش فرض تنظیماتی برای کار با Firebird وجود ندارد. نه اینکه در نظر گرفته نشده باشد، اتفاقاً FireBird به طور ویژه ای در FireDac مورد توجه قرار گرفته است. این مورد هم دلایل مختلفی دارد ولی مهمترین آن این است که شاید بخواهید تنظیمات مختلفی را در مورد نسخه های مختلف FireBird داشته باشید. به هر حال اضافه کردن این گزینه به FireDac راحتتر از آن چیزی است که می توان تصور کرد. من روش کار را در زیر توضیح داده ام(البته روش کار در مستندات FireDac هم توضیح داده شده است.)
- در قدم اول فایل ADDrivers.ini را باز کنید. این فایل در سیستم من در مسیر زیر وجود دارد:
C:\Program Files (x86)\da-soft\AnyDAC for Delphi\DB\ADDrivers.ini
فایل مربوطه را با notepad باز کنید.
نکته: اکثر تنظیمات FireBird مانند Interbase است و تنها تفاوت مهم این است که درایور آنها متفاوت است. به عبارتی ما می توانیم نتظیمات مربوطه را از Interbase مشتق کنیم و فقط نام فایل درایور را تغییر دهیم. به عبارتی می توانیم این خطوط را به فایل ADDrivers اضافه کنیم. من در اینجا از نسخه 2.5 محصوص FireBird استفاده کرده ام.
[Firebird25]
BaseDriverID=IB
VendorLib=C:\Program Files (x86)\Firebird\Firebird_2_5\bin\fbClient.dll
دقت داشته باشید که در مشخصه VendorLib شما باید آدرس فایل درایور FireBird را به درستی وارد کنید. نام این فایل در نسخه Embedded عبارت fbEmbed.dll و در نسخه های سروری fbClient.dll میباشد.
عبارت BaseDriverID=IB به این معنی است که ما تمام تنظیمات را از Interbase به ارث برده ایم.
حال فایل مذکور را ذخیره کنید.
- اگر RAD Studio باز است آن را ببندید و دوباره باز کنید.
- حال مشاهده می کنید که می توانید از FireBird استفاده کنید و از این به بعد می توانید از تمام قابلیت های FireBird در FireDac استفاده کنید.
hp1361
سه شنبه 22 مرداد 1392, 14:11 عصر
سلام
تو کتاب The Firebird Book (Second Edition): A Reference for Database Developers اشاره کرده که برای استفاده از نسخه Embedded باید فایل fbEmbed.dll رو در کنار فایل اجرایی برنامه قرار داد.
For each embedded server application, the home directory of your application executable
becomes the root directory for that embedded server application. To set up an embedded
Firebird server installation with your application, do as follows:
Copy fbembed.dllto the home directory and rename it to either fbclient.dllor
gds32.dll, according to the client file name your database connectivity software
expects.
و در بالا شما گفتید که برای اتصال به Firebird با استفاده از FireDac بایست آدرس فایل fbEmbed.dll رو در ADDrivers.ini وارد کنیم.
سوال: برای هر برنامه ای که مینویسیم باید مدام این آدرس رو تغییر بدیم؟(دردسره که!)
BORHAN TEC
سه شنبه 22 مرداد 1392, 14:25 عصر
سلام :قلب:
تو کتاب The Firebird Book (Second Edition): A Reference for Database Developers اشاره کرده که برای استفاده از نسخه Embedded باید فایل fbEmbed.dll رو در کنار فایل اجرایی برنامه قرار داد.
نیازی نیست که حتماً در کنار فایل اجرایی برنامه باشه. کافیه در یک جایی باشه که برنامه ما اون رو ببینه. مثلاً در پوشه System32 و ... .
و در بالا شما گفتید که برای اتصال به Firebird با استفاده از FireDac بایست آدرس فایل fbEmbed.dll رو در ADDrivers.ini وارد کنیم.
درسته. یه کار دیگه هم میشه کرد. میشه برنامه رو با همون نسخه سروری تست کنیم و موقع توزیع فایلهای نسخه embeded رو در کنار برنامه کپی کنیم و نام فایل FbEmbed.dll رو به FbClient.dll تغییر نام بدیم. با این کار دیگه نیازی نیست که تنظیمات دیگه ای رو در فایل ADDrivers.ini اعمال کنیم. :چشمک:
سوال: برای هر برنامه ای که مینویسیم باید مدام این آدرس رو تغییر بدیم؟(دردسره که!)
نیازی نیست. اون تنظیماتی که در بالا گفتم برای اینه که درایور مربوط به Firebird رو به FireDAC بشناسونیم،فقط همین! و این موضوع ربطی به برنامه تولید شده ی نهایی نداره. در موقع توزیع برنامه تنها کاری که نیازه اینه که فایلهای مورد نیاز برنامه رو در کنارش و یا یک مسیری که برنامه اونها رو ببینه کپی کنیم ولی به نظر من بهترین مسیر اینه که فایلها رو در کنار برنامه کپی کنیم. :لبخند:
موفق باشید...
hp1361
دوشنبه 18 شهریور 1392, 12:39 عصر
با سلام
من برای استفاده از فایربرد نسخه Embeded مراحل زیر رو طی کردم
1-فایل (Firebird-2.5.2.26540-0_x86_embed) رو از سایت فایربرد دانلود کرده و اکسترکت نمودم.
1- فایل fbembed.dll رو به fbclient.dll تغییر نام دادم.
2-فایل fbclient.dll رو به همراه dll های موجود در پوشه رو در پوشه برنامه ام قراردادم.
3-دیتابیس تعریف شده با IDE مورد نظر خود را(من از IBExpert استفاده کردم) در پوشه برنامه قراردادم.
4-تنظیمات زیر رو انجام دادم
ADPhysIBDriverLink1.VendorLib:=ExtractFilePath(Par amStr(0)) + 'fbclient.dll';
with ADConn_FB do
begin
if (not Connected) then
begin
Close;
LoginPrompt := False;
Close;
Params.Add('DriverID=IB');
Params.Add('CharacterSet=UTF8');
Params.Add('User_Name=sysdba');
Params.Add('Password=masterkey');
Params.Add('DATABASE=' + ExtractFilePath(ParamStr(0)) + 'MyDB.FDB');
Connected := True;
end;
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.