powerbuilder 中,自动执行批量建表、存储过程。。。(sqlserver数据库)
2011-12-31 11:37
267 查看
--------------------------------------------------------
integer li_file
string ls_filename
ls_filename=gs_cur_path+"\sql.sql" -----------------由sqlserver中生成的脚本
li_file=fileopen(ls_filename,LineMode! )
integer li_return
string ls_sql,ls_read
ls_sql=''
ls_read=''
hpb_1.Position=0
hpb_1.maxposition=50
li_return=fileread(li_file,ls_read)
DO UNTIL li_return <0
if upper(left(ls_read,2))='GO' then
if ls_sql<>'' then
ls_sql=ls_sql+';'
gf_exesql(ls_sql)-----------------------------------执行sql语句
hpb_1.Position=hpb_1.Position+1
yield()
ls_sql=''
end if
else
ls_sql=ls_sql+ls_read+'~r~n'
end if
li_return=fileread(li_file,ls_read)
LOOP
fileclose(li_file)
-------------------------------------------
-----------------------
gf_exesql ----------------------------------------
-------------------------------
STRING ls_t_sql,ls_sql
long ll_start_pos
int li_count
ls_t_sql=ls_filename //lsf 07-8-31 edit *************直接执行sql语句了
SQLCA.AutoCommit = True
//EXECUTE IMMEDIATE :ls_t_sql ; //里面有多条命令,是用;间隔的,直接执行不对 下面语句取出单条命令来,一一执行
ll_start_pos=pos(ls_t_sql,';',1)
do while ll_start_pos>0
ls_sql=left(ls_t_sql,ll_start_pos - 1)
EXECUTE IMMEDIATE :ls_sql ;
if sqlca.sqlcode<>0 then
messagebox('提示','数据库操作错误!(执行'+ls_sql+'时)~r~n'+sqlca.sqlerrtext)
rollback;
SQLCA.AutoCommit = false
//return false
end if
ls_t_sql=mid(ls_t_sql,ll_start_pos+1)
ll_start_pos=pos(ls_t_sql,';',1)
loop
SQLCA.AutoCommit = false//lsf 08-2-21 add
integer li_file
string ls_filename
ls_filename=gs_cur_path+"\sql.sql" -----------------由sqlserver中生成的脚本
li_file=fileopen(ls_filename,LineMode! )
integer li_return
string ls_sql,ls_read
ls_sql=''
ls_read=''
hpb_1.Position=0
hpb_1.maxposition=50
li_return=fileread(li_file,ls_read)
DO UNTIL li_return <0
if upper(left(ls_read,2))='GO' then
if ls_sql<>'' then
ls_sql=ls_sql+';'
gf_exesql(ls_sql)-----------------------------------执行sql语句
hpb_1.Position=hpb_1.Position+1
yield()
ls_sql=''
end if
else
ls_sql=ls_sql+ls_read+'~r~n'
end if
li_return=fileread(li_file,ls_read)
LOOP
fileclose(li_file)
-------------------------------------------
-----------------------
gf_exesql ----------------------------------------
-------------------------------
STRING ls_t_sql,ls_sql
long ll_start_pos
int li_count
ls_t_sql=ls_filename //lsf 07-8-31 edit *************直接执行sql语句了
SQLCA.AutoCommit = True
//EXECUTE IMMEDIATE :ls_t_sql ; //里面有多条命令,是用;间隔的,直接执行不对 下面语句取出单条命令来,一一执行
ll_start_pos=pos(ls_t_sql,';',1)
do while ll_start_pos>0
ls_sql=left(ls_t_sql,ll_start_pos - 1)
EXECUTE IMMEDIATE :ls_sql ;
if sqlca.sqlcode<>0 then
messagebox('提示','数据库操作错误!(执行'+ls_sql+'时)~r~n'+sqlca.sqlerrtext)
rollback;
SQLCA.AutoCommit = false
//return false
end if
ls_t_sql=mid(ls_t_sql,ll_start_pos+1)
ll_start_pos=pos(ls_t_sql,';',1)
loop
SQLCA.AutoCommit = false//lsf 08-2-21 add
相关文章推荐
- 如何让sql自动定时执行某个存储过程
- powerbuilder 中执行postgresql存储过程
- 不想人工干预地自动执行存储过程?当目的表发生变动时自动执行相应的存储过程?
- 自动执行存储过程
- sql server 自动执行存储过程
- 定时自动执行SQL存储过程
- 如何让sql自动定时执行某个存储过程
- 实现存储过程自动执行jobs
- MS SQl Server 为用户批量授与存储过程执行权限
- sql server 自动执行存储过程
- SQL server 定时自动执行SQL存储过程
- 在SQL SERVER中定时执行SQL语句,或者存储过程. &sql server 自动执行存储过程
- 创建存储过程并设置自动执行
- 在SQL Server启动时自动执行存储过程。第1/2页
- 在SQL Server启动时自动执行存储过程。第1/2页
- 存储过程批量执行脚本
- 存储过程自动执行
- 关于主键列执行批量删除单表数据的存储过程,
- LINQ TO Entity 执行存储过程(不能获得存储过程返回的0或1)
- mysql的navicat执行存储过程