• تعیین نوع داده برای یک کنترل
  • انواع داده
  • جدول مقایسه انواع داده

برای آنکه بتوان داده های یک فرم را در جداول دیتابیس ذخیره نمود، می بایست نوع داده های هر کنترل به درستی مشخص گردد. چنانچه فرم مورد نظر بر اساس یک جدول موجود در دیتابیس ساخته شده باشد، نوع داده های هر کنترل یا فیلد هنگام ساخت جدول تعیین خواهد شد. اما اگر فرم به صورت Create Form by Design ساخته شده باشد دیگر جدول در دیتابیس ساخته نشده است که نوع داده فیلدهای آن مشخص باشد. در چنین فرمهایی برای تعیین نوع داده هر یک از کنترلها باید بر روی هر کنترل کلیک راست کرده و گزینه Data Type را انتخاب نمود تا فهرستی از انواع داده در زی فریم را مشاهده و از بین آنها نوع داده مورد نظر برای آن فیلد یا کنترل را انتخاب کرد. این نوع داده ها برگرفته از انواع داده موجود در SQL Server هستند، که هنگام ایجاد یک کنترل بصورت پیش فرض نوع داده برای تمامی کنترل ها برابر با String در نظر گرفته شده است. در شکل زیر می توان انواع مختلف داده را مشاهده نمود.

زی فریم

T_String

داده T_String معادل با نوع داده VARCHAR در SQL Server است. در این نوع از داده که به آن داده "رشته ای" گفته می شود، می توان متون مختلف را قرار داد. یک رشته در این حالت می تواند با طولی متغیر از یک تا 8000 کاراکتر یا حرف تعریف شود. حتی اعدادی که در این فیلد قرار داده می شوند نیز از نوع عددی نبوده و به صورت رشته در نظر گرفته می شوند. در نتیجه از قواعد ریاضی پیروی نمی کنند و نمی توان اعمال ریاضی همچون چهار عمل اصلی را بر روی آنها اعمال کرد. به همین دلیل اگر درون یک فیلد با نوع داده String عددی مانند 05 قرار گیرد، عدد صفر حذف نخواهد شد و با هر دوی آنها همچون یک حرف از حروف الفبا رفتار می شود نه یک عدد. اما اگر نوع داده int بود، عدد صفر حذف شده و تنها عدد 5 ثبت می شد.

T_boolean

نام این نوع داده برگرفته از جورج بول ریاضیدان انگلیسی است. از این نوع داده می توان برای تعیین ارزش عبارات منطقی و جبر بولی استفاده کرد و به عبارتی می توان از این نوع داده در مواردی استفاده نمود که برای آن فیلد صرفاً دو مقدار مد نظر باشد (صفر یا یک، درست یا غلط، زن یا مرد و ...) به طور کلی در زبان های برنامه نویسی از این نوع داده در دستورات شرطی استفاده می شود، اما در SQL Server برای داده هایی با دو مقدار هم می توان از آن استفاده نمود.

T_BigDecimal

این نوع داده ای برای اعداد اعشاری با طول زیاد کاربرد دارد و نمی تواند بدون علامت باشد (هر اعشار معادل یک بایت است.) این نوع داده در SQL Qerver محدود به 16 رقم در دو طرف اعشار است.

T_Byte

این نوع داده یکی از انواع داده ی مناسب برای اعداد است که برای نگهداری اعداد مثبت و کوچک به کار می رود. این نوع از داده ها توانایی نگهداری اعداد مثبت و کوچک از 0 تا 255 را در خود دارند. همچنین فضایی که یک متغیر از نوع Byte در حافظه اشغال می کند برابر با 1 بایت است که می توان برای داده های عددی کوچک مانند سن افراد از آن استفاده نمود.

T_short

یکی دیگر از انواع داده برای اعداد نوع دادهshort است. فضای مورد نیاز برای این نوع داده برابر با 2 بایت است، که در این نوع داده می توان اعدادی بین منفی 32,768 تا مثبت 32,767 را ذخیره نمود.

T_int

یکی از مهمترین و پر کاربردترین نوع داده برای اعداد صحیح، داده int است که هر داده از این نوع فضایی به میزان 4 بایت را اشغال می کند. از ویژگی های این نوع از داده آن است کهint قادر به نگهداری بازه ی وسیعی از اعداد از منفی 2,147,483,648 تا مثبت 2,147,483,647 در درون خود است. در نتیجه به دلیل آنکه این نوع داده گسترده ی وسیعی از اعداد را در خود جای می دهد، به عنوان یکی از انواع بسیار پر کاربرد داده در نظر گرفته شده است.
اما باید توجه داشت که به منظور استفاده بهینه از حافظه، بهتر است در فیلدهای مختلف از نوع داده¬ی عددی مناسب همان فیلد استفاده شود.

