加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

powerbuilder 中,自动执行批量建表、存储过程。。。(sqlserver

发布时间:2020-12-12 14:48:02 所属栏目:MsSql教程 来源:网络整理
导读:-------------------------------------------------------- integer li_file string ls_filename ls_filename=gs_cur_path+"sql.sql" ? ?-----------------由sqlserver中生成的脚本 li_file=fileopen(ls_filename,LineMode! ) integer ?li_return string l

--------------------------------------------------------

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读