سؤال

ونحن نستخدم قاعدة بيانات ينفورميكس، وتتصل به من. NET بنجاح باستخدام ODBC. سلسلة الاتصال التي نستخدمها هي؛

DRIVER={IBM INFORMIX ODBC RIVER};
UID=username; PWD=password;
DATABASE=our_database;
HOST=devsrv01;
SERVER=devsrv01_tcp;
SERVICE=ids9tcp2;
PROTOCOL=onsoctcp;
CLIENT_LOCALE=en_US.CP1252;
DB_LOCALE=en_US.819;

ونحن نريد تغيير من ODBC واستخدام SDK IBM والمكتبات ك <لأ href = "http://www.ibm.com/developerworks/data/library/techarticle/dm-0510durity/index.html" يختلط = " نوفولو noreferrer "> المبينة على موقعهم .

والرمز نحن تستخدمه؛

string ConnectionString = "Database=our_database; Server=172.22.0.0:1528; UID=username; Password=password; ";

try
{                               
    IfxConnection conn = new IfxConnection(ConnectionString);
    conn.Open();
}
catch (IfxException ex)
{}

ووconn.Open () يطرح الاستثناء؛

وERROR [08001] [IBM] SQL30081N تم اكتشاف خطأ في الاتصال. بروتوكول الاتصال المستخدمة: "TCP / IP". API الاتصالات المستخدمة: "مآخذ". الموقع حيث تم الكشف عن الخطأ: "172.22.0.0". وظيفة الاتصال اكتشاف الخطأ: "ريكف". كود بروتوكول معين الخطأ (ق): "<م>" ""، "0". SQLSTATE = 08001

و"آه ها!" قول انت. وضعت للتو في "PROTOCOL=onsoctcp;" لكن هذا يجعل الأمر IfxConnection(ConnectionString); بطرح ArgumentException. إذا احتوت سلسلة اتصال أي <field>=<value> غير صالحة تحديد ذلك يلقي هذا الاستثناء. لو أنني وضعت في القمامة = غير المرغوب فيه. في ذلك يلقي نفس ArgumentException مما يجعلني أعتقد أنه لا يعترف البروتوكول (أو PRO) المجال.

و(لمعلوماتك) 172.22.0.0 هو IP لdevsrv01 ولا تنتهي 0.0.

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

المحلول

ولقد وجدت eventaully إلى أن الجواب هو شمول؛

Persist Security Info=True;Authentication=Server;

لا تسألني لماذا. أنا فقط يجعل من العمل.

و+1 للجميع - شكرا لمساعدتكم

نصائح أخرى

هل تحقق http://www.connectionstrings.com/ ؟ وربما تقدم بعض البصيرة.

وعلى افتراض انك تريد استخدام .NET، وينفورميكس CSDK (وليس DRDA واحد) وADO.NET أسهل طريقة للحصول على علاقة هو استخدام إضافة قاعدة البيانات إلى قائمة البصرية ستوديو للاتصالات البيانات (عرض -> مستكشف الملقم ، ثم انقر فوق الزر "الاتصال إلى قاعدة بيانات"، ثم مجرد ملء النموذج (وهذا يفترض تثبيت ملحقات البصرية ستوديو مع CSDK ...)).

ثم انتقل إلى خصائص المشروع، انتقل إلى علامة التبويب الإعداد، إضافة إعداد جديد مع نوع '(سلسلة اتصال) "و لقيمة وضع:

 Database=mydatabase;Password=mypassword;Server=myserver;User ID=myuser"

وحتى في app.config سيبدو شيئا من هذا القبيل:

 <add name="MyApplication.Properties.Settings.MyConnectionString"
  connectionString="Database=mydatabase;Password=mypassword;Server=myserver;User ID=myuser"
  providerName="IBM.Data.Informix" />

وتأكد أيضا تم تكوين قاعدة بيانات والخادم في ملف المضيفين (C: \ نوافذ \ system32 \ السائقين \ الخ \ المضيفين) و / أو مع أداة اتصال قاعدة البيانات ينفورميكس "inetd32.exe" الموجود في قائمة ابدأ في مكان ما ...

وأيضا إذا كنت لذا لا يميل يمكنك سحب الجداول وهذا من قاعدة البيانات في إطار مستكشف الملقم على ملف XSD فتح في Visual Studio أن يكون ذلك أوتومتيكللي إضافة سلسلة الاتصال لتكوين وإعداد كل شيء لأعطيك مكتوب مجموعة البيانات، وسوف تعالج طبقة CRUD لك ... (على الرغم من أنك قد تحصل على مجموعة من الأخطاء لVS لا يمكن سحب مخطط ينفورميكس باستخدام أحدث برامج التشغيل لسبب ...)

وعلى أي حال، يمكنك بعد ذلك استخدام سلسلة الاتصال مثل:

IfxConnection myconnection = new IfxConnection(MyApplication.Properties.Settings.Default.MyConnectionString);

IBM ينفورميكس. NET يستخدم دليل بموفر دليل 4.10 البروتوكول أو PRO بدلا من بروتوكول. هي الكلمات الرئيسية لحالة الأحرف؟ يوحي التدوين قد يكون، ولكن أنا لا أعرف ما يكفي عن صافي للتأكد. والخطأ الذي تحصل عليه عندما كنت تستخدم بروتوكول يوحي أنه قد يكون لحالة الأحرف.

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