我自动生成了一个数据库表,可是系统运行生成成功后总是要回到PB里更新数据库,才能看到新生成数据库表
我自动生成了一个数据库表,可是系统运行生成成功后总是要回到PB里更新数据库,才能看到新生成数据库表
而且我想要检测数据库表是否已经存在该表,如果不存在就新建,存在就覆盖,要怎么写程序呀?各位大侠帮帮忙,小女子初来,没有东西送。。。。
string ls_SQL_1
string ls_1
int i
for i=1 to dw_target_detail.rowcount()
ls_1=dw_target_detail.getitemstring(i,1)
ls_SQL_1=ls_SQL_1+ls_1+ ' integer null,~r~n '
end for
ls_SQL_1="CREATE TABLE pjnr "+&
"(学号 numeric(12) not null PRIMARY KEY,"+&
"姓名 char(12) not null,"+&
ls_sql_1+&
"总评 numeric(3) not null)"
EXECUTE IMMEDIATE :ls_SQL_1 USING sqlca;
commit;
if sqlca.sqlcode<>0 then
messagebox("","失败")
else
messagebox("","成功")
end if
[解决办法]
首先这个语句写得不错,学习了。
其次,你若要看见新表,得刷新一下数据库链接。在语句里刷新一下就OK了。
先,disconnect;
再 connect;
老哥若说错了,表见笑吖。
[解决办法]
数据窗口中的明细是评价明细吧,这样不太好,每学年的评价明细应该是有区别的,而表结构应该相对固定,只是通过学年、专业与评价明细的关系再组合查询出类似的效果;
一、删除已存在的表
ls_sql = "if( object_id('pjnr') is not null) drop table pjnr"
execute immediate :ls_sql;
二、在sqlca.sqlcode=0的时候commit;
create语句应该不需要commit的,不过如果有修改数据之类的都记得加这个,这要养成一个习惯