我现在做的程序是c/s模式的
以前直接对数据库操作,速度慢不说而且还老出问题,贴出代码后就没人回答了,参见:http://expert.csdn.net/Expert/topic/2337/2337487.xml?temp=.1895258和http://expert.csdn.net/Expert/topic/2232/2232973.xml?temp=.4777643
现在的方法是将查询结果返回到内存表(RXLib的memorytable)中,然后用Grid对内存表操作。
问题如下:
对Grid添加记录时一切正常,插入记录时如何在grid中对序号字段排序显示?我在程序中序号1的位置插入记录后grid中记录依次为2、3、4...1
memorytable无sort过程方法
以前直接对数据库操作,速度慢不说而且还老出问题,贴出代码后就没人回答了,参见:http://expert.csdn.net/Expert/topic/2337/2337487.xml?temp=.1895258和http://expert.csdn.net/Expert/topic/2232/2232973.xml?temp=.4777643
现在的方法是将查询结果返回到内存表(RXLib的memorytable)中,然后用Grid对内存表操作。
问题如下:
对Grid添加记录时一切正常,插入记录时如何在grid中对序号字段排序显示?我在程序中序号1的位置插入记录后grid中记录依次为2、3、4...1
memorytable无sort过程方法
解决方案 »
- Createoleobject总是无法执行!为什么?
- 谁帮我解决这个难题我给他三百元人民币
- 讨论一下MDI子窗口关闭的几种语句..
- 求递归算法
- 设定DbGridEh合计行信息问题,在线等
- 关于多语言
- 有关ShellExecute打开PDF文件的问题.
- Microsoft windows 的 bug ????? fastReport打印,在window98上,打印的内容很大。而在window2000上,就很正常。
- 我枚举一个游戏窗体的类,只得到了TDXDraw,我怎样才能得到TDXDraw中更多的信息呢,比如得到其中的文字?
- 单号的问题。
- 给我D 7几本电子书。。。
- 当街跪求<软件需求说明书>..实例一份...感激涕淋...
ORDER BY 要排序的字段,更简单,更方便,也更快
试想:User在Edit的时候,只关注当前Edit的那笔资料,不会过多关注它所处的位置,它所处的序号。如果真要排序的功能,可以在User编辑完成后再加一个刷新的功能让他重查一遍就是了。因为这个排序的功能本身就不是核心功能,没必要花大力量写很多代码去解决。
我以前也碰到过这种情况,所不同的是该功能不是我的客户提出来的,是俺Boss硬要加。后来我将Boss的方法变通了一下(就是再多加一个刷新钮),客户验收时也没有提出什么异议:)
能说说你的方法吗?
procedure InsRec(Dataset:Tdataset);
var
aField : Variant ;
i,no: Integer ;
begin
with query do
begin
//得到插入前的序号
no:=FieldByName('序号').AsInteger;
append;
last; //到最后一条记录
//当前序号大于插入前的序号时复制记录
while FieldByName('序号').AsInteger>no do
begin
prior;//到第j-1条记录开始读入
aField := VarArrayCreate([0,DataSet.Fieldcount-1],VarVariant);
for i := 0 to (DataSet.Fieldcount-1) do begin
aField[i] := DataSet.fields[i].Value ;
end;
next;//到第j条记录开始写入
for i := 0 to (DataSet.Fieldcount-1) do begin
DataSet.fields[i].Value := aField[i] ;
end;
Prior;//这条记录写完后定位到上一条
end;//end while
end;//end with
end;
问题是记录并没有下移,而是追加了一条空记录