ASP利用VB轉(zhuǎn)換為Dll的時(shí)候出現(xiàn),原因可能有以下:
1:對(duì)象沒(méi)有實(shí)例化,就被引用了。
2:在2000下。請(qǐng)查看是否有引用。COM+ Services Type Library(以前的版本中好像是MTS組件)
還有一種就是沒(méi)有把組件注冊(cè)到com+組件管理器中,而導(dǎo)致setcomplete和setabort無(wú)法使用報(bào)錯(cuò)未設(shè)置對(duì)象變量或 With block 變量
如果是這個(gè)錯(cuò)誤的話(huà)(未設(shè)置對(duì)象變量或 With block 變量 錯(cuò)誤),就應(yīng)該是沒(méi)有用 set 對(duì)象 或者用 new,還有一種不太容易發(fā)現(xiàn)的錯(cuò)誤
Dim Rs As Adodb.Recordset
然后在function或sub中,對(duì)rs進(jìn)行事例話(huà)后.
如:
Set Rs = New ADODB.Recordset
.....
Set Rs = Nothing
此時(shí)你可能對(duì)這個(gè)過(guò)程或函數(shù)進(jìn)行重復(fù)使用.如遞歸.就會(huì)發(fā)現(xiàn)出現(xiàn)上述錯(cuò)誤.
原因是在函數(shù)中已經(jīng)把事例對(duì)象給Nothing了.在Set 的時(shí)候.Rs不存在.導(dǎo)致出錯(cuò).此時(shí)候.應(yīng)該避免全局變量的時(shí)候.在過(guò)程或函數(shù)中使用Dim Rs As New ADODB.Recordset
肯定是沒(méi)有初始化一個(gè)對(duì)象。
如果在Dll中引用了類(lèi)型庫(kù),那么在調(diào)用Dll的應(yīng)用中也要引用該類(lèi)型庫(kù),否則將提示變量的With域沒(méi)有定義的錯(cuò)誤