انواع داده (ADO DataTypes)
اینجا درباره «انواع داده ADO» حرف می زنیم. «نوع داده (Data Type)» یعنی شکل ذخیره سازی اطلاعات؛ مثل عدد، متن، تاریخ یا باینری. این صفحه نگاشت بین Access، SQL Server و Oracle را نشان می دهد. پس انتخاب درست، راحت تر می شود.
نگاشت سریع بین پایگاه ها
منبع می گوید هر نوع ADO یک معادل در دیتابیس ها دارد. بنابراین هنگام طراحی ستون ها، معادل درست را بردار.
- adBigInt → SQL Server: BigInt.
- adBinary → SQL Server: Binary/TimeStamp؛ Oracle: Raw.
- adBoolean → Access: YesNo؛ SQL Server: Bit.
- adChar → SQL Server/Oracle: Char.
- adCurrency → Access: Currency؛ SQL Server: Money/SmallMoney.
- adDate → Access: Date؛ SQL Server: DateTime.
- adDBTimeStamp → SQL Server: DateTime/SmallDateTime؛ Oracle: Date.
- adDecimal → Oracle: Decimal.
- adDouble → Access: Double؛ سایر: Float.
- adGUID → SQL Server: UniqueIdentifier.
- adInteger → Access: Integer/Long؛ SQL Server: Int/Identity؛ Oracle: Int.
- adLongVarBinary → SQL Server: Image؛ Oracle: Long Raw/Blob.
- adLongVarChar → SQL Server: Text؛ Oracle: Long/Clob.
- adLongVarWChar → SQL Server: NText؛ Oracle: NClob.
- adNumeric → SQL Server: Decimal/Numeric؛ Oracle: Decimal/Integer/Number/SmallInt.
- adSingle → SQL Server: Real.
- adSmallInt → SQL Server: SmallInt.
- adUnsignedTinyInt → SQL Server: TinyInt.
- adVarBinary → SQL Server: VarBinary.
- adVarChar → SQL Server/Oracle: VarChar.
- adVariant → SQL Server: Sql_Variant؛ Oracle: VarChar2.
- adVarWChar → SQL Server: NVarChar؛ Oracle: NVarChar2.
- adWChar → SQL Server: NChar.
نکته: در Oracle 8.0.x، decimal و int برابر number و number(10) هستند.
راهنمای انتخاب کوتاه
برای متن فارسی، یونیکد لازم است. پس VarWChar/NVarChar را انتخاب کن. برای پول، adCurrency دقیق است. برای فایل و تصویر، VarBinary یا LongVarBinary مناسب است. مثل انتخاب دفتر جدا برای هر درس.
نمونه کد: ساخت پارامتر با نوع داده درست
<%
// Classic ASP (JScript)
var conn = Server.CreateObject("ADODB.Connection");
var cmd = Server.CreateObject("ADODB.Command");
conn.Open("your-connection-string");
cmd.ActiveConnection = conn;
cmd.CommandText = "INSERT INTO People(NameFa, Age) VALUES(?, ?)";
cmd.CommandType = 1; // adCmdText
// adVarWChar = 202 برای متن یونیکد فارسی
var p1 = cmd.CreateParameter("NameFa", 202, 1, 50);
p1.Value = "رضا";
cmd.Parameters.Append(p1);
// adSmallInt = 2 برای عدد کوچک
var p2 = cmd.CreateParameter("Age", 2, 1);
p2.Value = 14;
cmd.Parameters.Append(p2);
cmd.Execute();
conn.Close();
%>
لینک های مرجع
منبع نگاشت: ADO Data Types. برای کار با متن/باینری ببین: ADO Stream.
لینک داخلی: انواع داده ADO همچنین: ADO Display و Server Object.
گام های عملی
- ستون ها را فهرست کن و نوع فعلی را ببین.
- معادل ADO و دیتابیس را تطبیق بده.
- برای فارسی، گونه های WChar/NVarChar را برگزین.
جمع بندی سریع
- نگاشت ADO جلوی ناسازگاری را می گیرد.
- برای فارسی، یونیکد ضروری است.
- پول را با adCurrency ذخیره کن.
- باینری را با VarBinary نگه دار.
- همیشه جدول نگاشت را چک کن.