استخدام حقل من نوع Boolean في قاعدة بيانات Firebird
#1
السلام عليكم ورحمة الله وبركاته
طبعا الكل يعلم ان الفير بيرد لا يملك نوع Boolean
لكن اعطو الحل. وجدته بينما كنت في هته المشكلة والحمد لله في موقعهم ولامثالي هذا هو الحل واسف لانه غير مترجم لاني لست اهل للترجمة المهم اني جربته ونجح


كود :
No BOOLEAN field in Firebird? Boolean field is available since Firebird 3.0. For versions prior to 3.0, but you have several alternatives: 1. use char(1) 2. use smallint 3. use domains Domains are probably the best solution. You can create domain like this: CREATE DOMAIN BOOLEAN AS SMALLINT CHECK (value is null or value in (0, 1)); Later in table definition you can refer to it as a regular datatype. CREATE TABLE t1 ( C1 VARCHAR(10), B1 BOOLEAN, B2 BOOLEAN NOT NULL, ... ); If you use a connectivity library like OleDB under .Net, you can override the OleDB provider's GetSchema method, so the DataTables you get from queries have native .Net booleans.
لأستهلنّ الصعب أو أدرك المنى    فما انقادت الآمال إلاّ لصابر
الرد
#2
وعليكم السلام ورحمة الله وبركاته
أهلا أهلا أخي mobile Smile
سبق ذلك هنا:
http://www.delphi4arab.net/forum/showthr...p?tid=4245
ولا بأس أن نثري الموضوع Smile أتمانع؟
في معظم برامج (محركات) قواعد البيانات يمكن إنشاء نوع بيانات خاص من البيانات ثم إعطائه إسما
عادة لأجل Boolean يستخدم (أو ما يماثله)
PHP كود :
TinyInt(1) 
لا أذكر إن كان هذا يسمى Synonym أو غير ذلك:
كود :
http://en.wikipedia.org/wiki/Synonym_(database)
أليس كذلك؟
الرد
#3
السلام عليكم
بلا مشرفنا الغالي .اكيد نستفيد من اضافاتك
بارك الله فيك
لأستهلنّ الصعب أو أدرك المنى    فما انقادت الآمال إلاّ لصابر
الرد
#4
السلام عليكم و رحمة الله

~ ترجمة Smile
---
لا وجود للحقل المنطقي BOOLEAN في الـ Firebird ؟

الحقل المنطقي متاح إبتداءا منذ Firebird 3.0 (لم يصدر بعد ) .

للإصدارات السابقة للـ 3.0 ، لديك عدة بدائل :

1. استخدام char(1)
2. استخدام smallint
3. استخدام domains

Domains هي على الأرجح أفضل الحلول ، يمكن إنشائها كالآتي :

كود :
CREATE DOMAIN BOOLEAN AS SMALLINT CHECK (value is null or value in (0, 1));
لاحقا ، أثناء إنشاء الجداول يمكن إختيارها كنوع البيانات العادية (BOOLEAN) .
كود :
CREATE TABLE t1 ( C1 VARCHAR(10), B1 BOOLEAN, B2 BOOLEAN NOT NULL, ... );
و السلام عليكم
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم