DBGRID1的DATASOURCE属性是DATASOURCE1
DATASOURCE1的DATASET属性是adoquery1
有一个增加记录的按钮,代码如下:
strsql:='insert into table(name,phone) values(''张三'',''12345678'')';
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add(strsql);
adoquery1.ExecSQL;
datasource1.DataSet.Close;
datasource1.DataSet.Open;
结果提示:'当前提供程序不支持从单一执行返回多个记录集'.
应该如何解决呢?
5 个解决方案
#1
DBGRID1是用来显示查询的数据,你为什么要连接adoquery1插入数据集呢?这明显是个错误,DBGRID1要连接一个adoquery2的查询数据集.在adoquery2的SQL里你再写查询语句"select * from table1"
#2
datasource1.DataSet.Close;
datasource1.DataSet.Open;
也要删除掉
datasource1.DataSet.Open;
也要删除掉
#3
78hgdong
你的方法是重新查询一遍,而不是刷新,我希望刷新后的结果是,光标要定位在刚才新增加的那一条纪录上,而不是光标定位在第一条记录上.
你的方法是重新查询一遍,而不是刷新,我希望刷新后的结果是,光标要定位在刚才新增加的那一条纪录上,而不是光标定位在第一条记录上.
#4
刷新前保存关键字段值 刷新后ado.Locate('关键字段名',保存起来的值,[]);
#5
vName := adoquery1.fieldbyName('name').asString;
datasource1.DataSet.Close;
//插入数据
strsql:= 'insert into table(name,phone) values( ' '张三 ' ', ' '12345678 ' ') ';
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add(strsql);
adoquery1.ExecSQL;
//刷新数据
strsql:= 'select name,phone from table';
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add(strsql);
adoquery1.Open;
//定位原位置
adoquery1.Locate( 'name',vName,[]);
datasource1.DataSet.Open;
datasource1.DataSet.Close;
//插入数据
strsql:= 'insert into table(name,phone) values( ' '张三 ' ', ' '12345678 ' ') ';
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add(strsql);
adoquery1.ExecSQL;
//刷新数据
strsql:= 'select name,phone from table';
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add(strsql);
adoquery1.Open;
//定位原位置
adoquery1.Locate( 'name',vName,[]);
datasource1.DataSet.Open;
#1
DBGRID1是用来显示查询的数据,你为什么要连接adoquery1插入数据集呢?这明显是个错误,DBGRID1要连接一个adoquery2的查询数据集.在adoquery2的SQL里你再写查询语句"select * from table1"
#2
datasource1.DataSet.Close;
datasource1.DataSet.Open;
也要删除掉
datasource1.DataSet.Open;
也要删除掉
#3
78hgdong
你的方法是重新查询一遍,而不是刷新,我希望刷新后的结果是,光标要定位在刚才新增加的那一条纪录上,而不是光标定位在第一条记录上.
你的方法是重新查询一遍,而不是刷新,我希望刷新后的结果是,光标要定位在刚才新增加的那一条纪录上,而不是光标定位在第一条记录上.
#4
刷新前保存关键字段值 刷新后ado.Locate('关键字段名',保存起来的值,[]);
#5
vName := adoquery1.fieldbyName('name').asString;
datasource1.DataSet.Close;
//插入数据
strsql:= 'insert into table(name,phone) values( ' '张三 ' ', ' '12345678 ' ') ';
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add(strsql);
adoquery1.ExecSQL;
//刷新数据
strsql:= 'select name,phone from table';
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add(strsql);
adoquery1.Open;
//定位原位置
adoquery1.Locate( 'name',vName,[]);
datasource1.DataSet.Open;
datasource1.DataSet.Close;
//插入数据
strsql:= 'insert into table(name,phone) values( ' '张三 ' ', ' '12345678 ' ') ';
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add(strsql);
adoquery1.ExecSQL;
//刷新数据
strsql:= 'select name,phone from table';
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add(strsql);
adoquery1.Open;
//定位原位置
adoquery1.Locate( 'name',vName,[]);
datasource1.DataSet.Open;