ADO的LoadFormFile如何使用 (200分)

  • 主题发起人 fanhongwei
  • 开始时间
F

fanhongwei

Unregistered / Unconfirmed
GUEST, unregistred user!
各位:你们好!
我是个初学者,
我使用ADOQuery将数据库中的记录生成文件,代码如下:
with ADOQuery1 do
begin
SQL.Clear;
SQL.Add(mS2);
Open;
SaveToFile(mS4, pfADTG);
Close;
ListBox1.Items.Add('数据备份成功!');
Application.ProcessMessages;
end;
现在我不知道如何将文件中的数据转回数据库,请大家帮忙!
希望可以给出代码,有人说可以使用ADO的LoadFormFile,请问如何使用?
 
这个当然,若要更新到数据库中必须自己写程序,
 
ADOQuery1.LoadFormFile(mS4);
……
ADOQuery1.UpdateStatus;
注意
ADOQuery1要如下设置
CursorType = Keyset or Static
LockType= BatchOptimistic
sql 命令必须是 Select


 
loadfromfile看看help就会懂了,但这还不能更新到数据库中,要读到数据库中还得自己
写程序更新!
 
备份的话,可以生成本地数据库文件来实现。
 
(AdoQuery1.FieldByName('Blob字段') as TBlobField).LoadFromFile('路径/文件名');
或者
TBlobField(AdoQuery1.FieldByName('Blob字段')).LoadFromFile('路径/文件名');
 
另外,那一句之前先要AdoQuery1.edit;之后Adoquery1.post;
 
To: HunterTeam 可以说的更明确写吗?
To:卡色 使用ADOQuery可以将数据返回数据库吗
 
主要的问题是:
如何将ADO生成的文件中包含的记录返回数据库中,请大家帮忙。我实在是不会。
 
先用AdoQuery打开数据库,将指针指向要保存文件的记录,然后按我上面说的:
AdoQuery1.edit;
TBlobField(AdoQuery1.FieldByName('Blob字段')).LoadFromFile('路径/文件名');
Adoquery1.post;
还有什么不清楚的,你说清楚一点.
 
To: HunterTeam
谢谢你的帮助,但是我还是不明白。不好意思我是新手。
我的目的是将已经保存文件的记录写到数据库中,按照你的说法:
我在程序中使用的代码如下:
for i := 0 to (FileListBox1.Items.Count - 1) do
if FileListBox1.Selected then
begin
//开始将数据写入数据库中
ADOQuery1.Open;
AdoQuery1.Edit;
TBlobField(AdoQuery1.FieldByName('Blob字段')).LoadFromFile(FileListBox1.Directory + '/' + FileListBox1.Items.Strings);
ADOQuery1.Post;
ADOQuery1.Close;
end;

可是无法执行,提示“Miss SQL 属性”
 
ADOQuery1.LoadFormFile(mS4);
就相当于执行到
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(mS2);
ADOQuery1.Open;
以后就是对数据集的操作
 
请大家帮帮我,我和着急
 
To: HunterTeam ,卡色,Gongli
可以给出完整的代码吗?

目的就是将文件中的记录写入到数据库中。
 
HunterTeam 保存的是Blob 字段,你的库说不定根本就没'Blob字段'你怎么用呢?
 
//To:卡色 使用ADOQuery可以将数据返回数据库吗
只要设置正确,应该可以,在ADO书上用的是TADODATASET,我想ADOQuery也可以,
至于代码就是上面的,本来就简单,
你也可以用gongli的方法!
 
"Blob 字段"是什么东西啊?
 
Blob 字段 我的理解就是放二进制数据的字段,如图片,文章等
还有你也要假装改两笔数据嘛!之后才SaveToFile,不然再用loadfromfile,之后能根新什
么呀!
with ADOQuery1 do
begin
SQL.Clear;
SQL.Add(mS2);
Open;
SaveToFile(mS4, pfADTG);
Close;
ListBox1.Items.Add('数据备份成功!');
Application.ProcessMessages;
end;
 
对不起,我开始没看清楚你说的意思,这跟BLOB无关,不过好象无法直接从文件中
添加数据记录,只好先另用一个Query控件将该文件的数据载入,再用循环逐条添加
到所要添加的数据表中,代码如下:
query2.close;
Query2.LoadFromFile('d:/dmrl'); //d:/dmrl是假定的备份文件
query2.first;
while not Query2.eof do
begin
Adoquery1.append; //AdoQuery1必须是已打开的,是准备添加记录的表
for i:=0 to adoquery1.fieldcount-1 do
AdoQuery1.fields.value:=Query2.fields.value;
AdoQuery1.post;
query2.next;
end;
 
顶部