Delphi数据库问题

120 2000-02-26 08:19:00
后台Interbase 用户user1 只有select 没有修改删除功能,前端Delphi,用datasource,table ,DBNavigator,DBGrid 连接,当运行时,发现如果执行修改删除增加功能,系统报错(权限不够),怎样捕捉错误,或者用其他的方法?
...全文
286 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
sess 2000-03-01
  • 打赏
  • 举报
回复
table 适合桌面数据库,不太适合有权限的数据库的管理,建议用TQuery和TDataBase更换,捕捉错误只有try...except
Lin 2000-02-29
  • 打赏
  • 举报
回复
设置Table的ReadOnly属性为True也行,而Query一般来说是ReadOnly的。
w102272 2000-02-29
  • 打赏
  • 举报
回复
还是使用Tquery来控制比较好。
不要使用Dbnavigator这类控件。
也不要等错误发生后,在BeforePost,BeforeDelete捕获,因为如果这样做,后很多的
后期处理就很麻烦。
supershan 2000-02-28
  • 打赏
  • 举报
回复
table有两个事件,BeforePost,BeforeDelete你可判断用户名进行处理,如下:
procedure TForm1.Table1BeforePost(DataSet: TDataSet);
begin
Abort;
end;

procedure TForm1.Table1BeforeDelete(DataSet: TDataSet);
begin
Abort;
end;
rss 2000-02-28
  • 打赏
  • 举报
回复
用户名为:SYSDBA
sadpacific 2000-02-28
  • 打赏
  • 举报
回复
简单的方法:就是设置TTable的ReadOnly属性为True,这样,用户就不可以进行任何的
Edit、Insert了。
Supershan的也不失一种好方法。
spring 2000-02-27
  • 打赏
  • 举报
回复
建议你不要用table,因为当运行时,好象会把这个表锁定,会导致其它客户端等待而死机
Firing_Sky 2000-02-27
  • 打赏
  • 举报
回复
同意spring的看法,怀疑你是同时有两个进程在操纵同一个表
CJ 2000-02-27
  • 打赏
  • 举报
回复
在onposterror,ondeleteerror等事件中截获即可
120 2000-02-27
  • 打赏
  • 举报
回复
only one
120 2000-02-26
  • 打赏
  • 举报
回复
一句程序都不写,拖完控件运行,就出问题,但用Query好象就没有这个问题?为什么?
Firing_Sky 2000-02-26
  • 打赏
  • 举报
回复
我觉得你在前台应用程序就应该限制无权限用户的删除功能。
另外,用try ... except 不能捕获这个错误吗?

2,495

社区成员

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

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