我现在有一个access数据库表'9005'如下
ID Name Names
12 张三 张三-李四
13 林五 刘大-王二
15 林兵 林兵-刘洋
16 邓佳 吴大-小勇
......现在通过ADOconnection连接成功后。用SQL语句选出Names字段值中含有Name值的记录。(如第一条,Names[张三-李四]含有name[张三] 则选出,第二条则不选。)我用ADOconnection.execute('select * from [9005] where PATINDEX([name],[names])>0 '); //提示不支持patindex函数。patindex()是我在网上搜的SQL字符串函数。然后我又试着用delphi的函数strpoc(str1,str2)
ADOconnection.execute('select * from [9005] where strpoc([names],[name])<>nil');/同样提示不支持strpoc函数。我试着用此语句,也不行。
ADOconnection.execute('select * from [9005] where names like %name%')//也达不到预定的效果。无选出的记录。
请问一下:在这里用哪个函数还能完成此功能呢?
还有,DELPHI中类似ADOconnection.execute() 里支持哪些SQL函数啊?我试了一下简单的查询,建表,都没有问题。但一用到标准SQL的各种函数就提示不支持。查了DELPHI的帮助文件,里面根本没有说细介绍SQL语法的地方。我刚从VF,SQL SERVER转过来学DELPHI,很多语句直接拿过来都执行不了。微软的Microsoft.Jet.OLEDB.4.0的帮助文件很全。我也是用的这个通过ADO,连接的ACCESS数据库,可帮助里面的SQL涵数拿到DELPHI里面还是不支持。
ID Name Names
12 张三 张三-李四
13 林五 刘大-王二
15 林兵 林兵-刘洋
16 邓佳 吴大-小勇
......现在通过ADOconnection连接成功后。用SQL语句选出Names字段值中含有Name值的记录。(如第一条,Names[张三-李四]含有name[张三] 则选出,第二条则不选。)我用ADOconnection.execute('select * from [9005] where PATINDEX([name],[names])>0 '); //提示不支持patindex函数。patindex()是我在网上搜的SQL字符串函数。然后我又试着用delphi的函数strpoc(str1,str2)
ADOconnection.execute('select * from [9005] where strpoc([names],[name])<>nil');/同样提示不支持strpoc函数。我试着用此语句,也不行。
ADOconnection.execute('select * from [9005] where names like %name%')//也达不到预定的效果。无选出的记录。
请问一下:在这里用哪个函数还能完成此功能呢?
还有,DELPHI中类似ADOconnection.execute() 里支持哪些SQL函数啊?我试了一下简单的查询,建表,都没有问题。但一用到标准SQL的各种函数就提示不支持。查了DELPHI的帮助文件,里面根本没有说细介绍SQL语法的地方。我刚从VF,SQL SERVER转过来学DELPHI,很多语句直接拿过来都执行不了。微软的Microsoft.Jet.OLEDB.4.0的帮助文件很全。我也是用的这个通过ADO,连接的ACCESS数据库,可帮助里面的SQL涵数拿到DELPHI里面还是不支持。
解决方案 »
- delphi7做的小软件有没有免费的皮肤?
- 请问paradox 数据库最多能容纳多少条记录或支持到多大的存储空间
- 这样写执行到Tradiobutton(findcomponent('rd1')).Checked:=true为什么总是报错呀,我是菜鸟,帮帮我
- 如何激活DBGrid的当前行
- 高分求救。wise打包问题,谢谢 ,分不够再加
- 穷人的问题---断点
- 如何把一个自定义对象保存到文件然后再从文件装载该对象?
- 急!!哪位大哥大姐有类似能够把pascal转换成C的源码?这可关系到小弟这学期能否顺利pass!分数可以另开帖子再加
- TClientDataSet怎样过滤
- 交换机和hub总是过一段时间(几小时)掉了,品牌不一,总有数据发送经hub到交换机
- 怎么把teechart的坐标原点放到左下角
- rxrichedit怎么控制光标到行末
adoquery1.close;
adoquery1.sql.text:='select * from [9005] where names like %name%';
adoquery1.open;
试试ACCESS的通配符和MSSQL不一样
-----
查询结果
----
无列名
3
Microsoft® Jet SQL 支持使用由 ODBC 为标量函数定义的语法。例如这一查询:SELECT DAILYCLOSE, DAILYCHANGE FROM DAILYQUOTE
WHERE {fn ABS(DAILYCHANGE)} > 5凡是一种股票价格变化的绝对值大于 5 的列会返回。 ODBC 定义的标量函数的子集受支持。下表列出了受支持的函数。关于使函数包含于 SQL 语句的变元的描述和逸出语法的详尽解释,请看 ODBC文献。 字符串函数
ASCII LENGTH RTRIM
CHAR LOCATE SPACE
CONCAT LTRIM SUBSTRING
LCASE RIGHT UCASE
LEFT
数字函数
ABS FLOOR SIN
ATAN LOG SQRT
CEILING POWER TAN
COS RAND MOD
EXP SIGN
时间和日期函数
CURDATE DAYOFYEAR MONTH
CURTIME YEAR WEEK
NOW HOUR QUARTER
DAYOFMONTH MINUTE MONTHNAME
DAYOFWEEK SECOND DAYNAME
数据类型变换
CONVERT 字符串文字能被转换成下列数据类型:SQL_FLOAT, SQL_DOUBLE, SQL_NUMERIC, SQL_INTEGER, SQL_REAL, SQL_SMALLINT, SQL_VARCHAR和 SQL_DATETIME.
请参阅
为ODBC 访问配置 Microsoft Jet 数据库引擎
我现在改用ODBC标量函数locate,系统还是提示不支持函数locate.