清真寺 英文:在vb中如何写语句取出sybase数据库里的前10条记录

来源:百度文库 编辑:高考问答 时间:2024/04/30 23:25:31
在vb中如何写语句取出sybase数据库里的前10条记录,我用select top 10 * from table 以及select * from table limit 10,1 都不行,有没有什么好的办法?请教各位!
set Rowcount 5
select * from tablename
set Rowcount 0

只能在 sql advantage里执行实现,这样的语句如何转为适合于vb的语句呢,注意我这里说的是在vb语境中。

conn.execute("set Rowcount 10")
set rs = conn.execute("select * from table") 不行,得出的结果还是读取了数据库表里的所有记录,rs.recordcount不是10,而是所有记录数.

select top 10 * from table 应该不可以的,我的表有主键,可能top就是不适用于sybase。

sybase似乎并不支持top N的查询方法。
嗯,如果是要取前10条记录,你可以这么写:
set rowcount 100
select * from table

改成vb语句应该是这样的:
set conn = creatobject("ADODBCONNECTION") //你看看你自己的数据库链接是怎么做的
...
conn.execute("set Rowcount")
set rs = conn.execute("select * from table")

//最新修改
方法一,你试着升级sybase,升级到11以上,后面的版本有直接支持Top N的。

方法二,你在db中对表建立索引
create unique clustered index code1thidx1 on code_1th(Code1,Name,UnitNo1,Used) on segrun Unique
然后sql语句改为
set var1 = 0,var2 = 10
conn.execute(“select * from table where index>var1 and index<=var2”)

select top 10 * from table 应该是可以的,不行应该是你的表缺少主键,Sybase允许无主键表的存在,自己添加一个主键即可.