Jag har olika funktioner och 2 olika db-kopplingar (2 dsn). Jag vill ha en sub som man anropar från funktionen som ordnar db-kopplingen, har ett ex som inte funkar..får fel med att rs inte är ett objekt... Ändra dina sista rader: Tyvärr inte får felet: Du måste deklarera Variabeln utanför din funktion/subrutina. Annars komer variabeln att uhöra existera utanför. Använde mig av ditt förslag...menProblem med DB-koppling
Sub dsnDB (sSql)
gConnect = "DSN=test;UID=sa;PWD="
Set cnConn = Server.CreateObject("ADODB.Connection")
Set gRs = CreateObject("ADODB.RecordSet")
cnConn.ConnectionString = gConnect
cnConn.Open strDSN
gRs.CursorType = adOpenForwardOnly
gRs.LockType = adLockReadOnly
gRs.ActiveConnection = cnConn
gRs.Open(sSql)
exit sub
End sub
---------------------------
Function getTest (strTest)
sSql = "SELECT * FROM Test "
dsnDB (sSql)
set rs = gRs
Do While not rs.eof
bla bla
rs.movenext
Loop
end function
--------------------------
Varför??
Tacksam för tips..Sv: Problem med DB-koppling
set rs = gRs 'ta bort denna rad
Do While not rs.eof 'ändra rs till gRs här
bla bla
rs.movenext 'ändra rs till gRs här
Loop
Detta borde funka
/HMLSv: Problem med DB-koppling
Feltyp:
Körningsfel i Microsoft VBScript (0x800A01A8)
Objekt krävs.: 'gRs'Sv: Problem med DB-koppling
Testa med:
<code>
Dim gConnect
Dim gRs
Sub dsnDB (sSql)
Set cnConn = Server.CreateObject("ADODB.Connection")
cnConn.ConnectionString = "DSN=test;UID=sa;PWD="
cnConn.Open strDSN
Set gRs = CreateObject("ADODB.RecordSet")
gRs.CursorType = adOpenForwardOnly
gRs.LockType = adLockReadOnly
gRs.ActiveConnection = cnConn
gRs.Open(sSql)
End sub
'---------------------------
Function getTest (strTest)
sSql = "SELECT * FROM Test "
dsnDB (sSql)
set rs = gRs
Do Until rs.eof
'bla bla
rs.movenext
Loop
end function
</code>
Men jag tycker din kod ser lite konstig ut. JAg skulle nog skrivit så här:
<code>
Function OpenConnection()
Set OpenConnection = Server.CreateObject("ADODB.Connection")
OpenConnection.Open strDSN
End Function
Function OpenRecordSet(Connection, SQL)
Set OpenRecordSet = CreateObject("ADODB.RecordSet")
OpenRecordSet.Open Sql, Connection, adOpenForwardOnly, adLockReadOnly
End Function
'---------------------------
Function getTest (strTest)
Dim rs
Dim Conn
Conn = OpenConnection()
rs = OpenRecordSet(Conn, "SELECT * FROM Test")
Do Until rs.eof
'bla bla
rs.movenext
Loop
rs.Close
Set rs = Nothing
Conn.Close
Set Conn = Nothing
End Function
</code>Sv: Problem med DB-koppling
Feltyp:
Körningsfel i Microsoft VBScript (0x800A01B6)
Objektet stöder inte egenskapen eller metoden.: 'rs.eof'
???