我用DBGrid来显示查询结果。如何实现在每次查询结果Grid显示的第一列建立一个序号字段,从1开始编号,2,3……按照网友qianguob(qianguob) 和: helodd(可爱)的帮助我使用了下面语句去实现:
select identity(int,1,1) AS XH , COL1... into #tmp from table
select #Tmp
但总是提示identity(int,1,1)错误。我现在的SQL语句是:
SELECT 姓名,日期,内容,加分 FROM measure
WHERE .......
ORDER BY 日期如果要在DBGrid的第一列加入序号列,代码该作何改动呢?谢谢!
select identity(int,1,1) AS XH , COL1... into #tmp from table
select #Tmp
但总是提示identity(int,1,1)错误。我现在的SQL语句是:
SELECT 姓名,日期,内容,加分 FROM measure
WHERE .......
ORDER BY 日期如果要在DBGrid的第一列加入序号列,代码该作何改动呢?谢谢!
解决方案 »
- delphi 在网络限速方面的应用
- USB通讯问题-驱动问题
- treeview 的很简单小问题,那位兄弟给点指点
- 请高手赐教Delphi 开发基于局域网Oracle8.0.5的最好方案(ADO?BDE?ODAC?DBExpress?)
- Sos! Nero 5.5的序列号
- 如何在DELPHI中删除已经安装的组件
- 为什么 form1onshow事件里form1.close;不能执行,奇怪
- 在FORM1中創建 FORM2, 在FORM2中創建 FORM3 ,form3關閉時,希望form2也關閉.怎麼寫???
- 兄弟们,请问谁会用TeamSource?或介绍一本书,谢谢!
- Install Shield 6.2 汉化包?
- 请问哪一位有Turbo pascal2.0,我在做些研究,急用2.0版,其他版没有我要的功能,谢谢!
- 关闭运行外部Windows程序代码问题,请教!
--此句中Select出来的mytable表中的列不能有主键否则就会出现错误,因为Select into语句会自动向新建表中继承原始表的标识属性
select #Tmp
--这句应该该为select * from #tmp
SET IDENTITY_INSERT mytalbe off
Select no=(select count(*)+1 from measure b where b.姓名<a.姓名),a.姓名,a.日期,a.内容,a.加分 from measure a
Order by a.日期注意姓名为关键字段
1.为数据集增加一个计算字段(假定你取名为mySort),字段类型为fkCalculated
2.在DBGrid的显示顺序中,把mySort放到第一列
3.在DBGrid的OnDrawColumnCell事件中加入下列代码
if Column.Index = 0 then
with DBGrid1.Canvas do
begin
FillRect(Rect);
TextOut(Rect.Left+2, Rect.Top+2, IntToStr(DBGrid1.DataSource.DataSet.RecNo));
end;