如何在程序中用动态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