如何增加一个序号 ( 积分: 200 )

  • 主题发起人 主题发起人 wangfangzhen
  • 开始时间 开始时间
W

wangfangzhen

Unregistered / Unconfirmed
GUEST, unregistred user!
按照Dbgrid中增加的位置,增加一个序号,并且保存到数据库中<br>例如:<br>有字段:&nbsp;ordID,Name<br>ordID是序号,<br>有数据<br>1&nbsp;&nbsp;aaa<br>2&nbsp;&nbsp;bbb<br>3&nbsp;&nbsp;ccc<br>4&nbsp;&nbsp;ddd<br><br>如果在第三行增加一个www,数据保存为:<br>1&nbsp;&nbsp;aaa<br>2&nbsp;&nbsp;bbb<br>3&nbsp;&nbsp;www<br>4&nbsp;&nbsp;ccc<br>5&nbsp;&nbsp;ddd
 
其实你只要在ordID字段的OnGetText事件里写一行下面的代码就可以了,这样任何时候添加或删除记录,DBGrid上都会立即顺序编号,所以这个ordID字段只作显示之用,不要作key之类的.<br>begin<br>&nbsp;&nbsp;if&nbsp;not&nbsp;Sender.DataSet.IsEmpty&nbsp;then&nbsp;Text:=&nbsp;IntToStr(Sender.DataSet.RecNo);<br>end;<br>题外话:&nbsp;有效无效回到富翁上给个话,不要一有答案就不理问题了.
 
关键是怎么样保存到数据库中呀,显示好说
 
要保存要在先记下当前位置,然后把当前位置之后的全部加一,这样的话会影响速度的,如果十万笔数据,你在第二笔前插入一笔,那后面的九万多编号全部要加一.所以不建议编号连续并保存到数据库中,只建议在DBGRID界面上保持顺序就可以了,客户也看不到后台表,只关心看到的.<br>update&nbsp;表&nbsp;set&nbsp;ordID=ordID+1&nbsp;where&nbsp;ordID&gt;=当前位置
 
方法不错,可我觉得没解决根本问题
 
我也是這個問題,我用的是dbgrideh,序號是自己畫上去的。保存是按dbgrideh每行內容進行。保存是沒有問題,但如果點修改後在新增一筆,那SQL語句就就麻煩了。先得用更新語句,再用插入語句,不知道有沒有別的好方法,我的要求是序號這方面只要按最大的取就行了,中間刪除不必要在補上。<br>procedure&nbsp;TForm1.BitBtn1Click(Sender:&nbsp;TObject);<br>var<br>&nbsp;&nbsp;I:&nbsp;Integer;<br>begin<br>&nbsp;&nbsp;dbgridEH1.DataSource.DataSet.First;<br>&nbsp;&nbsp;while&nbsp;not&nbsp;dbgridEH1.DataSource.DataSet.Eof&nbsp;do<br>&nbsp;&nbsp;begin<br>with&nbsp;Qry1&nbsp;do<br>begin<br>&nbsp;&nbsp;close;<br>&nbsp;&nbsp;sql.clear;<br>&nbsp;&nbsp;sql.add('insert&nbsp;into&nbsp;XDSCE&nbsp;(CE001,CE002,CE003,CE004,CE005)&nbsp;values(&nbsp;');<br>&nbsp;&nbsp;sql.add(''''+Edit1.text+''','''+edit2.text+''','''+DBGridEH1.DataSource.DataSet.FieldByName('CE003').Text+''',&nbsp;');<br>&nbsp;&nbsp;sql.add(''''+DBGridEH1.DataSource.DataSet.FieldByName('CE004').Text+''','''+DBGridEH1.DataSource.DataSet.FieldByName('CE005').Text+''')');<br>&nbsp;&nbsp;execsql;<br>end;<br>&nbsp;&nbsp;dbgridEH1.DataSource.DataSet.Next;<br>end;<br>end;
 
uses&nbsp;DBGridEhImpExp<br>SaveDBGridEhToExportFile(TDBGridEhExportAsXLS,&nbsp;DBGridEh1,&nbsp;SaveDialog1.FileName,True);
 
加一个整理功能不就可以了!
 
沒有人用dbgrid做錄入工具??
 

Similar threads

S
回复
0
查看
744
SUNSTONE的Delphi笔记
S
S
回复
0
查看
753
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部