Avatar billede hepou Nybegynder
05. april 2004 - 13:26 Der er 25 kommentarer og
2 løsninger

tagwall problem

Hvad sker der her?? Koden fejler med:

Microsoft VBScript runtime error '800a01f4'

Variable is undefined: 'adOpenForwardOnly'

/tagwall/tagwall.asp, line 69:


****************************kode*********************************

sub ShowList (intFromId)
                'viser 10 indlæg ad gangen
                dim strSQL, objRS, strWhere
                dim strRows, i
               
                IF intFromId > 0 THEN
                    strWhere = " WHERE guestId <= " & intFromId & " "
                ELSE
                    strWhere = ""
                END IF
               
                strSQL = "SELECT guestId, guestName, guestEmail, guestMessage FROM Tagwall " & strWhere & "ORDER BY datesubmitted DESC"
               
                set objRS = server.CreateObject("ADODB.Recordset")
                with objRS
--------------------Her går det galt-----------------               
.open strSQL, strConnect, adOpenForwardOnly, adLockReadOnly, adCmdText
                   
                    IF NOT .EOF THEN
                        arrRows = .GetRows(10)
                    END IF
                   
                    .close
                end with
                set objRS = Nothing
Avatar billede phineas_phreak Nybegynder
05. april 2004 - 13:36 #1
er dette ikke tilstrækkeligt:

.open strSQL, strConnect
Avatar billede eagleeye Praktikant
05. april 2004 - 13:38 #2
Den kan ikke finde konsterne adOpenForwardOnly, adLockReadOnly og adCmdText.
Du kan evt skrive værdierne for den:

.open strSQL, strConnect, 0, 1, 1

se dem her:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/adoce31/html/ado30ref_28.asp

Du kan også prøve at include filen adovb.inc:
<!-- #include file="adovbs.inc" -->
Avatar billede hepou Nybegynder
05. april 2004 - 13:50 #3
I begge tilfælde får jeg følgende fejl:

Microsoft JET Database Engine error '80004005'

Could not find file 'C:\WINNT\system32\tagwall.mdb'.

/tagwall/tagwall.asp, line 70
Avatar billede phineas_phreak Nybegynder
05. april 2004 - 13:54 #4
godt der er så fejl i din connection string. bruger du servermappath ? det kan være en ide så destinationen bliver korrekt
Avatar billede phineas_phreak Nybegynder
05. april 2004 - 13:54 #5
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("tagwall.mdb")
Avatar billede hepou Nybegynder
05. april 2004 - 13:57 #6
så kommer denne:

Microsoft VBScript runtime error '800a01f4'

Variable is undefined: 'Conn'

/tagwall/conn.asp, line 2
Avatar billede phineas_phreak Nybegynder
05. april 2004 - 13:59 #7
prøv lige at paste starten på dit database kald
Avatar billede hepou Nybegynder
05. april 2004 - 13:59 #8
Jeg brugte:

dim strConnect
strConnect = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source=tagwall.mdb"
Avatar billede phineas_phreak Nybegynder
05. april 2004 - 14:00 #9
eller hele lortet
Avatar billede hepou Nybegynder
05. april 2004 - 14:01 #10
<% OPTION EXPLICIT %>
<!-- #include file="conn.asp" -->

