首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > PB >

怎么在程序中用动态sql语句创建视图?

2012-02-17 
如何在程序中用动态sql语句创建视图?急!在线等!如何在程序中用动态sql语句创建视图?急!在线等![解决办法]s

如何在程序中用动态sql语句创建视图?急!在线等!
如何在程序中用动态sql语句创建视图?急!在线等!

[解决办法]
stringMysqlMysql = "CREATE TABLE Employee "&
+"(emp_id integer not null,"&
+"dept_id integer not null, "&
+"emp_fname char(10) not null, "&
+"emp_lname char(20) not null)"
EXECUTE IMMEDIATE :Mysql USING SQLCA;
[解决办法]
一楼的兄弟太快了,楼主要的是创建视图的....
stringMysqlMysql = "CREATE VIEW Employee "& 
+"(emp_id,"& 
+"dept_id , "& 
+"emp_fname , "& 
+"emp_lname ) AS SELECT ..." 
EXECUTE IMMEDIATE :Mysql USING SQLCA;
需要注意的是,创建视图和创建表格还有点区别,
在创建表格时可以加一条判断语句
if not exists(select 1 from sysobjects where name='表格表' and xtype='U')
create tabel ...

但创建视图时不能这样,如果你的sql要重复执行,需要再执行创建视图的语句前再加一条判断是否存在,存在即删除的语句

if not exists(select 1 from sysobjects where name='视图' and xtype='V')
drop view ...

把上面的语句组成成字符串,再execute immediate 就可以了;

[解决办法]
在execute immediate :v_sql; 
后加判断一下messagebox(string(sqlca.sqlcode),sqlca.sqlerrtext)
[解决办法]

SQL code
select p_id, gx_name, hg_sum = sum(hg), bl_sum = sum(bl)from table where rdate between :ad_date1 and :ad_date2 group by p_id, gx_name 

热点排行