T_Long

از این نوع داده برای نگهداری اعداد بسیار بزرگ استفاده می شود. متغیرهایی که از نوع long در نظر گرفته می شوند، توانایی نگهداری اعدادی بین منفی 9,223,372,036,854,775,808 تا مثبت 9,223,372,036,854,775,807 را در خود دارند. همچنین فضای مورد نیاز برای نگهداری یک متغیر long در حافظه برابر با 8 بایت می باشد.

به دلیل تنوع در داده های عددی می توان برحسب میزان حافظه، نوع داده اعداد را از حافظه بیشتر به حافظه کمتر مرتب نمود. به این ترتیب بیشترین حافظه در نظر گرفته شده متعلق به داده T_Long بوده و سپس انواع داده ی T_Int و T_short و T_Byte به ترتیب قرار می گیرند.

T_Float

یکی از پرکاربردترین نوع داده برای اعداد اعشاری، نوع داده ی T_Float است. در این نوع داده می توان عددی تا 24 رقم اعشار را ذخیره نمود.

T_Double

این نوع از داده همانند داده T_Float برای نگهداری از اعداد اعشاری کاربرد دارد؛ با این تفاوت که حافظه اشغال شده برای داده های T_Float چهار بایت و برای داده های double هشت بایت است. همچنین دقت اعشار برای داده های T_Double می تواند تا 54 رقم باشد. به عبارت دیگر، یک داده T_Double می تواند تا 54 رقم اعشار را در خود جای دهد.

T_ByteA

این نوع داده که تحت عنوان bytearray هم شناخته می شود، در اصل آرایه ای از یک سری بایت است، که می توان به جای آن از نوع داده آرایه نیز استفاده نمود.

T_Date

از این نوع داده برای نمایش تاریخ استفاده می شود. قالب این نوع داده به صورت YYYY-MM-DD بوده که در آن، بخش YYYY معرف سال و رقمی بین 0000 تا 9999 است. همچنین، بخش MM معرف ماه های سال بوده و رقمی بین 0 تا 12 در آن قرار می گیرد. در نهایت، بخش DD به عنوان معرف روزهای سال بوده که رقمی بین 1 تا 31 را در خود جای می دهد. برای مثال مقدار 1973-12-30 معرف آخرین روز از آخرین ماه سال 1973 است.

T_Time

از این نوع داده برای ذخیره کردن زمان به صورت ساعت، دقیقه و ثانیه استفاده می شود، که دارای قالبی به صورت HH:MM:SS است. در این قالب، مقدار HH معرف ساعت، MM معرف دقیقه و SS معرف ثانیه است. به عنوان مثال 12:54:20 به معنای ساعت 12 و 54 دقیقه و 20 ثانیه است.

T_TimeStamp

این نوع داده برای نمایش یک زمان مشخص است که به صورت ترکیبی از تاریخ و زمان و با فرمت YYYY-MM-DD HH:MM:SS نمایش داده می شود. اما نحوه ذخیره این اعداد در حافظه متفاوت است. به این صورت که آنچه در حافظه ذخیره می شود، مجموعه ای از اعداد پشت سر هم بوده که درک آن برای افراد نامفهوم خواهد بود.

T_Clob

این نوع داده مناسب برای پایگاه های داده ORACLE بوده و متناظر آن در SQL Serverهمان VARCHAR است که در بالا به معرفی آن پرداخته شد.

T_Blob

این نوع داده نیز مناسب برای پایگاه های داده ORACLE بوده و متناظر آن در SQL Serverهمان VARBINARY است. نام این نوع داده برگرفته از مخفف عبارت Binary Large Object است که، با داشتن ظرفیتی بین 1 تا 8000 بایت،برای ذخیره سازی مقادیر بزرگ داده های باینری از قبیل تصویر یا انواع مختلف فایل ها به کار می رود.
توجه شود که برای ذخیره مقادیر بزرگ داده ای از فیلدهای نوع متنی نیز می توان استفاده نمود. با این تفاوت که در نوع داده ی T_Blob، هنگام مرتب سازی و مقایسه داده ها، شاهد تفاوت قائل شدن بین حروف بزرگ و کوچک خواهیم بود، اما این تفاوت در نوع داده ی متنی مشاهده نمی شود.

