رسالة الخطأ "قيم غير صحيحة داخل هيكل SQLDA" مع Firebird و Delphi 2009

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

سؤال

أنا شجاق مع رسالة الخطأ "قيم غير صحيحة داخل بنية SQLDA" عندما أحاول تحديث حقل BLOB داخل قاعدة بيانات Firebird 2.1 من تطبيق Delphi 2009 DBX.

ومع ذلك، أحصل على رسالة الخطأ عند محاولة تنفيذ TSQLQUERY باستخدام SQL التالية: "تحديث Mytable Set Field1 =: البيانات حيث معرف =: ID"

رمز دلفي ذات الصلة هو:

MyQuery.ParamByName('id').AsInteger := id;
MyQuery.ParamByName('data').LoadFromFile(filename, ftBlob);
MyQuery.ExecSQL();

أين يجب أن أبحث؟ هذا يعمل في إصدارات دلفي السابقة.

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

المحلول

تحقق مرة أخرى سائق الخاص بك - إنه ل firebird. أو كنت مجرد استخدام Interbase. سائق لهذا؟ من المعروف أن فريق Firebird غير بنية SQLDA النقط في 2.1، وبالتالي، لا يمكن استخدام برنامج تشغيل Interbase.

لديك بعض الخيارات هنا:

  1. (الموصى بها، IMHO) ترقية إلى دلفي 2010 - بالإضافة إلى برنامج تشغيل DBX Firebird، ستحصل على المزيد من الأشياء التي تلعبها مع (انظر هنا للمزيد من)
  2. شراء سائق الطرف الثالث ل Firebird الذي يعمل في دلفي 2009
  3. "downgrade" firebird الخاص بك (استخدمها كمنتجع آخر، بالطبع)
  4. تغيير مكتبة الاتصال الخاصة بك. نعم، قد يعني إعادة كتابة التعليمات البرمجية.

نصائح أخرى

ربما تحتاج إلى استخدام برنامج تشغيل DBX مجاني ل Firebird

http://sites.google.com/site/dbxfirebird/

هذا هو نوع من خطأ سرداب يتم استخدام برنامج تشغيل Interbase في Delphi لإظهاره.

لقد رأيت هذه المشكلة عندما يكون لديك أرقام مختلفة من المعلمات في عبارة SQL الخاصة بك وتلك التي تم تعريفها في مكون الاستعلام الخاص بك.

أول شيء يتبادر إلى الذهن هو التأكد من أن العميل DLL (GDS32.dll أو fb32.dll أو fbclient.dll، يعتمد الاسم على إصدار Firebird الذي تستخدمه) يطابق بالضبط إصدار الخادم الذي تستخدمه.

-

FWIW، حصلت على هذا الخطأ في برنامج بيرل عن طريق تنفيذ عبارة دون ربط المتغيرات، عندما يحتاجها.

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