亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Microsoft Jet通配符:星號還是百分號?

Microsoft Jet通配符:星號還是百分號?

一只名叫tom的貓 2019-09-26 14:55:59
Microsoft Jet通配符:星號還是百分號?在Microsoft Jet的LIKE運算符中,什么是正確的多字符通配符?什么設置會影響它(如果有)?我支持在Microsoft Jet(在Access數據庫上)上運行的舊ASP應用程序,并且在LIKE運算符中使用%符號,但是我有一個客戶在他的環境中顯然有問題,因為%字符被理解為常規字符字符,并且我假設他的多字符通配符為*。另外,我幾乎可以肯定,過去我使用*而不是%編寫了帶有查詢的應用程序。最后,Microsoft Access(作為應用程序)也僅適用于*,而不適用于%(但我不確定它的適用性)。我只花了大約20分鐘的時間在Internet上搜索,卻沒有任何有用的結果,因此我認為對stackoverflow進行詢問會很有用。也許有人已經知道了,將潛在的答案保留在stackoverflow上比任何其他隨機討論論壇都要好。
查看完整描述

3 回答

?
萬千封印

TA貢獻1891條經驗 獲得超3個贊

直接的答案是通配符的行為取決于所使用接口的ANSI查詢模式。

ANSI-89查詢模式(“傳統模式”)使用*字符,ANSI-92查詢模式(“ SQL Server兼容模式”)使用%字符。這些模式特定于ACE / Jet,并且僅與ANSI / ISO SQL-89和SQL-92標準具有相似之處。

ADO接口(OLE DB)始終使用ANSI-92查詢模式。

DAO接口始終使用ANSI-89查詢模式。

使用ODBC時,可以通過ExtendedAnsiSQL標志顯式指定查詢模式。

從2003版本開始的MS Access用戶界面可以使用任何一種查詢模式,因此在任何給定時間都不要假設它是另一種(例如,在驗證規則中不要使用特定于查詢模式的通配符)。

ACE / Jet SQL語法具有一個ALIKE關鍵字,無論接口的查詢模式如何,該關鍵字都允許使用ANSI-92查詢模式字符(%_),但是具有ALIKE關鍵字與SQL-92不兼容的輕微缺點(但是ALIKE仍具有高度可移植性) 。但是,主要缺點是,我了解該ALIKE關鍵字不受官方支持(盡管我無法想象它很快就會消失或改變行為)。


查看完整回答
反對 回復 2019-09-26
?
慕尼黑5688855

TA貢獻1848條經驗 獲得超2個贊

通過ODBC訪問Jet,我不清楚應該使用什么通配符。我假設使用自然的Jet SQL(* /?),但是由于我從不通過ODBC使用Jet數據,所以我不能說。

正如Remou所引用的那樣,在Access中,在代碼中,這取決于您使用的是哪種數據訪問接口-ADO(在Access中沒有人應使用該接口),而您使用%/ _,而使用DAO(Jet的本機接口層) ),則使用Jet的本機通配符(* /?)。

在更高版本的Access中,在Access中執行SQL是一個例外。我不知道是Access 2002還是2003添加了它,但是如今,您可以打開ANSI SQL 92兼容模式。如果這樣做,通配符將變為%/ _而不是* /?。但是能夠選擇ANSI模式僅適用于Access本身-正如有一天告訴我們的那樣,您必須選擇不同的數據接口庫以使用不同的SQL模式,而ADO使用92和DAO和ODBC 89。


查看完整回答
反對 回復 2019-09-26
  • 3 回答
  • 0 關注
  • 512 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號