我在动态创建的数据窗口中修改,并提交修改结果,但是失败,这是为什么?
我创建了一个动态数据窗口
现在我修改了一个列的数据,想把修改的结果保存到数据库。但是不行。请指点指点
string str_err_sql,str_err_create,str_sql,str_syntax,is_table,is_class
str_sql="select xm,xh,zy,bh from "+tablename+" where bh='"+is_class+"'"
//生成SELECT语句对应的GRID的数据窗口语法
str_syntax=SQLCA.SyntaxFromSQL(str_sql,'style(type=Grid)',str_err_sql)
if len(str_err_sql)>0 then
messagebox("错误!","取得SQL语法时出错"+str_err_sql)
return
else
dw_1.create(str_syntax,str_err_create)
if len(str_err_create)>0 then
messagebox("错误!","创建数据窗口时出错!")
else
//ll_modifystr="DataWindow.Table.UpdateTable = '"+tablename+"'"
//修改数据窗口的属性使之美观
dw_1.Modify("DataWindow.Color = 15780518")
dw_1.Modify("DataWindow.header.height = 80 DataWindow.header.color='536870912'" )
dw_1.Modify("DataWindow.summary.height = 0 DataWindow.summary.color='536870912'" )
dw_1.Modify("DataWindow.footer.height = 0 DataWindow.footer.color='536870912'" )
dw_1.Modify("DataWindow.detail.height = 84 DataWindow.detail.color='536870912'" )
//修改xm,xh,zy,bh的列标题属性
dw_1.modify("xm_t.alignment='2' xm_t.text='姓名' xm_t.font.face='宋体' xm_t.font.height='-12' xm_t.height='70' xm_t.color='16711935' xm_t.background.mode='1'")
dw_1.modify("xh_t.alignment='2' xh_t.text='学号' xh_t.font.face='宋体' xh_t.font.height='-12' xh_t.height='70' xh_t.color='16711935' xh_t.background.mode='1'")
dw_1.modify("zy_t.alignment='2' zy_t.text='所读专业' zy_t.font.face='宋体' zy_t.font.height='-12' zy_t.height='70' zy_t.color='16711935' zy_t.background.mode='1'")
dw_1.modify("bh_t.alignment='2' bh_t.text='班级' bh_t.font.face='宋体' bh_t.font.height='-12' bh_t.height='70' bh_t.color='16711935' bh_t.background.mode='1'")
//修改xm,xh,zy,bh的列数据域属性
dw_1.modify("xm.Update=no xm.Edit.DisplayOnly=Yes xm.font.face='宋体' xm.font.height='-11' xm.color='16711680'")
dw_1.modify("xh.Update=Yes xh.Edit.DisplayOnly=no xh.font.face='宋体' xh.font.height='-11' xh.color='16711680'")
dw_1.modify("zy.Update=No zy.Edit.DisplayOnly=Yes zy.font.face='宋体' zy.font.height='-11' zy.color='16711680'")
dw_1.modify("bh.Update=No bh.Edit.DisplayOnly=Yes bh.font.face='宋体' bh.font.height='-11' bh.color='16711680'")
dw_1.settransobject(sqlca)
dw_1.retrieve()
end if
end if
pb_1
ll_modifystr="DataWindow.Table.UpdateTable = '"+tablename+"'"
//将表修改为可更新表
dw_1.Modify(ll_modifystr)
dw_1.modify("xh.Update=Yes")
//逐行修改生成学号
for is_row=1 to dw_1.rowcount()
dw_1.setitem(is_row,"xh",is_row)
next
IF dw_1.update()=1 THEN
COMMIT USING SQLCA;
messagebox("数据库执行情况","学号生成成功!")
ELSE
ROLLBACK USING SQLCA;
messagebox("数据库错误!", SQLCA.SQLErrText, Exclamation!)//显示出错信息
end if