أفضل طريقة للاتصال بـ Interbase 7.1 باستخدام .NET C#

StackOverflow https://stackoverflow.com/questions/219684

  •  03-07-2019
  •  | 
  •  

سؤال

هل يمكن لأحد أن يشرح لك أفضل طريقة للاتصال بقاعدة بيانات Interbase 7.1 باستخدام .NET/C#؟

سيتم تثبيت التطبيق على العديد من أجهزة كمبيوتر المستخدم النهائي، لذا كلما قل عدد "الوظائف الإضافية" التي سأضطر إلى حزمها مع تطبيقي، كان ذلك أفضل.

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

المحلول

وCodeGear يقدم مجانا سائق ADO.NET 2.0 للمستخدمين المسجلين من ينترباسي هنا:

http://cc.embarcadero.com/item/25497

لاحظ أن "المستخدمين المسجلين في ينترباسي" يتضمن حرة ينترباسي 2007 للمطورين Edition. يقول التنزيل أنه في عام 2007، لكنه يعمل بشكل جيد مع ينترباسي 7، وفريق ينترباسي في CodeGear وقد قال لي أنه ليس لديهم مشكلة مع الناس يستخدمونها لهذا الغرض.

وأنا لا أنصح باستخدام برنامج مصمم لفايربيرد، كما ينترباسي وفايربيرد ديك جمل SQL مختلفة نوعا ما، وتختلف في غيرها من الميزات، كذلك. على وجه الخصوص، وأعتقد أن استخدام أي سائق تعتمد على fbclient.dll مع ينترباسي أمر خطير صراحة.

نصائح أخرى

وأعتقد مزود فايربيرد صافي هو نفس واحدة وهذا في مونو. كلاهما ممتاز راجع للشغل.

يعمل الكود الموجود في ملف المساعدة في العديد من المواقف ولكن ليس كلها، خاصة على أجهزة Windows 8.1 وWindows Server 2012.

تأكد من حصولك على أحدث إصدار من InterBase_ADO.NET من embarcadero.الإصدار الذي قمت بالتحديث إليه هو الإصدار 16.0.4327.44959 من Borland.Data.AdoDbxClient.dll.(انقر بزر الماوس الأيمن على الملف، الخصائص، التفاصيل لرؤية رقم الإصدار).يقوم التثبيت أيضًا بإنشاء مجلد إصدار x64 لـ 64 بت على الرغم من أنني لم أستخدمه.لقد استهدفت x86 دون أي مشاكل.

ليس من الضروري إجراء تثبيت ADO.NET على كل جهاز - ما عليك سوى تضمين الملفات أدناه في مشروعك وتثبيت Interbase على الجهاز الذي تعمل عليه.لقد قمت فقط بتثبيت برنامج التشغيل على جهاز الكمبيوتر الخاص بالتطوير.

سيؤدي التثبيت إلى استخراج جميع الملفات الضرورية التي تحتاجها لوضعها في التطبيق الخاص بك للاتصال بقاعدة البيانات.كما سيتم أيضًا إنشاء الملف التمهيدي ADO_NET 2_0 Driver لملف InterBase XE Installation and Use Instructions.htm. ملاحظة مهمة: أمثلة اتصال قاعدة البيانات الموجودة في ملف htm للمساعدة هذا لا تعمل بنسبة 100% من الوقت.انظر مثال الكود الخاص بي أدناه للحصول على الحل.

لا يوجد اتصال ODBC ضروري.قائمة الملفات التي سيتم تضمينها في مشروع .NET الخاص بك والتي سيتم نسخها محليًا هي:

  • Borland.Data.AdoDbxClient.dll
  • Borland.Data.DbxCommonDriver.dll
  • Borland.Data.DBXInterBaseDriver.dll
  • Borland.Delphi.dll
  • Borland.VclDbRtl.dll
  • Borland.VclRtl.dll
  • dbxadapter.dll (إصدار x86 أو x64)
  • dbxint.dll (إصدار x86 أو x64)
  • gds32.dll (من تثبيت قاعدة بيانات interbase)
  • interbase.msg (من تثبيت قاعدة بيانات interbase)

لقد وجدت سلسلتي اتصال ناجحتين.للاتصال استخدم إحدى سلسلتي الاتصال:

connectionstring1 = "DriverName=Interbase;Database=" + database + ";User_Name=" + userid + ";Password=" + password;
connectionstring1 = connectionstring1 + ";SQLDialect=3;MetaDataAssemblyLoader=Borland.Data.TDBXInterbaseMetaDataCommandFactory,Borland.Data.DbxReadOnlyMetaData,Version=11.0.5000.0,Culture=neutral,";
connectionstring1 = connectionstring1 + "PublicKeyToken=91d62ebb5b0d1b1b;GetDriverFunc=getSQLDriverINTERBASE;LibraryName=dbxint30.dll;VendorLib=GDS32.DLL";

connectionstring2 = “User_Name="+userid+";Password="+password+";Database="+database+";ServerType=0;Charset=NONE;LibraryName=.\\dbxint.dll;VendorLib=GDS32.DLL;GetDriverFunc=getSQLDriverINTERBASE;SQLDialect=3";


GlobalObjects.dbconn = (TAdoDbxConnection)TAdoDbxInterBaseProviderFactory.Instance.CreateConnection();

GlobalObjects.database = databasepath;
GlobalObjects.dbconn.ConnectionString = connectionstring1;  //or connectionstring2
GlobalObjects.dbconn.Open();
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top