setsqlselect()问题

shadowoykc 2008-12-13 09:07:35
这是我的程序:
string wheresql,newsql
wheresql = "where mz_cf.blbh like ' " +sle_1.text+" ' "
newsql = wheresql

dw_1.settransobject(sqlca)
dw_1.setsqlselect(newsql)
dw_1.retrieve()
就是通过sle_1.text的内容进行查询

第一次输入数据错误提示
select error:column list do not match
然后从新输入另一数据,错误提示
select error:sqlstate= 42000
microsoft OLE DB provider for sql server 在关键字"where"附近有语法错误

不知道什么原因,大家帮我看看··
...全文
259 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ribut9225 2008-12-14
  • 打赏
  • 举报
回复
string wheresql,newsql
wheresql = "where mz_cf.blbh like ' " +sle_1.text+" ' "
newsql = wheresql
dw_1.setsqlselect(newsql)

这样写肯定有问题的啊

你的newsql里的内容是:"where mz_cf.blbh like ' " +sle_1.text+" ' "
这不是完整的SQL语句

偶们的做法一般是获取DW的初始的SQL语法,保存到一个实例变量中

一、定义一个实例变量: sring is_old_sql
二、在窗口的OPEN事里获取DW的初始SQL语法
is_old_sql = dw_1.GetSqlSelect() //注意,事先要给DW设置事务,才有SQL语法
三、添加自己的条件

string wheresql,newsql
wheresql = "where mz_cf.blbh like ' " +sle_1.text+" ' "
newsql = is_old_sql + wheresql //这里就是构造成带有条件的SQL语句
dw_1.setsqlselect(newsql)
ourola 2008-12-14
  • 打赏
  • 举报
回复
楼上正解~
补充:
防SQL注入攻击:
string wheresql,newsql
wheresql = "where mz_cf.blbh like ' " +sle_1.text+" ' "
newsql = wheresql
如果sle_1.text中的内容是[' or 1=1'],结果自己想。
liubocy 2008-12-13
  • 打赏
  • 举报
回复
String ls_Sql, ls_OldSql

ls_OldSql = dw_1.GetSQLSelect()
ls_Sql = " WHERE mz_cf.blbh like '%" + sle_1.Text + "%'"
dw_1.SetSQLSelect( ls_OldSql + ls_Sql )
dw_1.Retrieve()
dw_1.SetSQLSelect( ls_OldSql )
本系统的设计重点 主要介绍了在PowerBuilder中全局变量、实例变量、共享变量和局部变量的用法。另外,还介绍了在多数据窗口中进行数据检索的三种方法: 其中第一种方法是通过PB的函数SetSQLSelect来设置数据窗的语法,这种方法一般都是在数据窗连接数据库后,通过函数GetSQLSelect来得到数据窗的原始语法,然后通过用户输入的条件生成WHERE条件,再将原始语法和WHERE条件结合起来生成一条SQL语句,最后通过SetSQLSelect函数将SQL语句赋值给数据窗,让数据窗重新检索;第二种方法是通过Filter函数来设置数据窗,这种方法是通过用户输入的条件生成过滤语句,然后利用SetFilter函数将过滤语句赋值给数据窗,最后利用Filter函数来过滤数据窗;第三种方法是建立数据窗对象时在数据窗对象上建立检索参数,然后在程序中通过附带参数的Retrieve函数来检索数据。比较这三种方法,第一种最灵活,最易于使用,但是必须在数据窗连接到数据库后得到数据窗的原始语法;第二种使用起来也比较灵活,但是只能对数据窗中的一个字段进行过滤检索;第三种方法比较简单,使用起来不需要太多的技巧,但是不太灵活,在改变检索条件的时候需要修改数据窗。 系统要完成的任务 ˉ 院系专业设置。 ˉ 院系专业查询。 ˉ 学生档案录入。 ˉ 学生档案查询。 ˉ 课程设置。 ˉ 选课管理。 ˉ 成绩录入。 ˉ 按学生查询成绩。 ˉ 按课程查询成绩。 ˉ 系统管理。

611

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder DataWindow
社区管理员
  • DataWindow社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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