在pb代码中如何实现update sysobjects

xister 2008-04-17 11:43:22
大家知道想要更新系统表sysobjects在查询分析器中可用
sp_configure 'allow updates',1
reconfigure with override
go
update sysobjects set crdate='2003-12-14' where id=10
go
sp_configure 'allow updates',0
reconfigure with override
可以上这些代码我如何在PB 中写代码来实现呢?
以下是我定的代码不过不能执行成功,请高手指点。
DECLARE sp_ca PROCEDURE FOR sys.sp_configure
@configname = 'allow updates',
@configvalue = 1 ;
execute sp_ca;
if sqlca.sqlcode=-1 then
gs_error=sqlca.sqlerrtext
rollback;
messagebox('error',gs_error)
return -1
end if
ls_sql="reconfigure with override"
EXECUTE IMMEDIATE :ls_sql using sqlca;

update sysobjects set crdate='2003-12-14' where name='gdzc_yw_pjtj';
//此种写法PB中就不能compile,提示“DATABASE C0038:不允许对系统目录即席更新”
if sqlca.sqlcode=-1 then
gs_error=sqlca.sqlerrtext
rollback;
messagebox('error',gs_error)
return -1
end if

ls_sql="update sysobjects set crdate='2003-12-14' where name='gdzc_yw_pjtj' "
EXECUTE IMMEDIATE :ls_sql using sqlca;
//这种写法执行没有效果

DECLARE sp_cb PROCEDURE FOR sys.sp_configure
@configname = 'allow updates',
@configvalue = 0 ;
execute sp_cb;
if sqlca.sqlcode=-1 then
gs_error=sqlca.sqlerrtext
rollback;
messagebox('error',gs_error)
return -1
end if
ls_sql="reconfigure with override"
EXECUTE IMMEDIATE :ls_sql using sqlca;
...全文
95 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
mark
青锋-SS 2008-04-18
  • 打赏
  • 举报
回复
sqlca.autocommit = true
编程夜猫 2008-04-18
  • 打赏
  • 举报
回复
写个存储过程,再用PB调。。试试

752

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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