怪事!

larryuan 2000-06-02 09:23:00
D5+sql server,在程序中,
创建一个表,用sa的身份都不能对其插入,修改,
总提示该表不存在。
但可以删除记录,而且奇怪的是在删除之后就可以插入和修改了,
这是为什么?

另:为什么不能同时赋给一个用户db_datareader和db_datawriter角色?
...全文
132 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
larryuan 2000-06-03
  • 打赏
  • 举报
回复
同样的操作,对默认库pubs中的表就可以操作。
而对我建的库sample中的表xx就出问题。
with query1 do
begin
Close;
SQL.clear;
sql.add('use sample');
execsql;

Close;
sql.clear;
sql.add('select * from xx');
open;
end;
可以查询到,表出现在dbgrid中,但有上边我说的那个问题。
但。。。。。
with query1 do
begin
Close;
SQL.clear;
sql.add('use sample');
execsql;

Close;
sql.clear;
sql.add('select * from xx');
open;

delete;//@#$%^&^&%$#
end;
这样就可以在dbgrid中执行任何操作了?!
我想的这个解决方法有点可笑。

我是用database,query,datasoruse,dbgrid.

我感觉原因好象出现在“当前库”上。
用use sample似乎不能真正改变当前库从pubs到sample,
而delete后,就使当前库变为sample了。
是不是要用database的什么方法改变当前库?
sundyl 2000-06-03
  • 打赏
  • 举报
回复
能把这一段程序发上来给大家看一下吗?
larryuan 2000-06-03
  • 打赏
  • 举报
回复
to l2000:
sql explorer可以操作
D中我是用dbgrid和dbnavigitor操作,
只能查询和删除,不能插入和修改,
可只要删除一条记录,就可以做其他操作了。
在程序中,我没用query.open输入语句,用的是query的方法。
所有的只度属性都已取消了.
不用query,改用table也是一样。
总提示该表不存在?
larryuan 2000-06-03
  • 打赏
  • 举报
回复
天哪,原来是因为ODBC设的默认库是pubs!害得我。。。

但如何在程序中改变默认库呢?
因为我的库是在程序中动态建的。
l2000 2000-06-02
  • 打赏
  • 举报
回复
请先在SQL EXPLORER 中用你的SQL SERVER的别名或驱动程序连接数据库,
再用SQL EXPLORER中的SQL 输入框进行SQL的执行.如果成功说明DELPHI是
支持这种操作的,可能是你犯了一些低级错误导致不能插入和删除,对了!
还要提醒你在做除了SELECT 以外的SQL 语句的时候一定要用EXCSQL,而不能
用QUERY.OPEN.

5,379

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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