我想在一张表中读取一个字段的最后一项的值,用下面的代码为什么不行啊?
Table_power.Open;
Table_power.Last;
powerno:=Table_power.fieldbyname('Id').asinteger;
Table_power.Close;给出的错误信息是access violatioan
Table_power.Open;
Table_power.Last;
powerno:=Table_power.fieldbyname('Id').asinteger;
Table_power.Close;给出的错误信息是access violatioan
解决方案 »
- fastreport怎样设计表格固定格式,格式不随数据条数变动
- 祝朋友国庆快乐!顺便请教个问题:读取固定标题的CSV,有什么好办法吗?
- ADODataSet查询。高手看看!
- Delphi的程序如何与asp网页进行交互
- Dbexpress发布的时候遇到问题。请大虾们指点一下。
- 请求W IN98设置问题.高分.
- 若Excel中的单元格的内容是个公式,如何取得该公式的结果而不是公式本身
- 问个问题:: 我想知道什么是事务处理? 加入事务处理有什么好处? 最好是有个例子!谢谢
- 关于tlistview自绘和spy4win的问题,能否勾引出来ccrun哪?
- 如果我把應用服務和數據服務器放在NT2000 Server中﹐在Win98運行客戶端程式﹐那我如果設定。如果在另一台NT2000 Server運行客戶端程式﹐
- 急!100分求解,如何用程序替换应用程序图标?
- 请问怎样打印压感纸大小(279×381)的报表
Table_Power.prior;
Powerno:=Table_power.FieldbyName('Id').asinteger;这样可以吗?
我改为
try
begin
Table_power.Open;
Table_power.Last; powerno:=Table_power.fieldbyname('Id').asinteger;
Table_power.Close;
end;
except
powerno:=15;// 表里最后一个是15,所以这里用人为设定一下,仅用来试一试//结果还是不行,同样是access violation
可能是这几天不舒服,怎么都没有看懂你说的意思……是不是取一条记录最后一列的值呢 ?
如果是的话呢 ?
有俩个方法:
1。如果知道那一列的 字段号,那么可以通过fieldname 来取;
2。或者可以通过 fields[i]来取,
i 是通过计算fieldcount来计算出的
不就可以了吗,
begin
databasename:=Table_power.databasename;
sql.clear;
sql.add('select max(id) from '+table_power.tablename');
execsql;
Powerno:=fields[0].asinteger;
close;
end;
感觉你这个程序最大的可能还是id这个字段不存在,不过如果你想获取最大的id还是上面这样比较好
后面最好在end;前面加上free;
close;
free;
end;
还有一种情况就是你这个table_power中的字段已经写成静态的了,而里面没有id,所以表的数据库定义中有id,而访问回来之后没了这个字段