读书人

TmemoField的用法,您会吗?该如何处理

发布时间: 2012-02-22 19:36:54 作者: rapoo

TmemoField的用法,您会吗?
请问有人知道TmemoField的具体用法吗?

我想用它来实现写入备注型字段值,我用的是delphi7+access 2003.
可不可以贴个示范代码啊?

我的代码如下,帮忙看看为什么会出问题啊,无法执行,报内存保护错.

memo_field:=TmemoField.Create(self);
memo_field.BlobType:=ftMemo;
memo_field.FieldName:= 'memo ';
memo_field.LoadFromFile(ExtractFilePath(Application.ExeName) + 'message\temp.txt ');
ADOQuery2.Parameters.ParamByName( 'h ').Value:=memo_field.Value;

// last edited at 2007-3-7
ADOQuery2.ExecSQL;
ADOQuery2.Close;

数据库连接,变量声明等都没有问题,可是为什么上面的代码要出错呢? 各位高手有没有关于TmemoField的使用示范代码啊? 谢谢了!

[解决办法]
如果你是想读一个文本文件进来,那是不能把文本文件本身作为参数代入到SQL语句里


1)读文本文件可以用TStringList来读
2)写入数据库应该是

AdoQuery.Sql.Text := 'select h from sample where sampleid=2 ';
adoquery.open;
adoquery.Edit
adoquery.FieldbyName( 'h ').AsString := myStrings.text;
adoQuery.Post;
adoQuery.BatchUpdate;

要强调一下,就是上面这样的
adoquery.FieldbyName( 'h ').AsString := myStrings.text;只能是MEMO型,如果是其他如二进制数据就不行.

[解决办法]
TMemoField不与DataSet关连独立使用,还真没想过。

你看Field都有个DataSet属性, 表示该Field属于哪个数据集, 还有FullName属性, 表示与数据表的哪个字段关连,这样对Field对象进行LoadFromFile,就是将文件内容保存到数据直接保存到了表中, 当然还少不了DataSet.Post操作。

你这样一个独立的Field对象,不好用的吧。
[解决办法]
不知道你的SQL语句怎么写的,不过,你将整个文件的内容作为 Parameter,不妥吧,难道文件只有一行?
[解决办法]
你需要的大概是这个
(ADOQuery2.FieldByName( 'memo ') as TMemoField).LoadFromFile( 'xxx.txt ');

读书人网 >.NET

热点推荐