<html>
    <head>
        <title>Phuzzphase tagwall</title>
    </head>
    <body background="bg.jpg">
        <table width="100%"><TR><TD>
       
        <%     dim strAction
            strAction=request("action")
           
            select case strAction
            case "write"
                'vis formular til indlæsning
                ShowOptions
                ShowList request("fromId")
            case "insert"
                'indsæt resultat af formular
                WriteForm
                ShowOptions
                ShowList 0
            case else
                'vis valgmuligheder
                ShowOptions
            end select
           
            '------------------------------------------
            ' Funktioner/Procedurer
            '------------------------------------------
           
            sub ShowForm
                'viser en formular, hvor den besøgende indtaster i
        %>
       
        <form action="tagwall.asp?action=insert" method="post">
            <table width=300 align="center" cellpadding=0 cellspacing=7>
                <TR><TD><div align="center">Name:
                      <input type="text" name="guestName">
                </div></TD></TR>
                <TR><TD><div align="center">Email:
                  <input type="text" name="guestEmail">
                </div></TD></TR>
                <TR><TD><div align="center">
                        <textarea name="guestMessage" cols="50" rows="10"></textarea>
                  </div></TD></TR>
                <TR><TD><div align="right">
                  <input type="submit" value="Add">
                  </div></TD></TR>
                <TR align="center"><TD align="center">
                  <div align="left">
                    <%    end sub
       
            sub ShowList (intFromId)
                'viser 10 indlæg ad gangen
                dim strSQL, objRS, strWhere
                dim strRows, i
               
                IF intFromId > 0 THEN
                    strWhere = " WHERE guestId <= " & intFromId & " "
                ELSE
                    strWhere = ""
                END IF
               
                strSQL = "SELECT guestId, guestName, guestEmail, guestMessage FROM Tagwall " & strWhere & "ORDER BY datesubmitted DESC"
               
                set objRS = server.CreateObject("ADODB.Recordset")
                with objRS
                    .open strSQL, strConnect, 0, 1, 1
                   
                    IF NOT .EOF THEN
                        arrRows = .GetRows(10)
                    END IF
                   
                    .close
                end with
                set objRS = Nothing
               
                IF isArray(arrRows) THEN
                    intFromId = arrRows(0, ubound(arrRows, 2))
                   
                    for i= 0 to ubound(arrRows, 2)
                        response.write arrRows(0,i) & ". " &_
                            arrRows(1,i) &_
                            "<br>" & arrRows(2,i) &_
                            "<br>" & arrRows(3,i) & "<hr>"
                    next
                    response.write _
                        "<a href='tagwall.asp?action=show&fromid=" & intFromId+10 & "'>Prev</a> " &_
                        "<a href='tagwall.asp?action=show&fromId=" & intFormId -1 & "'>Next</a> "
                ELSE
                    response.write "<p>No more</p>"
                END IF
            end sub
           
            sub WriteForm
                'Indlægget skrives til db
                dim strSQL, objCMD
                strSQL =     "INSERT INTO Tagwall (guestName, guestEmail, guestMessage, datesubmitted) " &_
                            "VALUES (" &_
                            "'" & request("questName") & "', " &_
                            "'" & request("guestEmail") & "', " &_
                            "'" & request("guestMessage") & "', " &_
                            "getdate() )"
                set objCMD = server.CreateObject("ADODB.Command")
                with objCMD
                    .ActiveConnection = strConnect
                    .CommandType = adCmdText
                    .CommandText = strSQL
                    .Execute
                end with
                set objCMD = Nothing
            end sub
           
            sub ShowOptions
                'viser hvilke muligheder der er
        %>
                   
                  </div>                    <h1 align="left">Tagwall</h1>
            <p align="left">
                Leave a message for fuzzphase
                <br>
                <a href="tagwall.asp?action=write">Write a message</a><br>
                <a href="tagwall.asp?action=show">Read</a>
            </p>
       
                  <div align="left">
                    <%    end sub
        %>
              </div></TD></TR>
        </table>
        </form>
        </TD></TR></table>
    </body>
</html
Avatar billede hepou Nybegynder
05. april 2004 - 14:02 #11
conn.asp indeholder kun:
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("tagwall.mdb")
%>
Avatar billede phineas_phreak Nybegynder
05. april 2004 - 14:05 #12
godt så. ved at bruge source skal du definere hele stien til din db. derfor er det smartere at bruge mapPath som i min connect string. så hvis tagwall.asp ligger i samme katalog som din db eller deromkring skal du kun skrive mappenavn derfra osv.

Mht. til undefinded, så ændre lige navnet til strConnect og erstat det med din connect string.

således:

Set strConnect = Server.CreateObject("ADODB.Connection")
strConnect.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("tagwall.mdb")

