关于预编译语句使用的注意事项
2011-03-09 14:25
393 查看
今天我在使用预编译语句发现了类似的错误。
Error Descript as blew:
[Microsoft][SQLServer 2000 Driver for JDBC]ResultSet can not re-read row data for column 3.
经测试发现,原来时查询的字段和从结果集中取的字段顺序不一致的原因。我的相关代码如下:
1、sql语句如下:
select top 20 a.status as status,asset_no,asset_desc,a.location_pkid as location_pkid,c.location_desc as location_desc,a.dept_pkid as dept_pkid,depart_desc,ip_address,mac_address from asset a join department b on a.dept_pkid=b.pkid join location c on a.location_pkid=c.pkid where a.site_pkid =1 and a.pkid not in (Select top 0 pkid from Asset order by a.pkid DESC) ORDER BY a.pkid DESC
2、取结果的代码如下:
Asset asset=new Asset();
asset.setStatus(rs.getInt("status"));
asset.setAssetNo(rs.getString("asset_no"));
asset.setLocationPkid(rs.getInt("location_pkid"));
asset.setAssetDesc(rs.getString("asset_desc"));
asset.setLocationDesc(rs.getString("location_desc"));
asset.setDeptPkid(rs.getInt("dept_pkid"));
asset.setDepartDesc(rs.getString("depart_desc"));
asset.setIpAddress(rs.getString("ip_address"));
asset.setMacAddress(rs.getString("mac_address"));
如上的写法就会报上边的错误,解决的办法是,取结果集的顺序和查询字段的顺序一致。
改正后的代码如下:
Asset asset=new Asset();
asset.setStatus(rs.getInt("status"));
asset.setAssetNo(rs.getString("asset_no"));
asset.setAssetDesc(rs.getString("asset_desc"));
asset.setLocationPkid(rs.getInt("location_pkid"));
asset.setLocationDesc(rs.getString("location_desc"));
asset.setDeptPkid(rs.getInt("dept_pkid"));
asset.setDepartDesc(rs.getString("depart_desc"));
asset.setIpAddress(rs.getString("ip_address"));
asset.setMacAddress(rs.getString("mac_address"));
Error Descript as blew:
[Microsoft][SQLServer 2000 Driver for JDBC]ResultSet can not re-read row data for column 3.
经测试发现,原来时查询的字段和从结果集中取的字段顺序不一致的原因。我的相关代码如下:
1、sql语句如下:
select top 20 a.status as status,asset_no,asset_desc,a.location_pkid as location_pkid,c.location_desc as location_desc,a.dept_pkid as dept_pkid,depart_desc,ip_address,mac_address from asset a join department b on a.dept_pkid=b.pkid join location c on a.location_pkid=c.pkid where a.site_pkid =1 and a.pkid not in (Select top 0 pkid from Asset order by a.pkid DESC) ORDER BY a.pkid DESC
2、取结果的代码如下:
Asset asset=new Asset();
asset.setStatus(rs.getInt("status"));
asset.setAssetNo(rs.getString("asset_no"));
asset.setLocationPkid(rs.getInt("location_pkid"));
asset.setAssetDesc(rs.getString("asset_desc"));
asset.setLocationDesc(rs.getString("location_desc"));
asset.setDeptPkid(rs.getInt("dept_pkid"));
asset.setDepartDesc(rs.getString("depart_desc"));
asset.setIpAddress(rs.getString("ip_address"));
asset.setMacAddress(rs.getString("mac_address"));
如上的写法就会报上边的错误,解决的办法是,取结果集的顺序和查询字段的顺序一致。
改正后的代码如下:
Asset asset=new Asset();
asset.setStatus(rs.getInt("status"));
asset.setAssetNo(rs.getString("asset_no"));
asset.setAssetDesc(rs.getString("asset_desc"));
asset.setLocationPkid(rs.getInt("location_pkid"));
asset.setLocationDesc(rs.getString("location_desc"));
asset.setDeptPkid(rs.getInt("dept_pkid"));
asset.setDepartDesc(rs.getString("depart_desc"));
asset.setIpAddress(rs.getString("ip_address"));
asset.setMacAddress(rs.getString("mac_address"));
相关文章推荐
- 关于使用READ TABLE语句的几点注意事项
- 关于COMMIT和ROLLBACK语句的使用注意事项
- ABAP 筑基宝典(5) -- 关于使用READ TABLE语句的几点注意事项
- 关于使用READ TABLE语句的几点注意事项
- 关于使用READ TABLE语句的几点注意事项
- 关于使用READ TABLE语句的几点注意事项
- 关于使用select语句对变量赋值的注意事项
- 关于使用READ TABLE语句的几点注意事项...(原文来源于网络)
- 关于使用READ TABLE语句的几点注意事项...(原文来源于网络)
- 关于使用READ TABLE语句的几点注意事项
- 关于block使用的5点注意事项
- Lambda表达式Contains方法(等价于SQL语句中的like)使用注意事项
- 关于Linux driver中device_create()使用的注意事项
- 关于Cookie的使用案例和注意事项
- 【学习笔记】汇编:关于DEBUG工具使用的时候的一个注意事项
- 关于Runtime Permissions的学习以及使用的一些注意事项
- 小胖说事32-----iOS关于block使用的5点注意事项
- 关于PHP面向对象编程中使用范围解析操作符访问非静态方法的注意事项
- 关于CardView的使用及注意事项
- 在Mybatis中关于xml中sql语句的一些注意事项,再补充