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 غير مطلوبة.