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

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

delphi 使用access的函數問題?

delphi 使用access的函數問題?

幕布斯7119047 2019-02-05 11:07:57
access中有個字符串函數StrReverse 字符串倒序功能但這個函數在Delphi的ADOQuery 的SQL中無法使用。如何解決。另外Delphi中使用查詢語句是在Delphi中執行還是Access中執行?經測試Access創建一個視圖 也是一樣的
查看完整描述

2 回答

?
收到一只叮咚

TA貢獻1821條經驗 獲得超5個贊

這個可能是沙盒模式的影響(StrReverse 函數也在其中),看以下知識庫

為了幫助增強數據的安全性,可以選擇以沙盒模式運行 Access 2003。在沙盒模式下,Access 僅計算字段屬性和控件中那些安全的表達式。如果表達式未使用惡意用戶可用來訪問他們未得到授權的驅動器、文件或其他資源的那些函數或屬性,則可以認為該表達式是安全的。例如,函數 Kill 和 Shell 可被用于損壞計算機中的數據和文件,因此,認為它們是不安全的。以沙盒模式運行 Access 時,調用這些函數或屬性的表達式將會導致錯誤信息。

有關在沙盒模式下被阻止的函數和屬性的列表,請參閱沙盒模式中阻止的函數和屬性。

注釋 沙盒模式不影響文件中的 Visual Basic for Applications (VBA) 代碼。無論 Access 是否在沙盒模式下,都將運行進行了數字簽名的代碼,即使它包含禁用的函數或屬性。僅在默認值、控件源或 SQL 語句之類的表達式中,才會禁用不安全的函數和屬性。

使用 Microsoft Jet Expression Service 實現沙盒模式來計算表達式。Microsoft Jet 4.0 Service Pack 8 (SP8) 或更高版本允許 Access 完全發揮功能,同時還能通過啟用沙盒模式讓 Jet 禁用不安全的表達式。不過,Jet 表達式服務不是 Access 的一部分。需要下載并安裝 Microsoft Jet 4.0 Service Pack 8 (SP8) 或更高版本才能啟用沙盒模式。

注釋 重要 Windows 更新包括 Jet 4.0 SP 8,所以安裝所有重要 Windows 更新將自動在計算機上安裝 Jet 的最新版本。

要點 安裝 Jet 的最新版本不會自動啟用沙盒模式。安裝 Service Pack 或 Windows 重要更新后啟動 Access 時,系統將會提示您禁用不安全的表達式。單擊“是”將打開沙盒模式并阻止計算不安全的表達式。

如果您未安裝 Jet 4.0 SP 8 或更高版本就啟用沙盒模式,某些功能將無效。例如,向導不會啟動,同時,您會看到以下消息:“這個功能沒有安裝,或者已被禁用”。

向導可能沒有啟動。
使用切換面板管理器創建的切換面板將不能正常工作。
您無法使用 RunCode 宏操作來調用 Visual Basic for Applications (VBA) 過程。
調用 VBA 過程的事件處理程序將不能正常工作。
在屬性頁中調用的 VBA 過程或用于 SQL 語句中的 VBA 過程將不能正常工作。
在屬性頁中調用下列 VBA 函數時它們將不能正常工作;當它們用于 SQL 語句中時也是如此:
FormatCurrency
FormatDateTime
FormatNumber
FormatPercent
InStrB
InStrRev
MonthName
Replace
StrReverse
WeekDayName

有關安裝 Jet 的最新版本的詳細信息,請參閱關于 Microsoft Jet 4.0 SP8 或更高版本(英文)。有關啟用沙盒模式的詳細信息以及了解沙盒模式的局限性和替代方法的詳細信息,請參閱有關 Access 安全警告的常見問題(英文)。

有關 Jet 的早期版本中的沙盒模式的詳細信息,請參閱以下知識庫文章:ACC2002:Jet 4.0 Expression 可以執行不安全的 Visual Basic for Applications 函數。

解決方法:參考英文說明
\\HKEY_LOCAL_MACHINE\Software\Microsoft\Jet\4.0\engines\SandboxMode
0 Sandbox mode is disabled at all times.
1 Sandbox mode is used for Access applications, but not for non-Access Applications.
2 Sandbox mode is used for non-Access applications, but not for Access Applications. This is the default value.
3 Sandbox mode is used at all times.



查看完整回答
反對 回復 2019-03-21
?
阿波羅的戰車

TA貢獻1862條經驗 獲得超6個贊

只要連對了數據庫引擎,access支持,那么Delphi組合的sql語句執行起來也沒有問題。
請查看你的語法是否正確。
比如:
Qry1: TADOQuery;

Qry1.close;
Qry1.sql.text := 'select StrReverse(...) from Table';
Qry1.open;

那就看用什么方法最簡單了。


查看完整回答
反對 回復 2019-03-21
  • 2 回答
  • 0 關注
  • 993 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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