国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
VB6基本數(shù)據(jù)庫應用(九):【增補篇】不同的引擎的語法差異
正篇在寫的時候出了一些問題。這些問題在以前的內(nèi)容中沒有被提及,或者提及了卻沒有細說,如今在繼續(xù)的時候如果不說清楚,會讓后面的學習變得含混不清,為此決定發(fā)布兩篇增補篇,來解決一下以前的遺留問題。
本來打算用LIKE模糊查詢,讓賬戶框可以顯示出符合當前開頭賬戶名。結(jié)果卻發(fā)現(xiàn)無論怎么查詢都沒有結(jié)果。當時候我寫的SQL語句是這樣的:
SELECT * FROM UserAccount WHERE AccountName LIKE '幾*'
幾羅星人是我為自己創(chuàng)建的賬號,結(jié)果這個語句在Access里能查到賬戶名是“幾羅星人”的記錄,而在VB里卻沒有任何記錄返回。
幾經(jīng)查找,才發(fā)現(xiàn)是數(shù)據(jù)庫引擎在作怪。雖然我知道不同的數(shù)據(jù)庫對SQL的支持不一樣,不過沒想到會栽在這里。
原來,SQL有自己的國際標準ANSI SQL,而微軟的Access數(shù)據(jù)庫使用的是自己的Jet OLEDB數(shù)據(jù)庫引擎(在連接字符串中也有體現(xiàn),如下圖),兩者雖然絕大多數(shù)的語法一樣,但是還是有一定的差異,而這個通配符就是其中之一。
下面的表格列出了Access、SQL Server以及ADO所使用的SQL語法:
數(shù)據(jù)庫/對象
SQL語法
Access
Jet SQL
SQL Server
ANSI SQL
ADO
ANSI SQL
顯然,Access和我們所使用的ADO所支持的語法是不一樣的,所以才導致了SQL語句在Access能用,在VB上不能用的現(xiàn)象。
實際上,目前發(fā)現(xiàn)的差異并不多。一個是Jet SQL中的Betweenvalue1 And value2,允許value1> value2,但這并沒有什么卵用,這種情況下結(jié)果與交換value1與value2的位置產(chǎn)生的結(jié)果是一樣的。
第二個差異就是通配符,下面的表格列出了兩種語法支持的通配符以及對應關(guān)系:
Jet SQL
ANSI SQL
匹配類型
模式
匹配類型
模式
多個字符:*
a*a
多個字符:%
a%a
*ab*
%ab%
ab*
ab%
特殊字符:[]
a[*]a
未提及
單個字符:?
a?a
單個字符:_
a_a
單個數(shù)字:#
a#a
單個數(shù)字:[0-9]
a[0-9]a
字符范圍:[?-?]
[a-z]
字符范圍:[_-_]
[a-z]
范圍之外:[!?-?]
[!a-z]
同樣
數(shù)字值:[#-#]
[0-9]
非數(shù)字值:[!#-#]
[!0-9]
復合值:組合上述語法
a[!b-m]#
主要的差異為多個字符的表示,一個字符的表示,一個數(shù)字的表示有不同。
所以,當初的SQL語句在VB中應該寫成:
SELECT * FROM UserAccount WHERE AccountName LIKE '幾%'
而且值得注意的是,不能直接在Access的查詢中使用ANSI SQL語法,也就是說兩種語法互不兼容,只能使用一種。
下一篇依然是增補篇,簡介游標與鎖。
下一篇:【增補篇】游標Cursor和鎖Lock簡介 http://blog.csdn.net/jiluoxingren/article/details/48738905
本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Teradata SQL函數(shù)用法
Oracle中查詢使用正則表達式函數(shù)REGEXP
Excel vba SQL中的like通配符使用
通俗易懂講解一條SQL是怎么執(zhí)行的
[轉(zhuǎn)]Sqlserver與access數(shù)據(jù)庫sql語法十大差異
Word查找與替換——獻給沈丹丹和周小星
更多類似文章 >>
生活服務
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服