出错:multiple records found,but only one was expected.什么意思啊?谢谢! 如题,谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 该出错提示表明你操作的表中有相同的数据存在,而你又是对相同的数据进行修改或删除操作.避免该问题的出现是你最好为该表增加一下ID字段,将其类型设为decimal,在其下的列框中将"标识"设为"是",这样你就将该字段标识为"种子"了,从而保证该表中的数据永远是唯一的.(在SQLSERVER中适用) 在delphi中使用BDE连接oracle,sql语句的作用是将某段日期内的所有记录查询出,并插入到临时表中,结果在程序中bde出现上述错误,同样的语句在oralce中的sqlplus中就可以,请教为什么?谢谢! 在delphi中使用BDE连接oracle,sql语句的作用是将某段日期内的所有记录查询出,并插入到临时表中,结果在程序中bde出现上述错误,同样的语句在oralce中的sqlplus中就可以,请教为什么?谢谢!楼上的,怎么解释,谢谢! 很久没正式回答过问题了,有一年多快两年了,既然今天回答开了个头还是把它答完吧,分对于我来说一点用也没有。还是说正事吧。delphi操作oracle用bde不是一个好选择,建议不要用。最好还是用doa(direct oracle access,现在有4.05版)或 ODAC(Oracle Data Access Components 5.1.0.6)。 delphi 窑洞就有下了http://www.51delphi.com/delphi/soft。我引用网上的一段话来说一下rowid吧,看了应该会有所了解的------------------------------------------------------------------------------------ 1、rowid是一个伪列,当创建数据库中的表时就系统会自动创建,附加到表结构中,是用来确保表中行的唯一性,它并不能指示出行的物理位置,但可以用来定位行。当向表中insert数据时,rowid会自动产生数据,此后将不再改变(除非你将此条记录删除了)。 2、rowid是存储在索引中的一组既定的值(当行确定后)。我们可以像表中普通的列一样将它选出来。 3、利用rowid是访问表中一行的最快方式。 4、rowid需要10个字节来存储,显示为18位的字符串。 rowid的组成结构为: data object number(6位字符串)+relative file number(3位字符串)+block number(6位字符串)+row number(3位字符串),如:AAAADeAABAAAAZSAAA 5、我们可以借助oracle提供的包dbms_rowid,来对rowid进行解析从而获取关于行的相关信息: bossdb-SQL>select 2 rowid, 3 dbms_rowid.rowid_object(rowid) obj_id, 4 dbms_rowid.rowid_relative_fno(rowid) df#, 5 dbms_rowid.rowid_block_number(rowid) blknum, 6 dbms_rowid.rowid_row_number(rowid) rowno 7 from p_test where rownum<5; ROWID OBJ_ID DF# BLKNUM ROWNO ------------------ ---------- ---------- ---------- ---------- AAAQ+tAANAAAC6SAAA 69549 13 11922 0 AAAQ+tAANAAAC6SAAB 69549 13 11922 1 AAAQ+tAANAAAC6SAAC 69549 13 1 -------------------------------------------------------------------------------------初学者往往忽略了rowid这个字段,所以当出现数据重复时就不知怎么处理了,最简单的用法是select a.*,a.rowid from 表名 a 试一下吧,累了,不写 delphi 反射的问题 qry1.Filter的一个问题 录入控件焦点的跳转问题请教 调用程序+参数设置,并等待结束 哪位大虾知道是否有显示时间进度条一样的控件 注册有DCOM程序的问题 delphi6中的報表在delphi7中怎麼沒有了,如果要用怎麼辦? ORACLE中的序列如何调用? 请问Win98DCOM服务器在哪? 请问从文本文件中读的数据是string类型的,在插入到数据库前需要将类型转换成整形么? halfdream(哈欠) 进, 其他人均可进,进者有分! 急死人了,我百思不得其解!!!望大虾 进入开解。
楼上的,怎么解释,谢谢!
1、rowid是一个伪列,当创建数据库中的表时就系统会自动创建,附加到表结构中,是用来确保表中行的唯一性,它并不能指示出行的物理位置,但可以用来定位行。当向表中insert数据时,rowid会自动产生数据,此后将不再改变(除非你将此条记录删除了)。 2、rowid是存储在索引中的一组既定的值(当行确定后)。我们可以像表中普通的列一样将它选出来。 3、利用rowid是访问表中一行的最快方式。
4、rowid需要10个字节来存储,显示为18位的字符串。 rowid的组成结构为:
data object number(6位字符串)+relative file number(3位字符串)+block number(6位字符串)+row number(3位字符串),如:AAAADeAABAAAAZSAAA 5、我们可以借助oracle提供的包dbms_rowid,来对rowid进行解析从而获取关于行的相关信息:
bossdb-SQL>select
2 rowid,
3 dbms_rowid.rowid_object(rowid) obj_id,
4 dbms_rowid.rowid_relative_fno(rowid) df#,
5 dbms_rowid.rowid_block_number(rowid) blknum,
6 dbms_rowid.rowid_row_number(rowid) rowno
7 from p_test where rownum<5;
ROWID OBJ_ID DF# BLKNUM ROWNO
------------------ ---------- ---------- ---------- ----------
AAAQ+tAANAAAC6SAAA 69549 13 11922 0 AAAQ+tAANAAAC6SAAB 69549 13 11922 1 AAAQ+tAANAAAC6SAAC 69549 13 1 -------------------------------------------------------------------------------------初学者往往忽略了rowid这个字段,所以当出现数据重复时就不知怎么处理了,最简单的用法是
select a.*,a.rowid from 表名 a 试一下吧,累了,不写