描 述
bit
整型
bit 數據類型是整型,其值只能是0、1或空值。這種數據類型用於存儲只有兩種可能值的數據,如Yes 或No、True 或Fa lse 、On 或Off
int
整型
int 數據類型可以存儲從- 2
31(-2147483648)到2
31 (2147483 647)之間的整數。存儲到數據庫的幾乎所有數值型的數據都可以用這種數據類型。這種數據類型在數據庫裡占用4個字節
smallint
整型
smallint 數據類型可以存儲從- 2
15(-32768)到2
15(32767)之間的整數。這種數據類型對存儲一些常限定在特定范圍內的數值型數據非常有用。這種數據類型在數據庫裡占用2 字節空間
tinyint
整型
tinyint 數據類型能存儲從0到255 之間的整數。它在你只打算存儲有限數目的數值時很有用。 這種數據類型在數據庫中占用1 個字節
numeric
精確數值型
numeric數據類型與decimal 型相同
decimal
精確數值型
decimal 數據類型能用來存儲從-10
38-1到10
38-1的固定精度和范圍的數值型數據。使用這種數據類型時,必須指定范圍和精度。 范圍是小數點左右所能存儲的數字的總位數。精度是小數點右邊存儲的數字的位數
money
貨幣型
money 數據類型用來表示錢和貨幣值。這種數據類型能存儲從-9220億到9220 億之間的數據,精確到貨幣單位的萬分之一
smallmoney
貨幣型
smallmoney 數據類型用來表示錢和貨幣值。這種數據類型能存儲從-214748.3648 到214748.3647 之間的數據,精確到貨幣單位的萬分之一
float
近似數值型
float 數據類型是一種近似數值類型,供浮點數使用。說浮點數是近似的,是因為在其范圍內不是所有的數都能精確表示。浮點數可以是從-1.79E+308到1.79E+308 之間的任意數
real
近似數值型
real 數據類型像浮點數一樣,是近似數值類型。它可以表示數值在-3.40E+38到3.40E+38之間的浮點數
datetime
日期時間型
datetime數據類型用來表示日期和時間。這種數據類型存儲從1753年1月1日到9999年12月3 1日間所有的日期和時間數據, 精確到三百分之一秒或3.33毫秒
Smalldatetime
日期時間型
smalldatetime 數據類型用來表示從1900年1月1日到2079年6月6日間的日期和時間,精確到一分鐘
cursor
特殊數據型
cursor 數據類型是一種特殊的數據類型,它包含一個對游標的引用。這種數據類型用在存儲過程中,而且創建表時不能用
timestamp
特殊數據型
timestamp 數據類型是一種特殊的數據類型,用來創建一個數據庫范圍內的唯一數碼。 一個表中只能有一個timestamp列。每次插入或修改一行時,timestamp列的值都會改變。盡管它的名字中有“time”, 但timestamp列不是人們可識別的日期。在一個數據庫裡,timestamp值是唯一的
UniqueidentifIEr
特殊數據型
UniqueidentifIEr數據類型用來存儲一個全局唯一標識符,即GUID。GUID確實是全局唯一的。這個數幾乎沒有機會在另一個系統中被重建。可以使用NEWID 函數或轉換一個字符串為唯一標識符來初始化具有唯一標識符的列
char
字符型
char數據類型用來存儲指定長度的定長非統一編碼型的數據。當定義一列為此類型時,你必須指定列長。當你總能知道要存儲的數據的長度時,此數據類型很有用。例如,當你按郵政編碼加4個字符格式來存儲數據時,你知道總要用到10個字符。此數據類型的列寬最大為8000 個字符
varchar
字符型
varchar數據類型,同char類型一樣,用來存儲非統一編碼型字符數據。與char 型不一樣,此數據類型為變長。當定義一列為該數據類型時,你要指定該列的最大長度。 它與char數據類型最大的區別是,存儲的長度不是列長,而是數據的長度
text
字符型
text 數據類型用來存儲大量的非統一編碼型字符數據。這種數據類型最多可以有2
31-1或20億個字符
nchar
統一編碼字符型
nchar 數據類型用來存儲定長統一編碼字符型數據。統一編碼用雙字節結構來存儲每個字符,而不是用單字節(普通文本中的情況)。它允許大量的擴展字符。此數據類型能存儲4000種字符,使用的字節空間上增加了一倍
nvarchar
統一編碼字符型
nvarchar 數據類型用作變長的統一編碼字符型數據。此數據類型能存儲4000種字符,使用的字節空間增加了一倍
ntext
統一編碼字符型
ntext 數據類型用來存儲大量的統一編碼字符型數據。這種數據類型能存儲2
30 -1或將近10億個字符,且使用的字節空間增加了一倍
binary
二進制數據類型
binary數據類型用來存儲可達8000 字節長的定長的二進制數據。當輸入表的內容接近相同的長度時,你應該使用這種數據類型
varbinary
二進制數據類型
varbinary 數據類型用來存儲可達8000 字節長的變長的二進制數據。當輸入表的內容大小可變時,你應該使用這種數據類型
image
二進制數據類型
image 數據類型用來存儲變長的二進制數據,最大可達2
31-1或大約20億字節
描 述
bit
整型
bit 數據類型是整型,其值只能是0、1或空值。這種數據類型用於存儲只有兩種可能值的數據,如Yes 或No、True 或Fa lse 、On 或Off
int
整型
int 數據類型可以存儲從- 2
31(-2147483648)到2
31 (2147483 647)之間的整數。存儲到數據庫的幾乎所有數值型的數據都可以用這種數據類型。這種數據類型在數據庫裡占用4個字節
smallint
整型
smallint 數據類型可以存儲從- 2
15(-32768)到2
15(32767)之間的整數。這種數據類型對存儲一些常限定在特定范圍內的數值型數據非常有用。這種數據類型在數據庫裡占用2 字節空間
tinyint
整型
tinyint 數據類型能存儲從0到255 之間的整數。它在你只打算存儲有限數目的數值時很有用。 這種數據類型在數據庫中占用1 個字節
numeric
精確數值型
numeric數據類型與decimal 型相同
decimal
精確數值型
decimal 數據類型能用來存儲從-10
38-1到10
38-1的固定精度和范圍的數值型數據。使用這種數據類型時,必須指定范圍和精度。 范圍是小數點左右所能存儲的數字的總位數。精度是小數點右邊存儲的數字的位數
money
貨幣型
money 數據類型用來表示錢和貨幣值。這種數據類型能存儲從-9220億到9220 億之間的數據,精確到貨幣單位的萬分之一
smallmoney
貨幣型
smallmoney 數據類型用來表示錢和貨幣值。這種數據類型能存儲從-214748.3648 到214748.3647 之間的數據,精確到貨幣單位的萬分之一
float
近似數值型
float 數據類型是一種近似數值類型,供浮點數使用。說浮點數是近似的,是因為在其范圍內不是所有的數都能精確表示。浮點數可以是從-1.79E+308到1.79E+308 之間的任意數
real
近似數值型
real 數據類型像浮點數一樣,是近似數值類型。它可以表示數值在-3.40E+38到3.40E+38之間的浮點數
datetime
日期時間型
datetime數據類型用來表示日期和時間。這種數據類型存儲從1753年1月1日到9999年12月3 1日間所有的日期和時間數據, 精確到三百分之一秒或3.33毫秒
Smalldatetime
日期時間型
smalldatetime 數據類型用來表示從1900年1月1日到2079年6月6日間的日期和時間,精確到一分鐘
cursor
特殊數據型
cursor 數據類型是一種特殊的數據類型,它包含一個對游標的引用。這種數據類型用在存儲過程中,而且創建表時不能用
timestamp
特殊數據型
timestamp 數據類型是一種特殊的數據類型,用來創建一個數據庫范圍內的唯一數碼。 一個表中只能有一個timestamp列。每次插入或修改一行時,timestamp列的值都會改變。盡管它的名字中有“time”, 但timestamp列不是人們可識別的日期。在一個數據庫裡,timestamp值是唯一的
UniqueidentifIEr
特殊數據型
UniqueidentifIEr數據類型用來存儲一個全局唯一標識符,即GUID。GUID確實是全局唯一的。這個數幾乎沒有機會在另一個系統中被重建。可以使用NEWID 函數或轉換一個字符串為唯一標識符來初始化具有唯一標識符的列
char
字符型
char數據類型用來存儲指定長度的定長非統一編碼型的數據。當定義一列為此類型時,你必須指定列長。當你總能知道要存儲的數據的長度時,此數據類型很有用。例如,當你按郵政編碼加4個字符格式來存儲數據時,你知道總要用到10個字符。此數據類型的列寬最大為8000 個字符
varchar
字符型
varchar數據類型,同char類型一樣,用來存儲非統一編碼型字符數據。與char 型不一樣,此數據類型為變長。當定義一列為該數據類型時,你要指定該列的最大長度。 它與char數據類型最大的區別是,存儲的長度不是列長,而是數據的長度
text
字符型
text 數據類型用來存儲大量的非統一編碼型字符數據。這種數據類型最多可以有2
31-1或20億個字符
nchar
統一編碼字符型
nchar 數據類型用來存儲定長統一編碼字符型數據。統一編碼用雙字節結構來存儲每個字符,而不是用單字節(普通文本中的情況)。它允許大量的擴展字符。此數據類型能存儲4000種字符,使用的字節空間上增加了一倍
nvarchar
統一編碼字符型
nvarchar 數據類型用作變長的統一編碼字符型數據。此數據類型能存儲4000種字符,使用的字節空間增加了一倍
ntext
統一編碼字符型
ntext 數據類型用來存儲大量的統一編碼字符型數據。這種數據類型能存儲2
30 -1或將近10億個字符,且使用的字節空間增加了一倍
binary
二進制數據類型
binary數據類型用來存儲可達8000 字節長的定長的二進制數據。當輸入表的內容接近相同的長度時,你應該使用這種數據類型
varbinary
二進制數據類型
varbinary 數據類型用來存儲可達8000 字節長的變長的二進制數據。當輸入表的內容大小可變時,你應該使用這種數據類型
image
二進制數據類型
image 數據類型用來存儲變長的二進制數據,最大可達2
31-1或大約20億字節
在進行數據庫的查詢時,會經常遇到這樣的情況:
例如想在一個用戶數據庫中查詢他的用戶名和他的密碼,但恰好該用戶使用的名字和密碼中有特殊的字符,例如單引號,“|”號,雙引號或者連字符“&”。
例如他的名字是1"test,密碼是A|&900
這時當你執行以下的查詢語句時,肯定會報錯:
SQL = "SELECT * FROM SecurityLevel WHERE UID="" & UserID & """
SQL = SQL & " AND PWD="" & PassWord & """
因為你的SQL將會是這樣:
SELECT * FROM SecurityLevel WHERE UID="1"test" AND PWD="A|&900"
在SQL中,"|"為分割字段用的,顯然會出錯了。現在提供下面的幾個函數 專門用來處理這些頭疼的東西:
Function ReplaceStr (TextIn, ByVal SearchStr As String, _ByVal Replacement As String, _ByVal CompMode As Integer)
Dim WorkText As String, Pointer As Integer
If IsNull(TextIn) Then
ReplaceStr = Null
Else
WorkText = TextIn
Pointer = InStr(1, WorkText, SearchStr, CompMode)
Do While Pointer > 0
WorkText = Left(WorkText, Pointer - 1) & Replacement & _
Mid(WorkText, Pointer + Len(SearchStr))
Pointer = InStr(Pointer + Len(Replacement), WorkText, SearchStr, CompMode)
Loop
ReplaceStr = WorkText
End If
End Function
Function SQLFixup(TextIn)
SQLFixup = ReplaceStr(TextIn, """, """", 0)
End Function
Function JetSQLFixup(TextIn)
Dim Temp
Temp = ReplaceStr(TextIn, """, """", 0)
JetSQLFixup = ReplaceStr(Temp, "|", "" & chr(124) & "", 0)
End Function
Function FindFirstFixup(TextIn)
Dim Temp
Temp = ReplaceStr(TextIn, """, "" & chr(39) & "", 0)
FindFirstFixup = ReplaceStr(Temp, "|", "" & chr(124) & "", 0)
End Function
有了上面幾個函數後,當你在執行一個sql前,請先使用
SQL = "SELECT * FROM SecurityLevel WHERE UID="" & SQLFixup(UserID) & """
SQL = SQL & " AND PWD="" & SQLFixup(PassWord) & """