var
mystream : TMemoryStream;
mydialog : TOpenDialog;
begin
mystream := TMemoryStream.create;
mydialog := TOpenDialog;
if mydialog.Execute then mydialog.Files.SaveToStream(mystream);
mystream.Position := 0; with query do
begin
close;
sql.clear;
sql.add('insert into tmptab(tmp) values(:tmp)');
★ query.paramByName('tmp').LoadFromStream(tmpstream,ftBlob);
execsql;
end;
mydialog.free;
mystream.free;
end;
如果把上面★行改成
TBlobField(query.paramyname('tmp')).loadfromstream(mystream);
运行时就出现错误!
为什么会这样呢?
mystream : TMemoryStream;
mydialog : TOpenDialog;
begin
mystream := TMemoryStream.create;
mydialog := TOpenDialog;
if mydialog.Execute then mydialog.Files.SaveToStream(mystream);
mystream.Position := 0; with query do
begin
close;
sql.clear;
sql.add('insert into tmptab(tmp) values(:tmp)');
★ query.paramByName('tmp').LoadFromStream(tmpstream,ftBlob);
execsql;
end;
mydialog.free;
mystream.free;
end;
如果把上面★行改成
TBlobField(query.paramyname('tmp')).loadfromstream(mystream);
运行时就出现错误!
为什么会这样呢?
解决方案 »
- fastreport 如何连续打印单据
- 如果使用update 语句更新类型为number的字段的值
- 如何设置电脑自动开机啊
- 苦求双面打印的api函数......
- 打印机线宽问题
- 關于調用存儲過程的問題(提示 list index out of bounds(10)的錯誤)
- Delphi程序无法运行
- 怎么样在OpenDialog或SaveDialog初始显示的时候用程序指定其文件名(如file.txt)?
- DELPHI中用PARADOX表中的日期到底是怎么回事?我被搞得快晕了!!谁给我彻底解决分就是他的!!
- 谁知道delphi5 UPDATE PACK1的密码?
- 很老的用汉字获取拼音码问题。
- 需要一个能显示DLL中提供的函数的工具
var
myrs : variant;
sql : string;
mystream : TMemoryStream;
mydialog : TOpenDialog;
begin
mystream := TMemoryStream.create;
mydialog := TOpenDialog;
if mydialog.Execute then mydialog.Files.SaveToStream(mystream);
mystream.Position := 0; myrs := CreateOleObject('AdoDb.recordSet');
myrs.cursorlocation := 3;
sql := 这里要实现上面的功能怎么写呢?';
myconn.execsql;
mydialog.free;
mystream.free;
end;
你说的我看不懂~
我脑子笨~
TBlobField(query.FieldByName('tmp')).loadfromstream(mystream);
用原来的是对的。对: Query1.ParamByName('tmp').LoadFromStream(tmpstream,ftBlob);
错: TBlobField(query1.FieldByName('tmp')).loadfromstream(tmpstream);提示
query1 : field 'tmp' not found还有我在二楼写的那中文的部门怎么写呢?
以tblob为主题查看一下帮助你就明白了。
另一个问题你可以使用insert into形式,利用参数进行录入!
你说的不明白。
★ query.paramByName('tmp').LoadFromStream(tmpstream,ftBlob);
是可以通过的。
但是如果把上面的换成
TBlobField(query1.FieldByName('tmp')).loadfromstream(tmpstream);还有这里还不怎么回写,我脑子笨~
sql := 这里要实现上面的功能怎么写呢?';
帮我一下。
都研究了一个下午了,
sql.add('insert into tmptab(tmp) values(:tmp)');
决定该query打开前必须赋值:tmp的参数,否则打不开
你在query尚未打开的情况下给它的字段赋值,当然会出错的
tmp是query的一个参数,它的类型是参数类型TParam;
而TBlobField()的返回值是字段类型,query 中并无字段'tmp',所以提示
"query1 : field 'tmp' not found"
用原来的是对的。对: Query1.ParamByName('tmp').LoadFromStream(tmpstream,ftBlob);
错: TBlobField(query1.FieldByName('tmp')).loadfromstream(tmpstream);提示
query1 : field 'tmp' not found
-------------------------------------------------数据集没有打开,怎么能找到字段 ?这样试试 :Open ;
Edit ;
TBlobField(query1.FieldByName('tmp')).loadfromstream(tmpstream);
Post ; //update Field 'tmp' on First Record
query1.SQL.Clear;
query1.SQL.add('select * from tmptab');
query1.open;
query1.Edit;
TBlobField(query1.fieldbyname('tmp')).loadfromstream(tmpstream);
query1.Post;这样就可以通过,但是好象很烦。
如果用SQL怎么写呢?