سؤال

أقوم بإنشاء غلاف لـ SQLite C API.وأريد إرجاع Rowid كنوع عدد صحيح.لتحديد حالة الخطأ، أحتاج إلى قيمة غير صالحة للصف.هل هناك قيمة غير صالحة من سكليتي رويد؟أو أن جميع القيم الموجودة في الأعداد الصحيحة 64 بت الموقعة صالحة لـ Rowid؟(لأنه إذا كان الأمر كذلك، فلا بد لي من اختيار طريقة أخرى لتنفيذ حالة الخطأ في وضع العلامات)

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

المحلول

معرفات الصفوف هي أعداد صحيحة موقعة 64 بت، وبالتالي فإن الحد الأقصى هو 0x7FFFFFFFFFFFFFFLL.ولكن ما لم يتم إدخال معرف صف سلبي أو صفر بشكل صريح، فإن معرفات الصفوف التي يتم إنشاؤها تلقائيًا تكون دائمًا أكبر من الصفر.إذا كان بإمكانك التأكد من أن معرفات الصفوف سيتم إنشاؤها تلقائيًا دائمًا، فستكون الصفر أو -1 قيمًا آمنة لإرجاع حالة الخطأ.

بالتفكير أكثر، أدرك أن sqlite3_last_insert_rowid يُرجع استدعاء واجهة برمجة التطبيقات (API) صفرًا إذا لم يتم إدراج أي شيء في الجدول، مما يجعل الصفر معرف صف "غير صالح" فعليًا.

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