是不是使用Ado之类的连接到数据库上的指针就是客户端的,用SQL server自带的managerment studio连接数据库的就是服务器游标?
还是说本机连接到自己上面安装的数据库那就算是服务器端游标了,通过网络远程连接的数据库游标都是客户端的呢?
感觉好抽象呀,脑壳子都想晕了~~~~~

解决方案 »

  1.   

    ADO中服务器端游标与客户端游标简单理解就是结果集保存的位置,对于客户端游标,结果集将会被下载到本地,这样对于大数据量查询,会导致网络资源的严重占用,而服务器端游标直接将结果集保存到服务器上,可以大大提高页面的处理速度,但一般都不太使用后者(需要配置,而且涉及到安全方面的问题)服务器端游标将结果集放在服务器的缓冲区内,客户端游标将结果集放在客户机的缓冲区内. 
    服务器端游标对数据的变化有很强的敏感性,客户端游标在处理记录集的速度上有优势,配合仅向前游标等使用可以提高程序的性能,并且少占网络资源,还可以支持较多的其他特性.但使用客户端游标在从服务器读取记录集时较占资源.这要看实际情况使用了客户端游标只是在开始时候下载,处理中间一般不会占用很大的网络资源,但是服务器端游标,时时刻刻都要占用。如果在connection中设置游标类型为服务器端,在record中设置为客户端,哪个算数?但是服务器端游标,不查询数据时也要占用吗?用connection对象的语句就使用connection对象的游标(conn.Execute()),使用recordset的用recordset的游标(rst.Open()). 
    只要用到与数据相关的操作就会占用网络资源.比如rst.field(0).value等等.服务器端游标对数据的变化有很强的敏感性,书上也是这么写的,但是怎么情况敏感呢会出现什么情况?这个是因为很多情况下客户的并发查询,会影响服务器端的数据库在ado中使用了服务器端游标,调用存储过程无效吗?如果在取到记录集以后,有人修改了数据库里的数据,使用服务器端游标加上动态游标就可以得到最新的数据,这时如果是客户端游标就无法察觉到数据的变化。要根据实际情况来使用。如果你的系统对数据要求即时性较高则可用服务器端游标,反之则使用客户端游标,提高程序性能。使用服务器端游标也可以调用存储过程的,只不过他无法返回记录条数(recordcount)要使用客户端游标就可以了。