一个百思不得其解的问题,使用SetSQLSelect()语句重置数据窗体的SQL语句,SQL语句无错,但存在部分机器不能成功执行。不知何故。

kind_li 2002-06-03 11:09:19
一个百思不得其解的问题,使用SetSQLSelect()语句重置数据窗体的SQL语句,SQL语句无错,但存在部分机器不能成功执行。不知何故。
换用 Modify("DataWindow.Table.Select='SQL SELECT STATEMENTS'"),可运行,但存在一个问题是,WHERE语句处不能使用字符式匹配。真正的百思不得其解,还望大家为我解围,百分相送。

SQL例句如下:
strsql=Select id,age,name,addres,email from MainData where id>100 and age>18 and name like '%李%'

使用SetSQLSelect(strsql)可以执行,部分机器能得出相应结果,但有部分机器得出的结果是忽略了 and Name Like '%李%'条件的数据。

使用Modify("DataWindow.Table.Select='"+strsql+"'"),为出现错误,提示说Like 处有语法错误。去掉后面这个Like条件,能成功执行。
...全文
96 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
jmsofts 2002-06-05
  • 打赏
  • 举报
回复
gz
liuxiang 2002-06-03
  • 打赏
  • 举报
回复
条件中如果有like出现,每个条件都要加上括号,否则出错,这是pb的一个bug!
kind_li 2002-06-03
  • 打赏
  • 举报
回复
正在尝试中,下午一点钟结贴
jackygan 2002-06-03
  • 打赏
  • 举报
回复
对呀,就你setfilter()一样。
hycao 2002-06-03
  • 打赏
  • 举报
回复
用Modify不能运行可能是引号嵌套引起的问题。要么改SQL语句如下:
strsql='Select id,age,name,addres,email from MainData where id>100 and age>18 and name like "%李%"'
要么改Modify如下:
Modify('DataWindow.Table.Select="'+strsql+'"')
你自己试试看,反正要注意引号嵌套时单双引号要错开。

jackygan 2002-06-03
  • 打赏
  • 举报
回复
strsql="Select id,age,name,addres,email from MainData where id>100 and age>18 and name like '%李%'"
不过应该没有问题。
WorldMobile 2002-06-03
  • 打赏
  • 举报
回复
你的Modify错了
如果你的strsql= "Select id,age,name,addres,email from MainData where id>100 and age>18 and name like '%李%'"
你的Modify应该这么写
Modify("DataWindow.Table.Select=~'" + strsql + "~'")
或者
Modify('DataWindow.Table.Select="' + strsql + '"')
保证不会出错,你的条件间最好加几个括号

你的Modify中的表达式计算后为
DataWindow.Table.Select = 'select id from MainData where name like '%李%'' 不出错才怪
使用SetSqlSelect(strsql)应该没有问题,如果有问题的话你在你的条件间加上括号试试

最后告诉你如果是SetFilter中有两个以上的条件,并且其中有一个like, 你必须在各个条件加上括号,否则肯定出错
kind_li 2002-06-03
  • 打赏
  • 举报
回复
解决了,怪自已没有好好地观察问题,100,散

1,075

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