delphi中关于动态生成memo和button问题,怎么将对应记录加到数据库里???

2025-03-05 10:34:08
推荐回答(2个)
回答1:

我晕 你Append后没有Post?那数据还是在缓存的吧?然后又用了Next,那数据能保存成功吗?
你说的那个保存 可以通过这个方式 :
1 动态创建Memo的时候可以这样设置:
Memo1.Name := 'Memo1';
Button1.Name := 'Button1';
2 在MyClick中可以这样设置:
var AName, AText : string;
begin
AName := (Sender as TButton).Name; //获取当前按钮控件名称
AName := Copy(AName,Pos('Button',AName)+6,Length(AName)); //获取后缀的数字
AName := 'Memo'+AName; //这个就是memo的名称啦
if Assigned(FindComponent(AName)) then //搜索控件 如果存在就取其文字
AText := TMemo(FindComponent(AName)).Lines.Text
else ShowMessage('没有搜索到相应的Memo控件!无法保存!');
with query_Tj do
begin
Connection := conn;
Close;
SQL.Text := 'select * from cs_table where 1=2'; //加where 1=2 ,避免搜索整个表 按你原先的代码,如果以后你数据变多时,搜索就会很慢
Open;
Append;
FieldByName('memotext').Value := AText;
Post;
end;
end;

以上代码为手打,没有用delphi调试过,意思差不多是这样,自己看着办啦

回答2:

query_tj.Append;
query_tj.FieldByName('memotext').Text:=memo.Text;
赋值了又不保存,
还移动了指针:query_tj.Next;
不知道你要干什么?
memo.Parent:=Self;
memo肯定是要放在那一个容器里的,怎么它的父组件是自己呢?
看不懂