各位大侠: ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select stationnum,stationname,data from data where date between '+Edit1.text+' and '+Edit2.text+'');
ADOQuery1.Open;
ADOTable1.Clone(ADOQuery1,ltunspecified);通过上面语句我读到了网络服务器的数据,但我不知道应该怎么样把这些数据存储到本地,请高人指点。急!十分感谢
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select stationnum,stationname,data from data where date between '+Edit1.text+' and '+Edit2.text+'');
ADOQuery1.Open;
ADOTable1.Clone(ADOQuery1,ltunspecified);通过上面语句我读到了网络服务器的数据,但我不知道应该怎么样把这些数据存储到本地,请高人指点。急!十分感谢
解决方案 »
- cannot perform this operation on a closed dataset问题
- indy 10.2.5的idftp读出文件列表乱码问题
- 雅虎邮箱自动注册的问题
- 关于将RzDateTimeEdit的日期保存到数据库的问题。
- 请问如何实现报表中隔开各列的竖线的打印?以及为什么我在QReport中,为什么控件老是会乱跑,修改一下就会跑到页面外的地方?
- 怎样动态枚举一个数据库中的所有表?
- 请问斑竹,为什么我不能下载呢?
- Delphi AnimateWindow 窗体淡入时 Invalidate 与BringToFront编写的顺序,为什么会直接影响画面的最终显示
- ADO访问ORACLE的一个问题
- 怎样获取,shelltreeview 中所选节点的路径信息? 节点中的node.text是'本地磁盘(c)'而我要得到的是 c:\
- 在dephi 中怎样掉用其他的执行程序?
- 一个Clientdataset怎么复制另外一个clientdataset的数据?
ADOQuery1.First;
while(not ADOQuery1.Eof) do
begin
// 字段'stationnum'的值,其他字段类似
stationnum :=ADOQuery1.FieldByName('stationnum');
...
ADOQuery1.Next;
end;
// 这样可以读出所有记录的字段的值,然后看你想怎么保存这些数据了~
ADOQuery1.First;
while(not ADOQuery1.Eof) do
begin
ADOCommand1.CommandText:='update aa where stationnum=ADOQuery1.FieldByName(stationnum)';
ADOCommand1.Execute;
ADOQuery1.Next;
end;
logne 您说的我看到了。
stationnum :=ADOQuery1.FieldByName('stationnum');
只是这样写好像不行吧,程序找不到stationnum的数据源会无法识别。
请您再写的详细点好吗,小弟新手,见谅
while(not ADOQuery1.Eof) do
begin
//ADOCommand1连得是本地数据源吧?
//ADOCommand1.CommandText:='update aa where stationnum=ADOQuery1.FieldByName(stationnum)';改成:
ADOCommand1.CommandText:='update aa where stationnum="'+ADOQuery1.FieldByName(stationnum)+ '"';
ADOCommand1.Execute;
ADOQuery1.Next;
end;
ADOQuery1.FieldValues[stationnum]返回的是一个Varient类型的变量
你可以参考下delphi的帮助啊,写的很详细的
哥哥,请您进一步指导。
while not ADOQuery1.Eof do
while not ADOQuery2.Eof do
begin
ADOQuery2.Edit;
ADOQuery2.fieldbyName('data').AsVariant:=ADOQuery1.fieldbyName('data').AsVariant;
ADOQuery2.Post;
ADOQuery1.next;
ADOQuery2.next;
END;
while not ADOQuery1.Eof do
begin
ADOCommand1.CommandText:='update aa where ADOQuery2.fieldbyname(stationnum).AsVariant=ADOQuery1.fieldvalues[stationnum].AsVariant;';
ADOCommand1.Execute;
ADOQuery1.next;
END;
UPDATE a1
SET c1 = 50
FROM t1 a1, t1 a2
WHERE a1.c1 = 1 AND
a2.c1 = 2
提示 ( 附近有语法错误。我总感觉本地数据库里的表它不识别。
ADOCommand1.CommandText:='update aa set data="' + ADOQuery1.fieldvalues[data].AsVariant + '" where stationnum = "' + ADOQuery1.fieldvalues[stationnum].AsVariant + '"';
你首先要把sql语句拼对了才行
ADOQuery1.fieldvalues[data].AsVariant 这些东西肯定不能写到字符串里去呀,要不怎么取值,
~~~
update aa set "' + ADOQuery2.fieldvalues['data'].AsVariant + '"="' + ADOQuery1.fieldvalues['data'].AsVariant + '" where "' + ADOQuery2.fieldvalues['stationnum'].AsVariant + '"= "' + ADOQuery1.fieldvalues['stationnum'].AsVariant + '"也还是不行。
logne 帮人帮到底吧,呵呵:( 。
SET c1 = 50 c1是a1中的字段
where c2=40 c2是a1中的字段
ADOCommand1.CommandText:='update aa set data="' + ADOQuery1.fieldvalues[data].AsVariant + '" where stationnum = "' + ADOQuery1.fieldvalues[stationnum].AsVariant + '"';
你仔细看一下上面这句和你写的有什么区别,还有有时间学习一下sql语句吧~
ADOQuery2.sql.add('update aa set data="' + ADOQuery1.fieldvalues[data].AsVariant + '" where stationnum = "' + ADOQuery1.fieldvalues[stationnum].AsVariant + '"';);
ADOQuery2.open;
哥哥,靠你了,呵呵。
stationnum char 10
stationname char 10
data char 10
ex.... 吗?
:(我不会用。
ADOQuery2.sql.add('update aa set data="' + ADOQuery1.fieldvalues[data].AsVariant + '" where stationnum = "' + ADOQuery1.fieldvalues[stationnum].AsVariant + '"';);
// 在这查看ADOQuery2.sql.text
ShowMessage(ADOQuery2.sql.Text);
ADOQuery2.open;
这是我用查询分析器做的,已通过,修改了data数据。
var
data, stationnum: string;
...
// 看着两个能取出来么?
data := ADOQuery1.fieldvalues['data'].AsString;
stationnum := ADOQuery1.fieldvalues[stationnum ].AsString;
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select stationnum,stationname,data from data where date between '+Edit1.text+' and '+Edit2.text+'');
ADOQuery1.Open;
ADOTable1.Clone(ADOQuery1,ltunspecified);
showmessage('读取成功!')
end;
取服务器数据并显示出来,我放在按钮1里了。
while not ADOQuery1.Eof do
while not ADOQuery2.Eof do
begin
ADOQuery2.Edit;
ADOQuery2.fieldbyName('data').AsVariant:=ADOQuery1.fieldbyName('data').AsVariant;
ADOQuery2.Post;
ADOQuery1.next;
ADOQuery2.next;
END;
BitBtn2Click是想把显示的数据存入本地,开始想用ADOQuery1、2循环,上面的语句可行,但是不想用。用update又出现问题,连本地是用ADOQuery的属性设置。
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
while not ADOQuery1.Eof do
begin
ADOQuery2.Close;
ADOQuery2.Sql.clear;
ADOQuery2.sql.add('update aa set data="' + ADOQuery1.fieldvalues['data'].AsVariant + '" where stationnum = "' + ADOQuery1.fieldvalues['stationnum'].AsVariant + '"');
ADOQuery2.open;
ADOQuery1.Next;
end;
showmessage('存储成功!')
end;
data, stationnum: string;
...
ADOQuery1.First;
while not ADOQuery1.Eof do
begin
ADOQuery2.Sql.Clear;
data := ADOQuery1.fieldvalues['data'].AsString;
stationnum := ADOQuery1.fieldvalues[stationnum ].AsString;
ADOQuery2.Sql.Add('update aa set data="' + data + '" where stationnum = "' + stationnum + '"');
ADOQuery2.ExecSQL;
end;
var
data, stationnum: string;
begin
ADOQuery1.First;
while not ADOQuery1.Eof do
begin
ADOQuery2.Sql.Clear;
data := ADOQuery1.fieldvalues['data'].AsString;
stationnum := ADOQuery1.fieldvalues[stationnum ].AsString;
ADOQuery2.Sql.Add('update aa set data="' + data + '" where stationnum = "' + stationnum + '"');
ADOQuery2.ExecSQL;
end;
showmessage('存储成功!')end;
报错信息想同
stationnum := ADOQuery1.fieldvalues[stationnum ].AsVariant ;
报错:ADOQuery1 field not found
stationnum := ADOQuery1.fieldvalues['stationnum'].AsVariant ;
还是这一行,错误信息:Invalid variant operation
到底是哪的问题???哎。
9是服务器data字段的第一个值。
似乎有一点方向了。