新手提问:PB中如何执行sql语句

时间:2021-12-02 11:19:53
我是从delphi转过来的,对于PB中直接执行sql语句不明白,我看到的都是数据窗口来执行,我原来在delphi中都是直接执行,然后根据接过来处理数据,如:
sqlclause=select * frm table where ....
query.sql.add(sqlclause)
query.open

while not query.eof do
  a=query.fieldbyname('filedname').asstring
或者得到记录数
  query.recordcount


这些在pb中怎么写啊?不用数据窗口

10 个解决方案

#1


各位大哥帮忙啊,急用

#2


select count(*) into :变量 from table where ....
就可以了!


#3


游标或者datastore + 动态数据窗口。不过一般来说不要用游标,效率太低。
datastore uo_data
String ls_create, ls_err
String ls_sql

ls_sql = "select * from table where ...."
ls_create = sqlca.SyntaxFromSQL(ls_sql, "style(type=grid)", ls_err )
if len(ls_err) > 0 then
   MessageBox("错误", "SQL语句错误!")
   return
end if

uo_data = create datastore
uo_data.create(ls_create, ls_err)
if len(ls_err) > 0 then
   MessageBox("错误", "SQL语句错误!")
   destroy uo_data
   return
end if

uo_data.SetTransObject(sqlca)
uo_data.Retrieve()

取数据就用uo_data.GetItemXXX(row, "column")来取
记得最后要destroy uo_data

#4


楼上的没错,有数据窗口动态创建即可

#5


mark 


已阅


揭贴

呵呵

#6


一般执行SQL语句可用这种方法
ls_sql = "update 表 set ...."
execute immediate :ls_sql;

如果SQL返回结果集,而且你想取得结果集的话,一般用 li_d_s的方法比较好

#7


像Delphi中的

#8


说的差不多了啊。

#9


跟Delphi差不多。就是多了两个点。

#10


比delphi 简单, 直接写, 结尾加个分号
最后用 sqlca.sqlcode 的值来判断语句是否执行成功!

#1


各位大哥帮忙啊,急用

#2


select count(*) into :变量 from table where ....
就可以了!


#3


游标或者datastore + 动态数据窗口。不过一般来说不要用游标,效率太低。
datastore uo_data
String ls_create, ls_err
String ls_sql

ls_sql = "select * from table where ...."
ls_create = sqlca.SyntaxFromSQL(ls_sql, "style(type=grid)", ls_err )
if len(ls_err) > 0 then
   MessageBox("错误", "SQL语句错误!")
   return
end if

uo_data = create datastore
uo_data.create(ls_create, ls_err)
if len(ls_err) > 0 then
   MessageBox("错误", "SQL语句错误!")
   destroy uo_data
   return
end if

uo_data.SetTransObject(sqlca)
uo_data.Retrieve()

取数据就用uo_data.GetItemXXX(row, "column")来取
记得最后要destroy uo_data

#4


楼上的没错,有数据窗口动态创建即可

#5


mark 


已阅


揭贴

呵呵

#6


一般执行SQL语句可用这种方法
ls_sql = "update 表 set ...."
execute immediate :ls_sql;

如果SQL返回结果集,而且你想取得结果集的话,一般用 li_d_s的方法比较好

#7


像Delphi中的

#8


说的差不多了啊。

#9


跟Delphi差不多。就是多了两个点。

#10


比delphi 简单, 直接写, 结尾加个分号
最后用 sqlca.sqlcode 的值来判断语句是否执行成功!