SQL أنواع بيانات ++C و ODBC) SQL)

ملاحظة

هذا الموضوع يُطبق على فئات MFC ODBC. إذا كنت تعمل مع فئات MFC DAO راجع الموضوع "مقارنة من SQL مشغّل قاعدة بيانات Microsoft Jet و ANSI SQL" في تعليمات DAO.

يعين الجدول التالي أنواع بيانات SQL إلى أنواع البيانات C++. هذا يقوي المعلومات لغة C المعطاة بالملحق D ODBC SDK المرجع الخاص للمبرمجين على القرص مكتبة MSDN المضغوط. تدير المعالجات معظم تعيين نوع البيانات لك. إذا لم تكن تريد استخدام معالج يمكنك استخدام معلومات تعيين لمساعدتك بكتابة التعليمات تبادل الحقل البرمجية يدوياً.

تعيين أنواع بيانات C++ لأنواع بيانات ANSI SQL

نوع البيانات ANSI SQL

نوع بيانات C++‎

Char

CString

عشري

CString 1

عدد صحيح صغير

int

REAL

حر

Integer (عدد صحيح)

طويل

FLOAT

مزدوج

Double

مزدوج

عددي

CString 1

varchar

CString

longvarchar

CLongBinary, CString 2

بت

BOOL

tinyint

بايت

bigint

CString 1

ثنائي

CByteArray

varbinary

CByteArray

longvarbinary

CLongBinary, CByteArray 3

التاريخ

CTime, CString

وقت

CTime ،CString

TimeStamp

CTime ،CString

1. ANSI العشري و NUMERIC ‏‫تتعين إلى CString لأن SQL_C_CHAR هو نوع نقل ODBC الافتراضي.

2. بيانات الأحرف التي تتجاوز 255 حرفاً يتم اقتطاعها بشكل افتراضي عند تعيينه إلى CString. يمكنك توسيع طول الاقتطاع بواسطة تعيين nMaxLength وسيطة RFX_Textبشكل صريح .

3. البيانات الثنائية التي تتجاوز 255 حرفاً يتم اقتطاعها بشكل افتراضي عند تعيينه إلى CByteArray. يمكنك توسيع طول الاقتطاع بواسطة تعيين nMaxLength وسيطة RFX_Binaryبشكل صريح .

إذا لم تكن تستخدم مكتبة مؤشر ODBC، فقد تواجه مشكلة عند محاولة تحديث اثنين أو أكثر من حقول طول-متغير طويلة باستخدام برنامج تشغيل Microsoft SQL Server ODBC وفئات قاعدة بيانات MFC ODBC. أنواع ODBC و SQL_LONGVARCHARو SQL_LONGVARBINARY،تتعين إلى نص وصورة أنواع SQL Server. يتم طرحCDBExceptionإذا قمت بتحديث اثنين أو أكثر من حقول طول-متغير طويلة على نفس الإستدعاء لـ CRecordset::Update. لذلك، لا يتم تحديث أعمدة طويلة متعددة في نفس الوقت مع CRecordset::Update. يمكنك تحديث أعمدة طويلة متعددة في نفس الوقت مع ODBC API SQLPutData. يمكنك أيضاً استخدام مكتبة رأس المؤشر ODBC ولكن لا ينصح بهذا لبرامج التشغيل، مثل برنامج التشغيل SQL Server التي تدعم رؤوس مؤشرات و لا تحتاج مكتبة رؤوس المؤشرات.

في حالة استخدام مكتبة رأس المؤشر ODBC مع الفئات قاعدة بيانات ODBC MFC وبرنامج Microsoft SQL Server ODBC فقد يحدث ASSERT مع CDBExceptionإذا إستدعاء لـ CRecordset::Update يتبع إستدعاء لـ CRecordset::Requery. بدلاً من ذلك، استدع CRecordset::Close و CRecordset::Open بدلاً من CRecordset::Requery. حل آخر ألا يتم استخدام مكتبة رأس المؤشر ODBC نظرًا لأن SQL Server و برنامج تشغيل SQL Server ODBC لا توفر دعم أصلي لرؤوس مؤشرات أصلية و مكتبة رأس المؤشر ODBC غير مطلوبة.

راجع أيضًا:

المبادئ

SQL

SQL إجراء استدعاءات SQL مباشرة (ODBC)