如何把文件存道数据库的Memo域中(100分)

  • 主题发起人 主题发起人 MicroZeng
  • 开始时间 开始时间
M

MicroZeng

Unregistered / Unconfirmed
GUEST, unregistred user!
如题:
数据库类型:Paradox 7
用TQuery控件
把文件MyFile.Txt存到存到数据库中.
我已经整了一整天, 都不行.请各位高手帮忙!
 
试试下边的代码,应该没问题,我都是这么用的!

Query1.close;
Query1.RequstLive := True;
Query1.Sql.Text := ' select your_memo_field from your_table';
Query1.Open;
Query1.Edit ;
(Query1.Filelds[0] as TMemoField).LoadFromFile('MyFile.Txt');
Query1.Post;
Query1.close;

上边的代码修改了你的第一条记录的Memo字段的内容为MyFile.Txt!!
 
procedure TForm1.loadfile1Click(Sender: TObject);
begin
if opendialog1.Execute then
dbmemo1.Lines.LoadFromFile(opendialog1.FileName);
end;

procedure TForm1.todatabase1Click(Sender: TObject);
begin
query2.Close;
query2.Params.CreateParam(ftmemo,'memodata',ptinput);
query2.SQL.Text:='insert into custoly(remarks) values(:memodata)';
query2.ParamByName('memodata').AsMemo:=dbmemo1.Lines.Text;
query2.ExecSQL;
end;
我觉得这样好一点,使用参数,可以更灵活。
 
var
List : TStringList;
begin
List := TStringList.Create;
if OpenDialog1.Execute then
begin
List.LoadFromFile( OpenDialog1.FileName );
end;
with Query1(或者Table1啦)do
begin
Close;
Open;
Append;(或者Edit都是一样的了,一个是在当前位置插入,另一个实在末尾插入。)
FieldByName( 'Content' ).asstring := ll.Text;
post;
end;
List.Free;
1.我的程序前提:Query或Table里头必须有一个数据集,这对一般应用来说,是方便也是不成问题的。
就像junlv那样,用Query1.Sql.Text := ' select your_memo_field from your_table'就可以了。
2.我一向主张:如果不是必须看见控件的话,尽量不要new控件,有时会带来不必要的麻烦(比如界面等等)。
所以,我在这里用了TStringList来代替Memo,事实上,这里用StringList就完全可以了,
好像用不着那么烦,要用DBMemo吧?
3.我比较懒一点,能不写SQL就不写,于是就是上面这样了,虽然有可能扩展性不是那么好,
但编程是不会那么烦了,可以一口气写下去。
 
接受答案了.
 
很对不起!
本来是要给三位分配平均的分数
但没有选"是接受答案,并分配积分如下(请注意分数总和应为 100 分): "
所以只给jghuang加了100
斑竹如果看到这贴子, 请从我的分数里给junlv 和 茶叶蛋 各加50分.
 
后退
顶部