سؤال

لقد قمت بتنزيل سائق Firebird DBX من http://sites.google.com/site/dbxfirebird/ لقد تمكنت من تجميع مشروع "اتصال الاختبار" وجعله يعمل. أشرت إليه إلى اختبار DB مثل ذلك:

procedure TMainForm.Button1Click(Sender: TObject);
var C: TSQLConnection;
begin
  C := TSQLConnection.Create(Self);
  try
    C.DriverName := 'FirebirdConnection';
    C.Params.Add('User_Name=SYSDBA');
    C.Params.Add('Password=masterkey');
    C.Params.Add('Database=C:\fbtest\test.fdb');
    C.Open;
    if C.Connected then
      ShowMessage('Connection is active')
  finally
    C.Free;
  end;
end;

عندما أقوم بتشغيله ، يعمل بشكل جيد. ولكن عندما أضع نفس الرمز بالضبط في مشروع مختلف ، فإنه لا يعمل. لقد قمت بنسخ fbclient.dll (Firebird Driver DLL DLL ، الذي تم إعادة تسميته إلى FBCLIENT) ، وجميع تبعياته ، وملف dbxdrivers.ini إلى نفس المجلد الذي يعمل فيه EXE للمشروع. لا يمكنني رؤية أي سبب هذا لا ينبغي أن ينجح ، لكن الدعوة إلى .epen تفشل مع:

Project Project1.exe رفعت فئة الاستثناء TDBXError مع رسالة "برنامج تشغيل غير معروف: FirebirdConnection".

مرة أخرى ، هذا على المكالمة لفتح. المهمة إلى الاسم الحاجز تعمل على ما يرام. هل رأى أحدكم هذه المشكلة من قبل؟ لماذا يعمل الرمز نفسه بالضبط في مشروع الاختبار ولكن ليس مختلفًا ، وهل هناك أي طريقة يمكنني إصلاحها؟

هل كانت مفيدة؟

المحلول

لقد وجدت المشكلة. يجب تسجيل فئة تحميل لإعداد برنامج تشغيل قاعدة البيانات في التهيئة قسم من dbxDynalink.pas. تضمن مشروع الاختبار DBXDynalink الاستخدامات بند ، حيث لم يفعل. أضع ذلك في والآن يعمل.

نصائح أخرى

يحدث هذا الخطأ بشكل عام عندما لا تضيف وحدة برنامج تشغيل DBX المعنية إلى قائمة استخداماتك. حاول إضافة dbxfirebird إلى قائمة استخداماتك.

فقط قم بتغيير C.DriverName: = 'FirebirdConnection' ؛ إلى C.DriverName: = 'Firebird' ؛

وسوف تعمل!

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top