如何将WORD的文档存入SQL SERVER中某个数据库中的一条记录中。 你的数据库中相应的字段应该是Image字段就可以存放Word文档了。Image字段是Blob字段,所以存取Image字段时你要使用TBlobStream类或者相关的方法来存取,你可以看一下帮助中是如何说的。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我看过帮助,太复杂了,能具体一点吗,比如我选定了一个1.DOC的文件,如何存入呢? 将字段类型设为text,可以用loadfromfile()的方法实现。 fieldbyname('text').asstring:=loadfromfile('1.doc'); 不能用text类型,应该用Image类型。用asstring也比较危险,在处理大型数据(>几十M)时,最后一个字节会变成0。别用string, 用stream吧。 设置字段类型为ntext,利用字段编辑器将字段加入,下面的语句就能将文件存放到对应的字段中:adoquery1text.LoadFromFile('c:\windows\desktop\1.doc'); 我是用SQL语句提交的,后三位的方法都不行,我碰见的情况如下:例: dataunit.DataModule1.query3.SQL.Add('insert 文件数据表 (文件名称,文件内容,建立时间,建立用户代码,建立用户姓名,备注) values (:文件名称,:文件内容,:建立时间,:建立用户代码,:建立用户姓名,:备注)');...dataunit.DataModule1.Query3.Parambyname('文件名称').asstring:=edit1.text;dataunit.DataModule1.Query3.FieldByName('文件内容').asstring:=?其中'?'即为提交数据。按如何写语句呢? procedure TForm1.Save;var MemSize: Integer; Buffer: PChar; MyFile: TFileStream; Stream: TBlobStream;begin MyFile:=TFileStream.Create('1.doc', fmOpenRead); with table1 do begin Open; Edit; Stream := TBlobStream.Create(FieldByName(‘Doc') as TBlobField, bmWrite) {‘Doc'为BLOB字段名} MemSize := MyFile.Size; Inc(MemSize); Buffer := AllocMem(MemSize); try Stream.Seek(0, soFromBeginning); MyFile.Read(Buffer^,MemSize); Stream.Write(Buffer^,MemSize); finally MyFile.Free; Stream.Free; end; try Post; except on E: EDatabaseError do if HandelException(E)<>0 then exit else raise; end; end;end; zgb:你的方法好像是从数据库里把字段读出来,而我是要把数据存进数据库 同时选取多个相同标签的问题。 INI操作中ReadInteger函数的问题 delphi 安装PageControl问题 CreateThread中参数的问题 到底如何正确获得CPU主频... 怎样利用dblookupcombobox进行模糊查询? 高分求一个拆分字符串的算法! 一个关于窗体移动的问题 请教高手GetSystemInfo()的具体使用方法,我只有27分 web编程高手请进!!! ****插入数据的问题??? 如何使用TListView的Draw事件,我搞不清楚,为什么有2组,共6个DRAW事件,可否写一段例子
用asstring也比较危险,在处理大型数据(>几十M)时,最后一个字节会变成0。
别用string, 用stream吧。
adoquery1text.LoadFromFile('c:\windows\desktop\1.doc');
例: dataunit.DataModule1.query3.SQL.Add('insert 文件数据表 (文件名称,
文件内容,建立时间,建立用户代码,建立用户姓名,备注) values
(:文件名称,:文件内容,:建立时间,:建立用户代码,:建立用户姓名,:备注)');
.
.
.
dataunit.DataModule1.Query3.Parambyname('文件名称').asstring:=edit1.text;
dataunit.DataModule1.Query3.FieldByName('文件内容').asstring:=?
其中'?'即为提交数据。按如何写语句呢?
var
MemSize: Integer;
Buffer: PChar;
MyFile: TFileStream;
Stream: TBlobStream;
begin
MyFile:=TFileStream.Create('1.doc', fmOpenRead);
with table1 do
begin
Open;
Edit;
Stream := TBlobStream.Create(FieldByName(‘Doc') as TBlo
bField, bmWrite)
{‘Doc'为BLOB字段名}
MemSize := MyFile.Size;
Inc(MemSize);
Buffer := AllocMem(MemSize);
try
Stream.Seek(0, soFromBeginning);
MyFile.Read(Buffer^,MemSize);
Stream.Write(Buffer^,MemSize);
finally
MyFile.Free;
Stream.Free;
end;
try
Post;
except
on E: EDatabaseError do
if HandelException(E)<>0 then exit
else
raise;
end;
end;
end;