Kan jag på något vis returnera ett Recordset från en funktion
som jag kan använda utanför.
tänkte mig att jag bara skall ange en sql-fråga som parameter till funktionen och sedan få tillbaka ett recordset som jag kan använda hur som helst utanför funktionen.
Långt ifrån en ASP expert men borde inte detta fungera?
Public Sub Hello()
Dim rs As Recordset
rs=getRecord("SELECT * FROM users")
' Använd rs här
End Sub
Public Function getRecord(ByVal query As String) As Recordset
Dim rs As Recordset
' kör din sql kod och fyll ditt recordset
getRecord=rs
End Sub
Det är fungerar alldeles utmärkt, Viktor, förutom att man inte kan deklarera datatyper i VBScript, vilket gör att man får ta bort 'As Recordset' (som förövrigt bör föregås av ADODB.) från de ställen där du deklarerar ett recordset.
får det inte att fungera, nåt fel gör jag men jag kan inte komma på vad.
sqlfraga = "select * from tabell"
dim test as Recordset
test=hamta(sqlfraga)
function hamta(varde)
call opendb()
sql = varde
set RecSet = Server.CreateObject("ADODB.Recordset")
RecSet.CursorLocation = 3
RecSet.open sql, Connect
hamta = RecSet
call closedb()
end function
sqlfraga = "select * from tabell"
dim test as Recordset
set test=hamta(sqlfraga)
function hamta(varde)
call opendb()
sql = varde
set RecSet = Server.CreateObject("ADODB.Recordset")
RecSet.CursorLocation = 3
RecSet.open sql, Connect
set hamta = RecSet
[b]set RecSet = Nothing[/b]
call closedb()
end function
jag kan iallafall inte loopa igenom test eller kolla hur många rader det är eller för den delen skriva ut innehållet.
Error: 438 Object doesn't support this property or method: 'test.Recordcount'
File:
Source: Microsoft VBScript runtime error
Line: 128
Code: response.tWrite(test.Recordcount)
Ja, all öl igår har npg slagit ut alldeles för många hjärnceller i dag. Givetvis skall det se ut såhär, precis som Troxy säger, dessutom finns det ju faktiskt inte något Connection-objekt som motsvarar din deklaration som heter 'Connect'.
Gör såhär istället;
sql = "select * from tabell"
dim rs
set rs = GetRs(sql)
function GetRs(sql)
Dim conn, rs
set conn = getConn() '#returnerar ett ADODB.Connection-objekt
set rs = Server.CreateObject("ADODB.Recordset")
rs.CursorLocation = 3
rs.CursorType = 1
rs.open sql, conn
set GetRs = rs
set rs = Nothing
Set conn = Nothing
end function
'# förslag på hur GetConn() kan se ut:
function GetConn()
Dim conn
Set conn = Server.Createobject("ADODB.Connection")
conn.open "Provider=Microsoft.Jet.... [..]"
Set GetConn = conn
Set conn = nothing
end function
251 ms totalt · 3 externa anrop · v20260731065814-full.f363f448