T_Array

از این نوع داده برای ذخیره مقادیر آرایه ها استفاده می شود. یک آرایه شامل مجموعه‌ای از عناصر هم نوع بوده که هر کدام از این عناصر با یک یا تعداد بیشتری اندیس ذخیره می‌شوند. نحوه ذخیره سازی این عناصر نیز در حافظه به صورت ترتیبی است. یعنی به اولین عنصر، آدرس اول از حافظه اختصاص می یابد و آخرین آدرس مربوط به عنصر آخر است. به عنوان مثال فهرست اسامی زیر که به صورت یک آرایه است را در نظر بگیرید. در این مثال، ابتدا Ali سپس mohammad، hasan، kaveh و در نهایت majid ذخیره می شود.List = [ ‘Ali’ , ‘mohammad’ , ‘hassan’ , ‘kaveh’ , ‘majid’ ]

T_Ref

از این نوع داده برای به دست آوردن محل ذخیره شدن یک متغیر استفاده می گردد. زمانی از این نوع داده استفاده می شود که بخواهیم محل ذخیره شدن متغیری که پیشتر تعریف شده است را به دست آوریم تا در ارجاعات بعدی به آن اشاره کنیم. به عنوان مثال عددی مانند 125467 می تواند خروجی show باشد که بیانگر محل ذخیره شدن متغیر X با مقدار 10 درون حافظه است.

T_Struct

این نوع داده می تواند مجموعه ای از مقادیر و متد ها یا همان توابع را در خود نگهداری نماید. در نتیجه ما شاهد مقادیری داده خواهیم بود که علی رغم آنکه مشابه یک آرایه هستند، می توانند از یک نوع مشخص نباشند. می توان گفت مفهوم این نوع داده بسیار نزدیک به تعریف نوع داده "کلاس" در زبان های مختلف برنامه نویسی، اما در سطحی پایین تر است.

 
 
نوع دادهورودیویژگیمیزان اشغال حافظهکاربرد
T_Stringرشته1 تا 8000 کاراکتر100   بایتدرج متون
T_booleanبولیندارای دو مقدار4 الی 8 بایتعبارات شرطی
T_BigDecimalعدد اعشاریمحدود به 16 رقم در دو طرف اعشار20 بایت به بالااعداد اعشاری
T_Byteعدد صحیح مثبتنگهداری اعداد مثبت و کوچک از  0 تا 2551 بایتاعداد کم مقدار مثل سن افراد
T_shortعدد صحیحنگهداری اعدادی بین منفی 32,768 تا مثبت 32,7672 بایتاعداد با مقادیر متوسط
T_intعدد صحیحنگهداری اعدادی از منفی 2,147,483,648 تا مثبت 2,147,483,6474 بایتاعداد با مقادیر بالا
T_Longعدد صحیح

نگهداری اعدادی از منفی 9,223,372,036,854,775,808

تا مثبت 9,223,372,036,854,775,807

8 بایت

اعداد با مقادیر بسیار بالا

T-Floatعدد اعشاریتا 24 رقم اعشار4 بایتاعداد اعشاری متوسط
T-Doubleعدد اعشاریتا 54 رقم اعشار8 بایتاعداد اعشاری بزرگ
T_ByteAمقادیر همنوعآرایه ای از یک سری بایتاز 1 بایت به بالاآرایه ها
T_Dateتاریخنمایش تاریخ با فرمت معین8 بایتنمایش تاریخ
T_Timeزماننمایش زمان با فرمت معین8 بایتنمایش زمان
T_TimeStampتاریخ و زماننمایش تاریخ  و زمان با فرمت معین8 بایتنمایش تاریخ و زمان
T_Clobرشتهمناسب برای پایگاه داده ORACLE136 بایتدرج متون
T_Blobفایل و متنمناسب برای ذخیره تصاویر و فایل ها و متون بزرگبین 1 تا 8000 بایتذخیره فایل و متن
T_Arrayمقادیر همنوعآرایه ای از مقادیر همنوع4 الی 8 بایتآرایه ها
T_Refآدرس متغیراشاره گر0 به بالاآدرس متغیر
T_Structمقادیر غیرهمنوعشباهت هایی هم به آرایه ها و هم به کلاس ها  دارد4 الی 8 بایتداده های ناهمنوع

best tracker