在interbase中插入记录的问题(100分)

  • 主题发起人 主题发起人 leey
  • 开始时间 开始时间
L

leey

Unregistered / Unconfirmed
GUEST, unregistred user!
我使用的是interbase,SQL是刚上手,很不熟。在练习编写一个库程序时用到了近二十个
字段,由于字段较多,插入新记录时不是所有内容都要重写的,自然地就想到了将上一条
刚插入的内容保存下来,在插入下一条记录时在上一条已插入过的内容基础上略加修改即
可。可是一按TDBNavigator中的‘+’原有的记录内容就消失了,怎样让它不消失呢?
 

Table.Append;
Table.FieldByName('字段一').AsString:=Edit1.Text;
..
Table.Post;
不要去更新Edit的内容

 
谢谢无疯无禄的参与:可是用SQL怎么实现?
顺便说一下我用的是IBX:TIBQuery,TIBDatabase,TIBTransaction,TIBUpdateSQL。
 
这个问题很难吗?为什么没人能解?
 
TDBNavigator.....我建议你不要用那东西,其实那东西对界面不实用:)
它要求实现的功能,你都可以用代码实现的拉。。

1: 你首先在formshow这个时间里面这样。
edit1.text:=table1.fieldbyname('ziduanming').asstring;
;;;;;
;;;;;;
editn.text:=table1.fieldbyname('ziduanming n').asstring;
这样,那些字段的记录都可以显示在edit里面拉。。

2: 在dbgrid的双击时间中也添加上面同样的代码。
3: 你要添加新的记录的时候,用button的时间中添加你自己的代码:
Table.Append;
Table.FieldByName('字段一').AsString:=Edit1.Text;
..
Table.Post;
Table.rerfh: //刷新,,,不好意思,单词不记得拉。。

4 你保存了你的记录以后,,那edit里的内容绝对就不会变了。。。。
5:你如果要清空所有的edit的数据。。。搞个按钮的事件
edit1.text:='';
;;;
;;;;
editn.text:='';

6:你应该可以达到你的目的了。。。拜拜。。。

7:其实,我学delophi也不久,,,哎,,可惜没人帮拉:)

 
看来大富翁上无高手了。
此问题还是自己解决了,方法是在OnBeforInsert事件中将即将插入的内容复制到一个临时
变量中:
LastValue[tItemNo]:=FieldByName('ItemNo').AsString;
再在OnAfterInsert中读回来就行了:
FieldByName('ItemNo').AsString:=LastValue[tItemNo];
以上例句中LastValue是一个临时变量数组,其中的下标常量tItemNo是一个自定义的枚举
类型中的一个成员。定义LastValue时用此枚举类型作下标范围,此好处是意义明确易懂。
 
多人接受答案了。
 
后退
顶部