点击后从一个表中读纪录作为新表的列,这段代码为啥不行?

cn03dq 2003-12-18 03:27:06
string thiscolumn,sqlstatement,thisgzb,temp
integer i,endnumber

thisgzb="CREATE TABLE GZB0311"&
+"(序号 NUMBER(3) NOT NULL)"

execute immediate :thisgzb;

//从工资项目表中选取纪录
sqlstatement="SELECT * FROM 工资项目表"

PREPARE SQLSA FROM :sqlstatement;
DESCRIBE SQLSA INTO SQLDA;
DECLARE my_cursor DYNAMIC CURSOR FOR SQLSA;
OPEN DYNAMIC my_cursor USING DESCRIPTOR SQLDA;

endnumber=SQLDA.NumOutputs




for i=1 to endnumber
FETCH my_cursor USING DESCRIPTOR SQLDA;
thiscolumn=GetDynamicString(SQLDA,1)
temp="ALTER TABLE GZB0311 ADD(" +thiscolumn+"CHAR(50))"
execute immediate :temp;
next

CLOSE my_cursor;
...全文
39 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
banalman 2003-12-18
  • 打赏
  • 举报
回复

execute immediate :temp;
加入判断sqlca.sqlcode 的返回的数值。
mittee 2003-12-18
  • 打赏
  • 举报
回复
语法如下
ALTER TABLE doc_exc ADD column_b VARCHAR(20) NULL

代码里的alter是否没有分开

1,108

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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