1. 关于PB中用sql语句in的用法,该怎么解决
If...Then...Else 语句
根据表达式的值有条件地执行一组语句。
语法
If condition Then [statements][Else elsestatements]
或者,可以使用块形式的语法:
If condition Then
[statements]
[ElseIf condition-n Then
[elseifstatements] ...
[Else
[elsestatements]]
End If
If...Then...Else 语句的语法具有以下几个部分:
部分 描述
condition 必要参数。一个或多个具有下面两种类型的表达式:
数值表达式或字符串表达式,其运算结果为 True 或 False。如果 condition 为 Null,则 condition 会视为 False。
TypeOf objectname Is objecttype 形式的表达式。其中的 objectname 是任何对象的引用,而 objecttype 则是任何有效的对象类型。如果 objectname 是 objecttype 所指定的一种对象类型,则表达式为 True,否则为False。
statements 在块形式中是可选参数;但是在单行形式中,且没有 Else 子句时,则为必要参数。一条或多条以冒号分开的语句,它们在 condition 为 True 时执行。
condition-n 可选参数。与 condition 同。
elseifstatements 可选参数。一条或多条语句,它们在相关的 condition-n 为 True 时执行。
elsestatements 可选参数。一条或多条语句,它们在前面的 condition 或 condition-n 都不为 True 时执行。
2. pb中如何调用SQL语句中的EXISTS函数
都4年多了,我来回答吧,在PB中不支持EXISTS(select * from tab where 。。。)
要写成
select count(*) into :ll_count1 from tab where 。。。
if (ll_count1>0) then
。。。。
end if
3. pb 数据窗口中的 setsqlselect() 函数
setsqlselect() 函数:
获取数据窗口的select语法。
定义一个字符变量:
string ls_sql
ls_sql = dw_1.getsqlselect()
用来拼接查询条件,这样可以不使用参数的形式动态拼接查询条件来查询。
要配合setsqlselect()函数一起使用。
先get出来,然后对ls_sql进行加工修改后,再dw_1.setsqlselect()重新给回去,那么这个dw_1的后台语法就改变了,直接dw_1.retrieve(),就能按照新语法取值了。
这个修改的时候,只能修改where条件order by等。列的名字和个数,顺序,都不能做任何改动。
4. PB中的数据窗口的数据源SQL语句在哪
菜单 design - data source 就可以看到了,如果看到得是数据表,再点菜单中的design - convert to syntax,要返回点return按钮
5. 如何在PB中写sql语句查询数据
首先在ID上创建聚集索引是必须的。
如果ID是连续的,楼上的的用id来限定语句范围是很快的。
如果id不是连续的,楼主的语句使用了not in,一般这样效率是很低的。
可以把语句改成
select top M *
from table
where id> (select max(id) from (select top N id from table order by id) a)
order by id
这样可以一定程度上提高一些性能。
比如我的表中有300多万条记录,使用楼主的语句执行时间需要9秒多,而用我的语句3秒多。
6. 如何在PB中使用SQL语句实现输出一个表的前5行,按某列降序排列
你的后台数据库是什么库?
这个和PB的关系还真不大,关键还是您使用数据库的选择前N行的语法决定的。
只要通过修改数据窗口的语法就可以了。语法和所连接的数据库选择前N行语法一直。
SQLSERVER使用top 5
ORACLE使用where rownum <= 5
MYSQL使用limit 0,5
这个选择输出前5行,不是PB的功能,而是数据库查询语法实现的。
如果您指的不是数据窗口,而是PB的语法查询,那么PB的DATABASE菜单中选择ISQL SESSION这个地方,在上面写入语法,点击执行按钮就可以查询。
7. PB与SQL数据库的连接问题
你有源代码么?如果有源代码,看看这个客户端连接数据库的SQLCA参数是怎么设置的。
一般的软件会有几种方法:
第一是写死在程序中,直接设置SQLCA的相关参数,不过这样的配置,可移植性就差了。如果更换服务器的地址或迁移数据库,所有客户端的程序都要重新下载,而且要重新修改源代码。
第二种事写在注册表中,在注册表中增加一项,这里面存储着SQLCA的连接参数,服务器地址,数据库用户名密码。
第三种是使用配置文件,一般在程序目录下会有一个'.ini'后缀名的文件,这里面存储着SQLCA的参数,修改这些,就可以修改登录时连接服务器的指向了。
你首先要搞清楚你的ERP客户端,是通过哪种方式读取配置的,然后只要修改配置就好了。因为你的PB已经连通,表明你是可以连接数据库的,所以只要使客户端登陆的时候,指向数据库就好。
8. PB中sql语句初值
oldsql 就是个变量,和你的newsql一样的
比如 oldsql = "where name = '123'"
newsql=oldsql+"and kinds.name ='"+ls_tushufenlei+"'"
那么最终 newsql 就等于 where name = '123' and kinds.name ='"+ls_tushufenlei+"'"
(ls_tushufenlei也是个变量)
9. PB数据窗口中SQL语句动态LIKE后边加参数如何加
like后面可以实现模糊查询 它与通配符一起使用
SQL中的通配符中有下面四种:
% ;
_ ;
[ ] ;
[^]
10. 新手提问:PB中如何执行sql语句
PB 的脚本中可以直接嵌入SQL语句,变量引用使用":"号做前缀。
比如
string ls_name
select t_name into :ls_name from table_test ;