如何把一个文本文件的内容写入Access的Memo字段中?(100分)

  • 主题发起人 主题发起人 sube
  • 开始时间 开始时间
S

sube

Unregistered / Unconfirmed
GUEST, unregistred user!
现在做一个小工具把一些文本文件的内容写入数据库的字段中去
用的是Access
对应文件内容的是一个备注(Memo)字段content
但在insert时,用下面语句
Query1.SQL.Add('update main set content=:content where id=:id');
Query1.Params[0].AsMemo := Content.Text;
// content.text为文件内容
.....
则出错
如果把第二行换成:
Query1.Params[0].AsString := Content.Text;
虽然不出错,但当文本较少时正确
一旦字符数较多则保存为一个非法字符

请问同僚们我该怎么办?
有谁做过麻烦告诉兄弟一下
 
使用数据流试试吧,应该可以的
 
? content=:content
 
content为一备注型字段
content=:content为用参数给字段传值

本人已经用另一种较笨的方法实现了所需的功能
就是用一个动态DBMemo控件来指定到备注字段上
再将其text属性赋为文件的内容
再让其自动保存,即可实现

不过,总觉得绕了远
还是想请教各位高手好的方法

再请问Tintin如何用数据流方法实现
愿将100分全部奉上
 
我也想知道怎么做!!!
 
下面是我的程序中的一段。
根据 ObjectId, UserId 设置某用户在某对象上的自定义配置。
UserConfig 实际上是一个StringList,在Midas结构中以OleVariant类型传递。

procedure SetUserConfig(ObjectId,UserId:Integer; UserConfig: OleVariant);
var
StringList1: TStringList;
MemStream1: TMemoryStream;
i: integer;
begin
with TemptQuery1 do
begin
Active := False;
SQL.Clear;
SQL.Add('Update UserConfig Set Configuration=:Configuration' +
' where ObjectId=1 and UserId=' + InttoStr(UserId));
StringList1 := TStringList.Create;
MemStream1 := TMemoryStream.Create;
for i:= VarArrayLowBound(UserConfig, 1) to VarArrayHighBound(UserConfig,1) do
StringList1.Add(UserConfig);
StringList1.SaveToStream(MemStream1);
TemptQuery1.Parameters.Items[0].LoadFromStream(MemStream1,ftMemo);
ExecSQL;
end;
end;

 
1.insert的时候怎么能用Update语句?

2.我一直用Access97, .AsMemo没问题的.
 
接受答案了.
 

Similar threads

回复
0
查看
1K
不得闲
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部