怎么获取SQL语句执行的结果?

sybase2000 2011-05-15 12:57:44
一个SQL语句里面的 where 后的条件是动态变化的(比如有可能是“金额大于1”,也有可能是“数量小于10),想通过代码执行该SQL,并获取该结果(该结果有可能是一行,也有可能是多行数据)
...全文
447 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
jjoulejcc 2011-08-17
  • 打赏
  • 举报
回复
动态创建数据存储,或者动态修改数据窗口对象的SQL
gong_max 2011-07-09
  • 打赏
  • 举报
回复
用了PB这么多年,感觉还是初学者。唉
路人甲cw 2011-07-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 yyoinge 的回复:]

用数据存储
C/C++ code
datastore lds
string ls_sql
string error_syntaxfromSQL, error_create
string ls_syntax
long i
ls_sql = "select col1, col2 from t_table where je > 0"
lds = create datastore

ls_synta……
[/Quote]
这个方法不错!
A啦Dbit 2011-06-29
  • 打赏
  • 举报
回复
结贴吧
alex_wxj 2011-06-27
  • 打赏
  • 举报
回复
來看看,順便 學 習
yejihui9527 2011-06-25
  • 打赏
  • 举报
回复
如果列名不变的话 getsqlselect;
如果要重构数据窗口的话 这个则需要取出数据窗口的所有代码描述放到字符串里里面,这个就像export出来用记事本打开替换你想要的东西一样。
ribut9225 2011-06-25
  • 打赏
  • 举报
回复
string ls_sql
string ls_syn,ls_err

ls_sql = " SELECT aa,bb cc FROM tab_1 WHERE aa='01' " //这里的字符串可以动态构造
//生成数据窗口语法
ls_syn = SQLCA.SyntaxFromSQL(ls_sql,'Style(Type=Grid),ls_err)

if len(ls_err)>0 then
MessageBox("提示","生成语法失败")
return
end if

dw_1.Create(ls_syn,ls_err)
if len(ls_err)>0 then
MessageBox("提示","创建数据窗口失败")
return
else
dw_1.SetTransObject(SQLCA)
dw_1.Retrieve()
commit;
//检索数据完成,可以进行操作
...
end if
ribut9225 2011-06-25
  • 打赏
  • 举报
回复
使用动态SQL语句
或者动态创建数据窗口

建议还是动态创建数据窗口不错
jksby 2011-06-24
  • 打赏
  • 举报
回复
使用动态sql语句就可以,仔细看帮助
wag_enu 2011-05-15
  • 打赏
  • 举报
回复
还有一种方法就是用getsqlselect 和setsqlselect
yyoinge 2011-05-15
  • 打赏
  • 举报
回复
用数据存储
datastore lds
string ls_sql
string error_syntaxfromSQL, error_create
string ls_syntax
long i
ls_sql = "select col1, col2 from t_table where je > 0"
lds = create datastore

ls_syntax = sqlca.SyntaxFromSQL(ls_sql, 'Style(Type=Grid)', error_syntaxfromSQL)

IF Len(error_syntaxfromSQL) > 0 THEN
messagebox("",'生成数据存储语法发生错误!~r~n错误原因:' + error_syntaxfromSQL)
destroy lds
return -1
ELSE
lds.Create(ls_syntax, error_create)
IF Len(error_create) > 0 THEN
f_message( '建立数据存储时发生错误!~r~n错误原因:' + error_create)
destroy lds
return -1
END IF
END IF
//此时lds中存储的就是通过ls_sql获得的数据,可能是1行也可能是多行,行数对应lds.rowcount()
//
for i = 1 to lds.rowcount()
//第i行的col1的值
lds.object.col1[i]
//第i行的col2的值
lds.object.col2[i]
next
destroy lds

743

社区成员

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

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