一个很简单的数据插入问题

huazaijiajia 2003-06-24 11:52:59
我用Table做插入的时候没有任何问题,代码如下:
table1.Append;
table1.FieldByName('id').AsInteger:=strtoint(edit1.Text);
table1.FieldByName('店名').AsString:=edit2.Text;
table1.Post;
table1.Refresh;
可是用Query做同样的事
query1.Append;
query1.FieldByName('id').AsInteger:=strtoint(edit1.Text);
query1.FieldByName('店名').AsString:=edit2.Text;
query1.Post;
query1.Refresh;
确提示"cannot modify a read-only dataset" 不知道为什么会这样?
...全文
23 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
junerr 2003-06-25
  • 打赏
  • 举报
回复
要配合控件UpdateSQL使用
不过我觉得很麻烦

最好是用SQL来实现插入,例如
u
query1.sql.text:='insert into tab1 (id,店名) values ('''+edit1.text+''','''+edit2.text+''')';
query1.execsql;
dh9450 2003-06-25
  • 打赏
  • 举报
回复
QUERY是只读的 要么换ADO
要么 query.RequestLive设TRUE
huazaijiajia 2003-06-25
  • 打赏
  • 举报
回复
后台数据库是SQL Srever2000,我就对一个表进行插入,使用SQL语句可以这样写:
query1.Close;
query1.SQL.Clear;
query1.SQL.Add('insert into trying values(:id,:name)');
query1.ParamByName('id').AsInteger:=strtoint(edit1.Text);
query1.ParamByName('name').AsString:=edit2.Text;
query1.ExecSQL;
我是想Table可以用 append 和 post事件做插入,那Query也应该可以吧
ZWL007 2003-06-25
  • 打赏
  • 举报
回复
把你的SQL语句写出来,后台是什么数据库?
wooden954 2003-06-25
  • 打赏
  • 举报
回复
你的SQL查询的时候是不是引用了一张以上的数据表呢?如果是,ADo不知道怎么更新另一张表或同步另一张表所以才会不允许更新的
huazaijiajia 2003-06-25
  • 打赏
  • 举报
回复
用SQL我是会实现的,我是想搞懂用Query的事件怎么会不能插入呢
dh9450(谁有我菜):我把query.RequestLive设true了,还是提示同样的错误
query1.RequestLive:=true;
query1.Append;
query1.FieldByName('id').AsInteger:=strtoint(edit1.Text);
query1.FieldByName('店名').AsString:=edit2.Text;
query1.Post;
query1.Refresh;
到底怎么写才对?

2,497

社区成员

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

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