这个问题太难了。(在线等待)(100分)

  • 主题发起人 主题发起人 sjhua
  • 开始时间 开始时间
关于第二个问题,我的一段简单代码测试通过:

procedure TForm1.Button1Click(Sender: TObject);
Var i:integer;
begin
For i:=0 to ADOQuery1.RecordCount-1 do
begin
ListBox1.Items.Add(ADOQuery1.FieldByName('CustNo').AsString);
ADOQuery1.Next;
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
ADOQuery1.ConnectionString:='Provider=MSDASQL.1;'+
'Persist Security Info=False;'+
'Extended Properties="DSN=MS Access Database;'+
'DBQ=C:/PROGRAM FILES/Common Files/Borland Shared/Data/dbdemos.mdb;'+
'DefaultDir=C:/PROGRAM FILES/Common Files/Borland Shared/Data;DriverId=25;'+
'FIL=MS Access;MaxBufferSize=2048;'+
'PageTimeout=5;'+
'UID=admin;"';
ADOQuery1.SQL.Text:='Select * from Customer';
ADOQuery1.Open;
end;

我想你到Microsoft的网站升级ADO试试!
 
关于第一个问题,同样测试通过.
 
TmpDatabase.Params.Clear;
TmpDatabase.Params.Add('Server Name='+sServerName);
TmpDatabase.Params.Add('Database Name='+.sDatabaseName);
TmpDatabase.Params.Add('User Name='+.sUserName);
TmpDatabase.Params.Add('Password='+.sPassword);
TmpDatabase.Params.Add('BLOB SIZE='+'4096');
TmpDatabase.Open;
 
我想再说一遍,数据库中有blob字段,此字段为20971920你的第一个测试无blob字段。
第二个同理,建议你建个有20m字段的表加以测试,如果按你的方法能通过,我何必在
此浪费时间。不过十分感谢你,分我会给你的。
 
第一个测试是往对你的RecordCount出错的测试,在我这里没有出错,
第二个测试的代码如下(我的硬盘里找了很久都没有找到20M左右的文件,
只找到一个7M左右的,经测试比较,生成的20021226_In_1.exe文件和测
试用的20021226_In.exe是一样的,我相信20M,200M也是一样的,不过存储速度嘛,可能就要包含包含了!):

procedure TForm1.FormCreate(Sender: TObject);
begin
Query1.Close;

Database1.Params.Clear;
Database1.Params.Add('Server Name=aizb');
Database1.Params.Add('Database name=MyTemp');
Database1.Params.Add('User Name=sa');
Database1.Params.Add('Password=5555555');
Database1.Params.Add('Blob Size=20480');
Database1.LoginPrompt:=False;

Query1.SQL.Text:='Select * from Table1';
//Table1表中有两个字段,一个b是Image类型,一个a是整型,为主键.
Query1.DatabaseName:=Database1.DatabaseName;
Query1.Open;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Query1.Edit;
Query1a.AsInteger:=0;
Query1b.LoadFromFile('F:/Documents/WorkDocu/20021226_In.exe');//文件大小:7,853,841 字节
Query1.Post;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Query1b.SaveToFile('F:/Documents/WorkDocu/20021226_In_1.exe');//文件大小:7,853,841 字节
end;
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=481730
 
谢谢你,我希望这个行,我也不想在这里多说了,但我认为如果这么easy我就不在这里
费这么长时间了。
 
接受答案了.
 
看不懂你的query1a,query1b我将源程序编译不能通过,难道不用stream能实现这么大
字段的存与读。不懂。。。。
 
>>>>>>>但我认为如果这么easy我就不在这里费这么长时间了。
很多时候问题不在于难与易,而在于是否走对路.
query1a,query1b:是在设计期间生成的Query1的字段对象,我以为你可以看懂,所以没有特别注明.
TBlobField对象是可以直接处理大文件的,因为它已经封装了Stream的在内部了.
 
后退
顶部