我把查询得到的结果显示在DBGRID中,然后在修改了其中的几个字段后把所有DBGRID中显示的所有数据(不管有没有修改)插入同一数据库,该怎么实现?
用FOR语句根据RECORDCOUNT吗?
用FOR语句根据RECORDCOUNT吗?
解决方案 »
- 关于idftp中下载的问题。
- 真正做过三层商用程序的进来看一下这个Borland公布的bug.
- 大家帮帮我这个菜鸟吧(数据库入门)
- 一个数据库转换的问题!
- 数据类型的转换?
- 500分求安易的FXPanel这个控件!
- 我使用quickRept组件做报表,通过TQuery,希望动态传入两个查询参数,可是报表结果的窗体是显示出来了,除此之外,发现还会显示一个该报
- 如何调试DLL?如何调试包?如何调试COM、COM+
- 请问各位,开发一个系统时,是怎样定义用户的角色的?例如该用户对系统的访问功能..
- sql语句查询问题?
- 击DBGrid的Title时取出这列对应的字段名
- 刚写完了一小套控件EAComps,看看吧
或者DBGRID.dataset.Update之类的,自己找找哦
可能是我没有说清楚,我的意思是在原来的基础上再增加那么多记录,不是修改原来的记录。
比如原来数据库中有100条,我查了30条,在改动后我要保持原来的100条不变的情况下怎么再加30条修改的?
用adoquery2.fieldbyname('xx').value:=adoquery2.fieldbyname('xx').value
这样一条一条添加记录就可以了
最后再adoquery2.post
就ok了
能告诉我怎么实现吗?具体谈一下,我比较菜啊
使用ADO连接ACCESSto drift1981(drift1981):
那如果我有1000条记录,速度会不会很慢?
procedure DoubleAll(DBGrid:TDBGrid);
var
DS1,DS2:TADODataSet;
i:Integer;
begin
DS1:=TADODataSet(DBGrid.DataSource.DataSet);
DS2:=TADODataSet.Create(nil);
DS2.Clone(DS1);
DS2.First;
with DS1 do
begin
while not DS2.Eof do
begin
Append;
for i:=0 to Fields.Count-1 do
begin
Fields[i].Value:=DS2.Fields[i].Value;
end;
Post;
DS2.Next;
end;
end;
DS2.Free;
end;
那我怎么更改其中的一项呢?比如我有个月份的字段,复制前是2004-07,复制后其他都不变,就把月份改为2004-08,能实现吗?
procedure DoubleAll(DBGrid:TDBGrid);
var
DS1,DS2:TADODataSet;
i:Integer;
begin
DS1:=TADODataSet(DBGrid.DataSource.DataSet);
DS2:=TADODataSet.Create(DBGrid.Owner);
DS2.Clone(DS1);
//定位要改的记录比如:DS2.Locate('key','666');
DS2.FieldByName('月份').AsString:='2004-08';
DS2.First;
with DS1 do
begin
while not DS2.Eof do
begin
Append;
for i:=0 to Fields.Count-1 do
begin
Fields[i].Value:=DS2.Fields[i].Value;
end;
Post;
DS2.Next;
end;
end;
DS2.Free;
end;
dateset not in edit or insert mode
//下面的代码满足你的要求。
procedure DoubleAll(DBGrid:TDBGrid);
var
DS1,DS2:TADODataSet;
i:Integer;
begin
DS1:=TADODataSet(DBGrid.DataSource.DataSet);
DS2:=TADODataSet.Create(DBGrid.Owner);
DS2.Clone(DS1);
DS2.First;
with DS1 do
begin
while not DS2.Eof do
begin
Append;
for i:=0 to Fields.Count-1 do
begin
if Fields[i].FieldName='月份' then
Fields[i].AsString:='2004-08'
else
Fields[i].Value:=DS2.Fields[i].Value;
end;
Post;
DS2.Next;
end;
end;
DS2.Free;
end;
将查询的30条记录select into 到一个临时表中,再用DBGRID显示该表的所有内容,修改后再将临时表的内容插入到原来的表中,最后删除临时表.
我不会用临时表,能教我吗?