PB中执行sql文件问题,请各位大虾帮忙,答对的给100分!!

随波逐流JustGoWithIt 2003-09-19 10:08:07
我用文本编辑器建立的一个sql文件:base.sql的文件
内容如下:
if exists(select * from sysobjects where name='SYCONFIG' and type='U')
drop table SYCONFIG

create table SYCONFIG
(F_KEY char(16) not null,
F_VALUES char(255) default '',
F_NOTE char(60) null)
;
create unique index SYCONFIG on SYCONFIG(F_KEY)
;

insert into SYCONFIG
values('001','Y');
insert into SYCONFIG
values('002','Y');

问题是在PB中怎样执行SQL文件,在数据库里建表,并向表中插入数据?在pb中调用建立数据库的SQL行不行,该如何解决?如何读取多个*.sql文件的内容并执行它。
...全文
171 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
zonyonq 2010-06-05
  • 打赏
  • 举报
回复
前面回答都文不对题. 我也在找执行SQL文本文件的方法,关注!
wyb0026 2003-09-19
  • 打赏
  • 举报
回复
你把*.sql文件内容写到字符串变量中 ls_sql
ls_sql='exec('+ls_sql+')'
execute immediate :sql
(只限于sqlserver )
wyb0026 2003-09-19
  • 打赏
  • 举报
回复
用pb把文本文件导入变量ls_sql 变以下 ls_sql='exec('+ls_sql+')'
在pb总动态执行此 ls_sql (只限于sqlserver)
Jupiterrr 2003-09-19
  • 打赏
  • 举报
回复
呵呵,只要你把sql文件运行在SQL server上,生成一个存储过程。然后可以在PB中调用它,格式为:
Declare psjfx Procedure For p_sjfxcl_preview_a
@l_startdate=:l_startdatetime,@l_enddate=:l_enddatetime;
Execute Psjfx;
其中p_sjfxcl_preview_a为存储这程的名字,两个@为两个传递参数。
happy_0325 2003-09-19
  • 打赏
  • 举报
回复
你把*.sql文件写到字符串变量中
string sql
sql=''
execute immediate :sql;
  • 打赏
  • 举报
回复
如果后台是ms sql server 如何执行*.sql文件,具体说明一下好吗?如何读取*.sql文件,读一行,怎么读?
zhouweiwansui 2003-09-19
  • 打赏
  • 举报
回复
pb一次只能执行一行动态sql
execute immediate :ls_sql using transaction就可以了
执行sql文件好象不可以,那是dbms提供的功能,非标准
你只能从sql文件中读取sql,然后按照';'分解成sql串执行.
记得一个sql文件一定在一个事务里执行.
smartstarchen 2003-09-19
  • 打赏
  • 举报
回复
可以使用 "kernel32" 中的winexec()来执行一个文件。
wxyyzy 2003-09-19
  • 打赏
  • 举报
回复
up
wxyyzy 2003-09-19
  • 打赏
  • 举报
回复
up
donnatian 2003-09-19
  • 打赏
  • 举报
回复
gz
鸡翅多 2003-09-19
  • 打赏
  • 举报
回复
synix(软件蓝领) ( ) 信誉:100 2003-09-19 14:25:00 得分:0


csdn就没高手吗


真怀疑你的4个角是怎么来的!!!
chengjian 2003-09-19
  • 打赏
  • 举报
回复
胡说,上面的方法都不错
  • 打赏
  • 举报
回复
csdn就没高手吗

398

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 非技术版
社区管理员
  • 非技术版社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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