og sikre dig at tagwall.mdb ligger i samme katalog som din fil. ellers så husk og skriv destinationen
Avatar billede hepou Nybegynder
05. april 2004 - 14:08 #13
Microsoft VBScript runtime error '800a01f4'

Variable is undefined: 'strConnect'

/tagwall/conn.asp, line 2




og tagwall.mdb ligger i samme katalog :)
Avatar billede phineas_phreak Nybegynder
05. april 2004 - 14:12 #14
prøv at fjern den øverste linje der hedder <% OPTION EXPLICIT %>
Avatar billede visuel Nybegynder
05. april 2004 - 18:29 #15
Hmm, nu kommer der ingen fejlmeddelelser, men der er ikke nogen form hvor man kan skrive nye beskeder...:/
Avatar billede hepou Nybegynder
05. april 2004 - 18:32 #16
visuel >> ??? Har du stjålet kode???? ;)

Du har fuldstændig ret....
Avatar billede hepou Nybegynder
05. april 2004 - 18:47 #17
En ting der ihf mangler er:

            case "show"
                ' vis indhold
                ShowOptions
                ShowList request("fromId")

der skal indsættes oppe ved de andre case's, men det får stadig ikke formen frem :)
Avatar billede hepou Nybegynder
05. april 2004 - 18:49 #18
og så skal case write ændres til

            case "write"
                'vis formular til indlæsning
                ShowOptions
                ShowForm
Avatar billede hepou Nybegynder
05. april 2004 - 18:50 #19
phineas_phreak >> smider du lige et svar?? - så må pointene være dine :)
Avatar billede hepou Nybegynder
05. april 2004 - 18:53 #20
Men der er også noget  galt med case insert... :(
Avatar billede hepou Nybegynder
05. april 2004 - 19:02 #21
ADODB.Command error '800a0bb9'

Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.

/tagwall/tagwall.asp, line 112
Avatar billede hepou Nybegynder
05. april 2004 - 19:03 #22
Her et sted:


            sub WriteForm
                'Indlægget skrives til db
                dim strSQL, objCMD
                strSQL =    "INSERT INTO Tagwall (guestName, guestEmail, guestMessage, datesubmitted) " &_
                            "VALUES (" &_
                            "'" & request("guestName") & "', " &_
                            "'" & request("guestEmail") & "', " &_
                            "'" & request("guestMessage") & "', " &_
                            "getdate() )"
                set objCMD = server.CreateObject("ADODB.Command")
                with objCMD
                    .ActiveConnection = strConnect
                    .CommandType = adCmdText
                    .CommandText = strSQL
                    .Execute
                end with
                set objCMD = Nothing
            end sub
Avatar billede hepou Nybegynder
05. april 2004 - 19:18 #23
Uha han er ved at blive go' ;-)

.CommandType = adCmdText skal rettes til .CommandType = 1


Nu er der så kun lige en ting tilbage...

Hvad gør jeg når jeg skal have den aktuelle tid i db. Nu bruger jeg jo getdate(), men det kan den ikke finde ud af. Hvad skal jeg bruge istedet??
Avatar billede hepou Nybegynder
05. april 2004 - 19:39 #24
Istedet for getdate() brug da bare date

:) Man lærer mere og mere - hehe...
Avatar billede hepou Nybegynder
06. april 2004 - 00:13 #25
hmm, med date() påstår den at datoen er 07-07-1894??

En anden ting. Når jeg tilføjer i db'en og bagefter trykker opdater lægger den endnu et eksemplar af sidstskrevne i db'en. Hvordan undgår man det??
Avatar billede phineas_phreak Nybegynder
06. april 2004 - 14:15 #26
aye aye
Avatar billede phineas_phreak Nybegynder
06. april 2004 - 14:22 #27
kan du ik bare sende formen til en anden side hvor du definerer din SQL
strSQL = "INSERT INTO Tagwall ........

osv. osv.

og så nederst på den side lave en response.redirect("forrigeside.asp") igen ?
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