为什么只能返回一个数据集(50分)

  • 主题发起人 主题发起人 tokey
  • 开始时间 开始时间
T

tokey

Unregistered / Unconfirmed
GUEST, unregistred user!
<% Dim Cnn, StrCnn
Set Cnn = Server.CreateObject("ADODB.Connection")
StrCnn = "Provider=sqloledb;
User ID=sa;
Password=1223;
Initial Catalog=kwkhgl;
Data Source=tokey"
Cnn.Open StrCnn
set rssubSys=Server.createObject("ADODB.Recordset")
set Rshospital=server.createObject("ADODB.Recordset")
Sqlstr="select * from Hospital where hosid="&amp;request("Hosid")
Rshospital.open Sqlstr,Cnn
MYsqlstr="select * from Hospitalsys where hosid="&amp;request("Hosid")
rssubSys.open MYsqlstr,Cnn
%>
request("hosid")有值,两个表都有记录,但返回的数据集中只有rsHospital有记录,
rssubsys.recordcount=-1,为什么会这样,谁能回答我的问题,还请指教.
 
建议你测试一下。
1、
Sqlstr="select * from Hospital where hosid="&amp;request("Hosid")
Rshospital.open Sqlstr,Cnn
MYsqlstr="select * from Hospitalsys where hosid="&amp;request("Hosid")
response.write("MYsqlstr")
测试是否运行了第2条sql
rssubSys.open MYsqlstr,Cnn
看看测试结果再判断
 
response.write 可以打印出语句,但好像下面的语句不能执行,
rssubsys.recordcount总是-1
 
请把
Sqlstr="select * from Hospital where hosid="&amp;request("Hosid")
Rshospital.open Sqlstr,Cnn
MYsqlstr="select * from Hospitalsys where hosid="&amp;request("Hosid")
rssubSys.open MYsqlstr,Cnn
顺序调换测试。
MYsqlstr="select * from Hospitalsys where hosid="&amp;request("Hosid")
rssubSys.open MYsqlstr,Cnn
Sqlstr="select * from Hospital where hosid="&amp;request("Hosid")
Rshospital.open Sqlstr,Cnn
 
把打印出的语句再查询分析器中执行也有结果集返回,但在IE中浏览,总是第一个数据集有数据,第二个没有,为什么????
 
谢谢你的回答,但还是不行,
 
MYsqlstr="select hosid from Hospitalsys where hosid="&amp;request("Hosid")
response.write(mysqlstr) --把打印出的语句拷贝到查询分析器中执行,有数据集返回
rssubSys.open MYsqlstr,Cnn
response.write(rssubsys.recordcount) --此处的值总是 -1
Sqlstr="select * from Hospital where hosid="&amp;request("Hosid")
Rshospital.open Sqlstr,Cnn --可以打开,并有记录集返回
 
请在第一个cnn输出结果后关闭连接看看。
conn.close
 
设置一下 RecordSet对象 Cursor的类型 adOpenKeyset 就行了!
默认是动态获取数据的.所以值返回一条.
如下
rs.CurSorType = adOpenKeyset
然后再open 就可以了.
rs.open ....
'Set rstEmployees = New ADODB.Recordset
Set rstEmployees.ActiveConnection = cnn1
rstEmployees.CursorType = adOpenKeyset
rstEmployees.LockType = adLockBatchOptimistic
rstEmployees.Open "employee", , , , adCmdTable
'
 
itren
设置cusor类型后,还是没有返回纪录集 rssubsys.recordcount还是-1
rsHospital.recordcount>0
 
if (request("Hosid")<>empty) then
Sqlstr="select * from Hospital where hosid="&amp;request("Hosid")
rshospital.CursorType=adOpenKeyset
Rshospital.open Sqlstr,Cnn --可以打开
MYsqlstr="select hosid from Hospitalsys where hosid="&amp;request("Hosid")
rsSubSys.CursorType=adOpenKeyset
rssubSys.open MYsqlstr,Cnn --rssubsys.recordcount=-1
end if
 
rssubSys换个名试试,没准是保留字呢.
 
我换了一种联接方式就好了
开始使用:
StrCnn = "Provider=sqloledb;
User ID=sa;
Password=1223;
Initial Catalog=kwkhgl;
Data Source=(local)"
再使用
StrCnn = "DRIVER={SQL Server};SERVER=(local);UID=sa;PWD=1223;DATABASE=kwkhgl"
奇怪???
 
Rshospital.open Sqlstr,Cnn,1,3
rssubSys.open MYsqlstr,Cnn,1,3
就可以了,开来确实是cursor的问题
 
多多参与大富翁!
 
后退
顶部