在pb代码中如何实现update sysobjects
大家知道想要更新系统表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;