用TBlob(parambyname('文件内容'))=?试一下!
解决方案 »
- 判断表达式的真假问题
- Delphi 高手请进、高高手请进!关于动态界面的问题!
- IdHTTP控件怎么返回400错误的详细内容?
- 运行随书例程,出现"没有注册类别"错误!
- (高分酬谢)关于多串口发送短信的难题!请高手点拨
- 定义一个TLocateOptions变量时出错,为什么呢?(特奇怪!)
- query插入记录请教。
- 请问各位高手,如何创建密码列表?谁能给我这方面详细的资料或者指导?万分感谢!!
- 各位有礼了,我从前从未用过delphi,最近要用它做一个小东西,时间太紧(5天 ),求一个例子,具体内容请进,高分相赠!
- 如何在Windows程序中启动Dos程序并获得其输出?
- 我有很好的VC基础,大家给推荐一本Delphi好书
- 数据库怪事
Table1->Edit();
Stream=Table1PHOTO->DataSet->CreateBlobStream(Table1PHOTO,bmWrite);
//Table1PHOTO is TFields type
try
{
Graphic->SaveToStream(Stream);
}
catch(...)
{
Stream->Free();
}
Table1->Post();
query.close;
query.sql.clear;
query.sql.add(insert into tab_your set field_your=:num);
query1.parambyname('fieldname').AsBlob:=streamname;
query1.open;
try and think!!
其中file1为一变量,能通过编译,但使用时出错。怎么回事?
Buffer: PChar;
file1: TFileStream;
Stream: TBlobStream;Stream := TBlobStream.Create(FieldByName('文件内容') as TBlobField, bmWrite)
MemSize := file1.Size;
Inc(MemSize
Buffer := AllocMem(MemSize);
try
Stream.Seek(0, soFromBeginning);
file1.Read(Buffer^,MemSize);
Stream.Write(Buffer^,MemSize);
finally
file1.Free;
Stream.Free;
end;
text 类型:
var Value:string;
dataset.append
dataset.fieldbyname('fieldname').asstring:=Value;
dataset.post;
已在SQL Server7.0下 OK
var Value: string;
with query do
begin
close;
sql.clear;
sql.add('Insert into your_table_Name (fieldName) ');
sql.add('values(:@P1)');
params[0].asstring:=Value;
execsql;
end;
环境: NT4.0+SQL Server 7.0 delphi5.0 编译 OK
用 Image字段 可以存放文件
测试过 *.bmp,*.jpg,*.txt,*.doc,*.exe 等等 都可以
有兴趣可联系 [email protected]
//当然会出错,如果文件中没有非unicode字符,用下面的方法就应该不会有问题。var
filename: string;...procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
filename := opendialog1.FileName;
end;procedure TForm1.Button2Click(Sender: TObject);
begin
with Query1 do
begin
Close;
SQL.Clear;
SQL.Add('insert into tbl_text');
SQL.Add('values(:bh,:text)');
ParamByName('bh').asstring := '1';
parambyName('text').LoadFromFile(filename,ftMemo);
ExecSQL;
end;
end;//对 .doc,.xls 文件会出错,因为文件中有非法字符。//建议:如果您要保存的文件类型不定,最好用 binary 类型的字段