当前位置: 首页 > 面试题库 >

MS Access查询:为什么从VB6应用程序调用LIKE时行为会有所不同?

田英卓
2023-03-14
问题内容

我没有使用VB6进行很多编码,但是我现在正在更新现有的应用程序,并且遇到了一些麻烦。

我解决了这个问题。在VB6中,使用 LIKE* 时查询必须使用 通配符 ,但是在MS Access中,您必须使用
*通配符** 。
***

我正在查询相同的数据库-(在MS Access中)。

在MS Access中进行查询时,以下查询有效:

SELECT * FROM table WHERE field LIKE '*something*'

当我在VB6中建立该查询时,我必须这样做:

SELECT * FROM table WHERE field LIKE '%something%'

发生了什么?那是正常的吗?


问题答案:

Access曾经有自己不兼容的SQL版本,因此出于传统原因,我认为它使用*。

当您使用VB6时,通常会使用ODBC和更标准化的SQL,因此会使用更常见的通配符。请记住,VB6不在乎您使用哪个数据库,因此,如果您使用其他内容(例如SQL
Server),它可能只会了解百分比符号。

我猜想Access-ODBC连接器会为您转换内容。



 类似资料:
  • 我将imageTextView编程为显示prenumeString的第一个字母,这是从编辑文本中获得的。问题是,每当编辑文本中出现所有字母时,应用程序就会崩溃。有什么想法吗? 代码:

  • 问题内容: 在测试和开发环境中,我们遇到了一个问题,该函数有时会从.Net应用程序调用时运行得非常慢。当我们直接从Management Studio调用此功能时,它可以正常工作。 剖析它们时的区别是:从应用程序: CPU:906 读取:61853 写入:0 持续时间:926 从SSMS发送: CPU:15次 读取:11243次 写入:0 持续时间:31 现在我们已经确定,当我们重新编译该函数时,性

  • 我有一个SQS队列,用作Lambda函数的事件源。由于DB连接限制,我将Lambda函数的最大并发设置为5。 在正常情况下,一切正常,但是当我们需要进行更改时,我们故意禁用SQS触发器。消息按预期开始在SQS队列中备份。 当触发器被重新启用时,5个Lambda函数被实例化,并开始处理队列中的消息,但是我也看到CloudWatch告诉我Lambda被限制了。 有人能解释一下为什么会这样吗?我希望可用

  • 这是原始查询: 原始查询的输出。请检查列H,该列有空单元格。 我试图使用以下公式对原始查询进行子查询: =QUERY(QUERY(IMPORTRANGE(“sheet_name”,“social media posts!a:as”),“选择Col1,Col14,Col12,Col10,Col23,Col16,Col13,Col37,Col2,Col3其中Col2='instagram'”,1),“

  • 问题内容: 我在继承的应用程序中遇到了如下查询: 正如我解析的那样,它应该不返回任何内容(应评估为false,正确)。但是(至少在我的Oracle机器上),它返回了中所有内容的完整列表。当我在MSAccess / Jet和MSSQL中尝试相同的操作时,我得到了预期的行为。为什么对Oracle有所不同(为什么原始开发人员要这样做)? 注意:我对使用“ where 1 = 1”的+ s和-s有一些迷信

  • 问题内容: 我使用Slick 1.0.0-RC1。我对表对象有以下定义: 我需要一个简单的查询,该查询从数据库中选择8行: 输出为: 如果我摆脱方法: 那么输出是: 所以我的问题是:当Slick的查询对象使用method构造时,为什么会生成一个子查询? PS如果可以关联,则将MySql驱动程序与所有这些一起使用 问题答案: 有一个简短的答案,一个很长的答案。简短的是:子查询在那里,因为到目前为止没