小生在用VB给ASP写DLL,想把数据库连接传入类中,可用下面的代码无法实现,请教了。Private mvarConn As ADODB.Connection'数据库连接对象
Public Property Let Conn(ByVal vData As ADODB.Connection)
mvarConn = vData
End Property
Public Property Set Conn(ByVal vData As ADODB.Connection)
Set mvarConn = vData
End PropertyPublic Property Get Conn() As ADODB.Connection
Set Conn = mvarConn
End Property<%
connstr="driver={SQL Server};server=(local);database=cctv_Auto;User Id=TestUser;pwd=TestUser"
Set conn=Server.CreateObject("ADODB.Connection")
conn.open connstrSet MyPic=Server.CreateObject("cctv_Car.Picture")
MyPic.SavePath="Upload/"
MyPic.Conn=Conn '第8行
cctv=MyPic.GetDataFromClientResponse.write cctv
%>
用以上ASP代码调试时,出错,
cctv_Car 错误 '800a005b' 未设置对象变量或 With block 变量 /Up.asp,行 8
Public Property Let Conn(ByVal vData As ADODB.Connection)
mvarConn = vData
End Property
Public Property Set Conn(ByVal vData As ADODB.Connection)
Set mvarConn = vData
End PropertyPublic Property Get Conn() As ADODB.Connection
Set Conn = mvarConn
End Property<%
connstr="driver={SQL Server};server=(local);database=cctv_Auto;User Id=TestUser;pwd=TestUser"
Set conn=Server.CreateObject("ADODB.Connection")
conn.open connstrSet MyPic=Server.CreateObject("cctv_Car.Picture")
MyPic.SavePath="Upload/"
MyPic.Conn=Conn '第8行
cctv=MyPic.GetDataFromClientResponse.write cctv
%>
用以上ASP代码调试时,出错,
cctv_Car 错误 '800a005b' 未设置对象变量或 With block 变量 /Up.asp,行 8
一般都是楼上说的原因。
因为VB的这些对象是基于COM,既然是那类对象,需要用Set方式,而和普通变量不同。
楼主有时间看看C++之类对象特征明显的语言,对这种问题会有很深刻的认识。