有谁知道我怎的把一个文件写进SQLSERVER6.5里去,用什么字段(50分)

  • 主题发起人 主题发起人 cjsam
  • 开始时间 开始时间
C

cjsam

Unregistered / Unconfirmed
GUEST, unregistred user!
我先生成一个文件,它就是将BMP图文件和文字读成一个一个字节形式,写成一个文件。现在我将
它要写如到SQL SERVER6。5中去,我需要建个表,采用什么字段呀,怎的写进去?
我用 dbmemo1载入这个文件写到一个text字段里去,但是不行,里面字段是空。
 
用Image字段,
function FileToDB(astrFileName, aFieldName, aTableName : string;
aConnection : TADOConnection; aCondition : string = '') : Boolean;
function BlobContentToString : string;
begin
with TFileStream.Create(astrFileName, fmOpenRead) do
try
SetLength(Result, Size);
Read(Pointer(Result)^,Size);
finally
Free;
end;
end;
var
Query : TADOQuery;
begin
Result := FALSE;
Query := TADOQuery.Create(nil);
with Query do
begin
try
Connection := aConnection;
SQL.Text := 'select ' + aFieldName + ' from ' + aTableName + ' ' +
aCondition;
Open;
if (not (EOF and BOF)) and (not FieldByName(aFieldName).IsNull) then
begin
if MessageBox(0,'是否确定抛弃原来的数据!','信息提示',
MB_OKCANCEL+MB_ICONINFORMATION+MB_TASKMODAL) = IDCANCEL then
begin
Result := False;
Exit;
end;
end;
Edit;
FieldByName(aFieldName).AsString := BlobContentToString;
Post;
Result := True;
finally
Query.Free;
end;
end;
end;
 
TO chen_jianxiong;
我不用ADO。用ODBC的
我改成ADO的也好象有问题,
我用你这个函数写进去后好象还是没有数据(select *)。你可以给我改下吗?
 
呵呵,我有个简单的办法,不知道适不适合老兄。
建个表,两个字段就好,一个关键字段如ID ,另一个用NAME或PATH(随便)VARCHAR型,
里边存储你的图片的全名(包括路径名),然后调用就行了,而且速度非常快。
 
对不起,我写错了应该是你的文件名。
 
duhai_lee.那样就太简单了,不是我想要的,不过我已经知道了,以前的帖子里也有,我再给
贴一边了
var FileName :String;
begin
if OpenDialog1.Execute then
FileName := ExtractFileName(OpenDialog1.FileName);
with Query1 do
begin
Close;
Sql.Clear;
Sql.Add('INSERT INTO t_test VALUES (:aa,:bb)');
ParamByName('aa').asinteger := 5;
ParamByName('bb').LoadFromFile(OpenDialog1.FileName,ftBlob);
ExecSQL;
end;

真的很简单
 
后退
顶部