我选中了网格里面的某条记录、然后想把它删除、代码如下
我用的是Query组件、数据库是SQL2000
代码如下:
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
Query1.requestLive:=true;
Query1.Delete;
end;
怎么提示说:table is read only啊 /我没用到table啊、怎么搞的
我用的是Query组件、数据库是SQL2000
代码如下:
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
Query1.requestLive:=true;
Query1.Delete;
end;
怎么提示说:table is read only啊 /我没用到table啊、怎么搞的
解决方案 »
- FlowPanel内控件的ControlIndex属性
- 封包里含有字符串,长度不定,如何去构造封包
- 关于TREEVIEW控件问题.
- 请问 在 internet 中一台机子中的应用程序对另一台机子上的数据库表进行查询?
- runtime error 216 at 00002E10
- 如何制作向 TActionList -> TAction 这样的控件?
- 关于内存流的使用!
- 我的TListView控件的checkboxes选择了true,即在每一行前加复选框,如何使点击某一行的checkbox,行焦点也随之变为这一行?
- 请问如何安装个组件?为什么我安装个组件后,每次运行后都说找不到该组件的.dcu文件,而我必须是重新Install Component后才可使用,还有我下了个XPMenu,怎么用?
- blob字段加载出错,请大家指点迷津!!!
- 如何实时判断client与server相连,如网络不通如何关闭程式
- fastnet控件问题
然后在
procedure TForm1.Table1FilterRecord(DataSet: TDataSet;
var Accept: Boolean);
beginend;
中写过滤条件
Query1.requestLive := True;
同时对Query1的语句也有限制,如不能有连接、Order By
控件一放上去就Query1.requestLive:=true然后不变。你可以通过设置表格的ReadOnly来设置只读状态,没必要设置齐相关的Query1的
状态。
query1.sql.text:='delete tablename where 条件';
query1.execsql;
好处是:
1.直接,简单明了,不必考虑众多因素;
2.效率高——还有比这更快的方法吗?我想没有了;
设置requestLive相当于使用table,会把整个表的数据读出来,是最低效的查询方法,建议你不要使用;
3.通用。适用于各种数据库。
query2.sql.text:='delete tablename where ID='''+query1.FieldByName('ID').asstring+'''';
query2.execsql;