Avatar billede jmarkling Nybegynder
29. maj 2002 - 12:12 Der er 13 kommentarer og
3 løsninger

Opret Recordsæt fkt....

Jeg prøver at lave en lille funktion der gør det nemmere at oprette et recordsæt, når funktion.inc er includet...

function OpenDB()
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("platodb.mdb")
end function



function OpenRS(sql_streng)
Set objRS  = Server.CreateObject("ADODB.Recordset")
sqlCall = sql_streng
objRS.cursorType=0
objRS.open sqlCall,objConn 'linje 24
end function

Men for fejlen...

ADODB.Recordset error '800a0bb9'

The application is using arguments that are of the wrong type, are out of acceptable range, or are in conflict with one another.

/plato/funktioner.inc, line 24

Jeg tror det er syntaks, fejl. Da jeg ikke er så god til VB.

Her bliver fkt'erne kaldt på den side hvor funktioner.inc er included.
<%OpenDB()%>
<%OpenRS("SELECT MAX(medlemsnr) as nr FROM Medlem")%>
Avatar billede askhoej Praktikant
29. maj 2002 - 12:16 #1
Function MakeRecordset(strSQL)

Dim strConnect
'strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
'            "Data Source=C:\database.mdb;" & _
'            "Persist Security Info=False"


Dim objConn
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open StrConnect,,,adCmdTable

Dim RS
Set RS = objConn.Execute(strSQL)
       
Set MakeRecordset = RS

Set RS = Nothing
End Function


Set RS = MakeRecordSet("SELECT MAX(medlemsnr) as nr FROM Medlem")
Avatar billede -master-d- Nybegynder
29. maj 2002 - 12:17 #2
Det må være noget med at den ikke kan åbne din connection (objConn) i linie 24.
Prøv lige med
objRS.open sqlCall,OpenDB()
Avatar billede tjacob Juniormester
29. maj 2002 - 12:18 #3
Kan du sætte en property i recordsettet (cursortype) før det er åbnet?

prøv:    objRS.open sqlCall,objConn,0
Avatar billede -master-d- Nybegynder
29. maj 2002 - 12:19 #4
Hvorfor ikke lave en connection i din OpenRS function? du vi jo alligevel bruge en fra den anden funktion.
Altså noget lignende det her

function OpenRS(sql_streng)
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("platodb.mdb")
Set objRS  = Server.CreateObject("ADODB.Recordset")
sqlCall = sql_streng
objRS.cursorType=0
objRS.open sqlCall,objConn
end function
Avatar billede jmarkling Nybegynder
29. maj 2002 - 12:30 #5
--->tjacob for samme fejl
--->-master-d- prøver lige dit føste indlæg nu.
Avatar billede jmarkling Nybegynder
29. maj 2002 - 12:30 #6
øv man kan ikke rette sine stavefejl...
Der skulle have stået
--->tjacob får samme fejl
--->-master-d- prøver lige dit føste indlæg nu.
Avatar billede jmarkling Nybegynder
29. maj 2002 - 12:33 #7
--->-master-d-  får samme fejl som før.
--->-master-d- prøver lige dit andet indlæg nu
Avatar billede -master-d- Nybegynder
29. maj 2002 - 12:41 #8
Det kunne rent faktisk også være fordi den allerede har åbnet sin connection til databasen --> objConn.Open, ikk'
Og når du så vil åbne den igen, så er der lige pludselig intet at åbne så en anden ting kunne vel være.

function OpenRS(sql_streng)
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("platodb.mdb")
Set objRS  = Server.CreateObject("ADODB.Recordset")
sqlCall = sql_streng
objRS.cursorType=0
objRS.open sqlCall
end function

Så åbner den din connection og eksekverer derefter din sql streng med et recordset.
Avatar billede jmarkling Nybegynder
29. maj 2002 - 12:41 #9
-Jeg må indrømme at jeg helst vil have det i 2 funktioner, som beskrevet først.
Når jeg bruger master-d- sidste indlæg får jeg følgende fejl når jeg henter noget fra Recordsættet:
Microsoft VBScript runtime error '800a000d'

Type mismatch: 'objRS'

/plato/modtager_side.asp, line 21

<%OpenRS("SELECT MAX(medlemsnr) as nr FROM Medlem")%>


<%nr = objRS("nr") +1 %>'linje 21
Avatar billede jmarkling Nybegynder
29. maj 2002 - 12:45 #10
--> master-d- forsøgte lige dit kl12:41 indlæg og får følgende fejl:
The application requested an operation on an object with a reference to a closed or invalid Connection object.

Aå dit andet forsøg var ok, fik dog en fejl mhs. til mismatch, selvom jeg helst ville have 2 funktioner, det var muligt den gang jeg bare brugte javascript istedet for VB-
Avatar billede jmarkling Nybegynder
29. maj 2002 - 12:52 #11
tjacob, hvad siger du??
Avatar billede jmarkling Nybegynder
29. maj 2002 - 13:22 #12
Kigger videre på det i aften håber dog på et par svar i mellemtiden(:
Avatar billede benson Nybegynder
30. maj 2002 - 12:47 #13
objRS.open sqlCall,objConn

Prøv dette i stedet :
    objRS.CursorType = adOpenKeyset
    objRS.LockType = adLockOptimistic
    objRS.Open sqlCall, objConn, , , adCmdTable

Din idé skulle da gerne virke ellers !
Avatar billede benson Nybegynder
30. maj 2002 - 12:53 #14
MEd andre ord !
objRS.CursorType = 1
objRS.LockType = 3
objRS.Open sqlCall, objConn, , , adCmdTable
Avatar billede jmarkling Nybegynder
30. maj 2002 - 13:51 #15
-Ok Benson jeg kigger på det i aften forhåbentlig glæder mig!!! =)
Avatar billede jmarkling Nybegynder
04. juni 2002 - 12:38 #16
Fejlen var at de skulle erklæres public objConn og ObjRS, fordi... Ja det ved jeg ikke, men det skulle de!!!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester