19. september 2002 - 17:39Der er
5 kommentarer og 1 løsning
Function: Id var ventet
Har en fil med alle mine funktioner, kaldet functions.asp. Første funktion i filen hedder følgende:
----- Function FormaterAfsnit(id,sprog,type)
Dim strSQL, rsFormaterAfsnit, strFormateret
If intTypeID = 1 Then ... -----
Denne funktionsfil er så inkluderet på mine sider. Desværre får jeg denne fejl, blot jeg vil åbne siden, hvor funktionsfilen er inkluderet (kalder ikke engang funktionen):
----- Fejltype: Der opstod en Microsoft VBScript-kompileringsfejl (0x800A03F2) Id var ventet /test/imagehuset/produkter/CMS/CMS/shared/CMS_functions.asp, line 22, column 33 Function FormaterAfsnit(id,sprog,type) --------------------------------^ -----
Nogen, der kan forklare fejlen?
Har prøvet at lægge id,type og sprog i variabler allerførst i funktionen og så arbejde med disse variabler i stedet for id,type og sprog selv, men det hjalp heller ikke.
strSQL = "SELECT * FROM " & VaelgDbTabel(type) & " WHERE ID = " & intAfsnitID & ";" Set rsFormaterAfsnit = Server.CreateObject("ADODB.RecordSet") Set rsFormaterAfsnit = objConn.Execute(strSQL)
While Not rsFormaterAfsnit.EOF Then strIndhold = rsFormaterAfsnit("titel") strIndhold2 = rsFormaterAfsnit("url") intIndholdType = rsFormaterAfsnit("type") rsFormaterAfsnit.MoveNext Wend
rsFormaterAfsnit.Close Set rsFormaterAfsnit = Nothing
If intIndholdType = 1 Then 'Ekstern link If strIndhold <> "" Then strFormateret = "<div class='CMS_brodtekst'><a class='CMS_tekstlink' href='" & strIndhold2 & "' target='_blank'>" & strIndhold & "</a></div>" Else strFormateret = "<div class='CMS_brodtekst'><a class='CMS_tekstlink' href='" & strIndhold2 & "' target='_blank'>" & strIndhold2 & "</a></div>" End If
ElseIf intIndholdType = 1 Then 'Intern link If strIndhold <> "" Then strFormateret = "<div class='CMS_brodtekst'><a class='CMS_tekstlink' href='visside.asp?id=" & strIndhold2 & "&sprogID=" & intSprogID & "' target='_self'>" & strIndhold & "</a></div>" Else strFormateret = "<div class='CMS_brodtekst'><a class='CMS_tekstlink' href='visside.asp?id=" & strIndhold2 & "&sprogID=" & intSprogID & "' target='_self'>visside.asp?id=" & strIndhold2 & "</a></div>" End If
ElseIf intIndholdType = 3 Then 'E-mail link If strIndhold <> "" Then strFormateret = "<div class='CMS_brodtekst'><a class='CMS_tekstlink' href='mailto:" & strIndhold2 & "' target='_self'>" & strIndhold & "</a></div>" Else strFormateret = "<div class='CMS_brodtekst'><a class='CMS_tekstlink' href='mailto:" & strIndhold2 & "' target='_self'>" & strIndhold2 & "</a></div>" End If Else 'Fejl End If
FormaterAfsnit = strFormateret
ElseIf intTypeID = 5 Then 'HTML-kode
Dim strIndhold
strSQL = "SELECT * FROM " & VaelgDbTabel(type) & " WHERE ID = " & intAfsnitID & ";" Set rsFormaterAfsnit = Server.CreateObject("ADODB.RecordSet") Set rsFormaterAfsnit = objConn.Execute(strSQL)
While Not rsFormaterAfsnit.EOF Then strIndhold = rsFormaterAfsnit("tekst") rsFormaterAfsnit.MoveNext Wend
rsFormaterAfsnit.Close Set rsFormaterAfsnit = Nothing
strFormateret = strIndhold
FormaterAfsnit = strFormateret
ElseIf intTypeID = 6 Then 'Billede
Dim strBillede, intX, intY, intJustering
strSQL = "SELECT * FROM " & VaelgDbTabel(type) & " WHERE ID = " & intAfsnitID & ";" Set rsFormaterAfsnit = Server.CreateObject("ADODB.RecordSet") Set rsFormaterAfsnit = objConn.Execute(strSQL)
While Not rsFormaterAfsnit.EOF Then strIndhold = rsFormaterAfsnit("tekst") rsFormaterAfsnit.MoveNext Wend
rsFormaterAfsnit.Close Set rsFormaterAfsnit = Nothing
strFormateret = "<img src='../log/CMS_files/" & strBillede & "' border='0'" If intX <> 0 AND intY <> 0 Then strFormateret = strFormateret & " width='" & intX & ' height='" & intY & "'" End If If intJustering = 0 Then strFormateret = strFormateret & " align=''" ElseIf intJustering = 1 Then strFormateret = strFormateret & " align='left'" ElseIf intJustering = 2 Then strFormateret = strFormateret & " align='right'" Else 'Fejl End If strFormateret = strFormateret & ">"
Kunne ikke umiddelbart finde nogle fejl i koden. Jeg har dog ikke testet den, men observerede dine ; semikoloner i dine SQL-statements. De burde ikke være til gene, men de er unødvendige, så du kan jo prøve at fjerne dem og bare afslutte med "" istedet.
Du kan også prøve at analysere koden lige inden du skriver funktionen. Hvis den ligger på en side med mange andre funktioner, så er det muligt, at det er én af de andre der fejler! (e.g hvis du har glemt af afslutte funktionen eller et end if tag et andet sted).
Må jeg være så fræk at spørge om hvilket CMS du arbejder på? Dit eget? Det ser spændende ud!
Jeg har netop prøvet at være det hele igennem. Det blot en dummy-side, jeg har inkluderet funktionsfilen på, da jeg ville lave db og funktionerne før jeg begyndte at benytte funktionerne.
Og lige inden, jeg skrev ovenstående, virkede siden fint fint. Havde ovenikøbet skrevet skrevet den yderste If-sætning (der tjekker på intTypeID) ind og blot sæt et ' ved hver If/ElseIf. Ingen problemer. Men da jeg så skrev db-udtræk og formatering mv. ind i, så ville den bare ikke vise siden mere.
Jep, det er mit eget lille CMS. Et ganske simpelt et at benytte og udforme, men ret effektivt alligevel (hvis det ikke lige var fordi, at jeg ikke kan få denne lede Function til at virke).
Fik endelig tid til lidt fejlfinding. Fandt også ret hurtigt fejlen. En hjernedød lille ting.... "type" er et reserveret ord.
Starter i stedet min funktion således:
---------- Function FormaterAfsnit(id,sprog,afsnittype)
Dim strSQL, rsFormaterAfsnit, strFormateret, intAfsnitID, intSprogID, intTypeID
intAfsnitID = id intSprogID = sprog intTypeID = afsnittype ----------
.... så er der ikke længere problemer
Synes godt om
Ny brugerNybegynder
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.