ado数据库连接问题(100分)

  • 主题发起人 主题发起人 苦海无边
  • 开始时间 开始时间

苦海无边

Unregistered / Unconfirmed
GUEST, unregistred user!
ADo问题请教
我有两个数据库
我把所有的adodataset都放到了data modules里

然后在一个dbgird的ondblclick的过程里写了如下代码
with ADOQLook do
begin
sql.Clear;
sql.add('insert into Dishlook (Dish_name)');
sql.add('values (:name)');
Parameters.parambyname('name').value:=eatdata.ADODataDishDish_name.Value;
execsql;
end;

往另外的一个用adoquery连接的表里插数据
却出现了这样的问题
如果
我把data modules里的与adoqlook连接的dataset的active:=true和adoqlook.active:=true;
执行的时候
就会说
adoqlook:cannot perform this operation no a open dataset
如果
我把dataset的active:=false;
把adoqlook.active:=true;
那么,和adoqlook连接的dbgird没有反应(但是,再access里面看数据库,数据以插到表格里了)
如果我把
我把dataset的active:=true;
把adoqlook.active:=false;
也是和adoqlook连接的dbgird没有反应(但是,再access里面看数据库,数据以插到表格里了)
这是咋回事阿
我把adoqlook.refalsh也不行。

我应该如何做才能实现 通过鼠标双击,就个一把这个表里的数据天到另外的一个表里
而且可以通过dbgrid看到。
谢谢各位了[:(]
 
哇!看得眼花。
不过提醒一点:数据集打开的时候(active=true)不能修改它的SQL语句,另外,如果某个
数据集DisableControl了,那么连接它的数据感应控件就不会和数据联动。
 
1.因为ADOLook执行的是Insert语句,所以只能用ExecSql方法,你再使用Active,就相当于执行Open方法,当然就会出错了。
2.如果Active=False,则数据集关闭,对应的DBGrid也就取不到数据了。
 
我想实现数据联动效果
要如何去做呢
 
在源DBGrid的OnDoubleClick事件中写入代码:
1、目标DataSet.DisableControls;
2、用一个ADOQuery写入Insert语句;
3、目标DataSet.Refresh;//据杜宝杜老大所说,使用Refresh有时候效果并不是很好,不如用ReQuery或Open/Close方法
4、目标DataSet.EnableControls;
 
问题解决了
是我的数据连接有问题
谢谢2位
 
谢谢啦
yntw感谢你啊

我知道我的问题的毛病了

完全是个人问题

现在解决了

不过还是要谢谢
这点分
就分了
 
后退
顶部