delphi 使用access的函数问题

access中有个字符串函数StrReverse字符串倒序功能但这个函数在Delphi的ADOQuery的SQL中无法使用。如何解决。另外Delphi中使用查询语句是在D... access中有个字符串函数StrReverse 字符串倒序功能
但这个函数在Delphi的ADOQuery 的SQL中无法使用。

如何解决。另外Delphi中使用查询语句是在Delphi中执行还是Access中执行?
经测试Access创建一个视图 也是一样的
展开
 我来答
forestry98
2011-02-23 · TA获得超过2442个赞
知道小有建树答主
回答量:1351
采纳率:33%
帮助的人:560万
展开全部
这个可能是沙盒模式的影响(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.
久锡12
2011-02-17
知道答主
回答量:52
采纳率:0%
帮助的人:20.1万
展开全部
外部不支持此函数,在Access创建一个视图,然后在Delphi中通过视图查询。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yueyun889
2011-02-21 · TA获得超过725个赞
知道小有建树答主
回答量:539
采纳率:0%
帮助的人:769万
展开全部
只要连对了数据库引擎,access支持,那么Delphi组合的sql语句执行起来也没有问题。
请查看你的语法是否正确。
比如:
Qry1: TADOQuery;

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

那就看用什么方法最简单了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
76100434
2011-02-22 · 超过33用户采纳过TA的回答
知道答主
回答量:124
采纳率:0%
帮助的人:72万
展开全部
当然是在delphi中调用access了,delphi中执行并更新access啊。哪种数据库都这样的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式