记录的定位问题(100分)

  • 主题发起人 主题发起人 xinjia
  • 开始时间 开始时间
X

xinjia

Unregistered / Unconfirmed
GUEST, unregistred user!
向一个数据库(form1.table1)中输入数据,其中有一个字段的值需要在另一个数据库
form2.table1中选择,在form1我使用了一个dbgride,在dbgride旁边放了一个按钮botton1,
点击按钮,则form2.show,在这个窗体里选择相应值的记录,
edit1.text=table1.fieldbyname('字段名').asstring;,
按确认钮则form1.table1.fieldbyname('选择字段名'):=edit1.text;给字段赋值.并且
form2.close
我原意是click botton1时,dbgrid是哪条记录,就给哪条记录的字段赋值,但结果显示在
dbgrid1中的赋值记录不是第6个就是最后一个,后来在给form1.table1赋值前,我用了
locate定位,或者用getbookmark和gotobookmark定位,都不能使dbgrid1中相应的记录修改值.
不知怎么回事.
表单1的按钮操作

procedure form1.BitBtn1Click(Sender: TObject);
begin
//jlh:=table1.fieldbyname('单据编号').asstring; 原是使用locate
bookmark1:=table1.getbookmark;
kcsp.show;
end;

表单2的按钮操作
procedure form2.Table1.Button1Click(Sender: TObject);
begin
//chdj.table1.locate('单据编号',chdj.jlh,[]);原用locate使用这句
form1.table1.GotoBookmark(chdj.bookmark1);
form1.table1.edit;
form1.table1.fieldbyname('商品编号').asstring:=edit1.text;
form1.chdj.table1.post;
form1.DBGrid1.Refresh;
form1.table1.edit;
form1.Table1.FreeBookmark(chdj.bookmark1);
form2.close;
end;

 
什么定位都不要,试一试
 
确实不要定位,选择了哪一行,记录指针就指向哪条记录(DELPHI自己处理),直接取值
就行了。
 
仅从我帖出的内容看不出有什么问题,在源程序中,由于另开了一个数据库table2,这个
table1的tablename有好几次变幻,现在我使用table2作为变化的数据库,table1的数据库
名始终不变,不需要gotobookemark或locate重新定位,即可搞定.谢谢dedman,flycat两位.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
748
import
I
后退
顶部