用delphi+access2000的朋友,请进---太奇怪了(100分)

  • 主题发起人 主题发起人 chinaplate
  • 开始时间 开始时间
C

chinaplate

Unregistered / Unconfirmed
GUEST, unregistred user!
劳你驾,请再换个帖子,确实很奇怪。
关于access的like '*a*'
http://www.delphibbs.com/delphibbs/dispq.asp?lid=632260
 
我要将后台的SQLSERVER7。0数据库换成access2000,有经验的朋友,请指教。
 
就用 %a% 吧
 
这个写法是对的啊。因为单引号在Delphi中代表字符串,所以必须写二遍代表一个,也可以
这样写:
strSql:='select * from users where username like'+ chr(39)+'%a%'+chr(39);
其中Chr(39)代表引号。
 
to yangkee:
为什么在delphi里写要用 %a%,那就是说真正提交给access的指令并不是adoqry.sql里的指令。

有原因吗?我担心的是其他的SQL语句也会有所改变吗?对其它类型的数据库呢?
 
to proman:
我的问题是access支持like '*a*'
为什么要在delphi中写成 like '%a%'?

谢谢各位。
 
关键是Delphi要有一个统一的处理格式(对各种数据库都这种格式), 还要照顾原来的固有习惯.
 
access 的特性;
access设计时就用%表示统配符('*');就好像她的substring是用vb的mid一样.
 
用msde+access2000
代码几呼不要改动
详情请见http://antic_ant.delphibbs.com
 
to antic_ant
我试过了,用msde确实可以,代码完全不改动。
可是我如何打包发布呢?
 
access就是支持like '%a%'这样的语法,我没有用过'*a*',不过 '%a%'是大多数数据库都支
持的标准,我记得以前在Access里用'*a*'时是出错的,换了'%a%'就对了,我总结出来是
Access帮助写错了。你应该去看一下Jetsql4.0的语法。
 
借此宝地问问,Access支持联合查询吗?(连接数个表)
 
一些在ACCESS中可以直接执行的语句,
如果用DELPHI来控制的话,可能要稍加变化.
这个问题就是一例,
还有,position在access中直接执行不是保留字,但你用adoQuery.sql.add('select position...')
中执行时,就认为position是保留字了,必须改为adoQuery.sql.add('select [position]...'),
这种情况还有一个session.

不知何故,反正躲开它就是了.
也请以后有人能解释.
 
后退
顶部