Toon posts:

[asp] action cancelled

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik moet voor school een guestbook maken mbv asp e mysql, het gastenboek zelf is al gemaakt en doet het verder prima, nu wilde ik hem uit gaan breiden zodat je je eerst moet registeren en inloggen voordat je wat in het gastenboek kan schrijven. Dat registreren zelf gaat echter niet zo lekker, hij geeft telkens dezelfde fout namelijk.

Microsoft OLE DB Provider for ODBC Drivers error '80040e4e'

Operation was canceled.

Line 18

Deze foutmelding geeft niet precies aan wat er nou mis is en zoeken in msdn geeft no results found bij die error, ik heb al geprobeerd of de letters soms case sensitive zijn en kijken of een extra spatie ergens tussen soms roet in het eten gooide. Verder is de code hetzelfde als uit een boek van waaruit andere het al wel gelukt is om hem te maken. Mis ik soms iets in deze code, ik ben er zelf al verschillende keren doorheen gegaan maar hij is gewoon zoals in dat boek. de namen van de forms zijn verder goed en de namen in de database zijn ook goed.
Verder kan ik geen gebruik maken van DSN omdat de server dat niet ondersteund

Wie kan mij helpen


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<HTML>
<BODY>
<%
If Request("paswoord") = Request("paswoordvalid") then
     Dim Myconnection
     Set Myconnection = Server.CreateObject("ADODB.Connection")
     Call MyConnection.Open( _ 
         "DRIVER={Microsoft Access Driver (*.mdb)};" & _
         "DBQ=" & Server.MapPath("\dingetje\db\dbGastenboek.mdb"))

     Dim SQLStatement
     
     SQLStatement = "SELECT * FROM tblgebruikers WHERE prsnpaswoord =  '" _
                    & Request("paswoord") & "'"
         
     Dim MyRecordset
     Set MyRecordset = Server.CreateObject("ADODB.Connection")
     Call MyRecordset.Open(SQLStatement, MyConnection)

     If MyRecordset.EOF Then
     SQLStatement = _
     "INSERT INTO tblGebruikers(prsngebruikersnaam,prsnpaswoord) VALUES ('" _
             &Request("gebruikersnaam")&"' , '" _
             &Request("paswoord")&"')"
     Call Myrecordset.Close
     Call Myrecordset.Open (SQLStatement, MyConnection)
     Call Response.Write("Je bent geregistreerd, " _ 
           &  Request("gebruikersnaam") & "<BR>")
     Else
          Call Response.Write("Deze naam bestaat al" & "<BR>")
     End if
     MyRecordset.Close
     MyConnection.Close
Else
     Call Response.Write("Verschillende paswoorden <BR>")
End if
%>

</BODY>
</HTML>

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 15:58

gorgi_19

Kruimeltjes zijn weer op :9

Je moet MySQL gebruiken, maar je gebruikt een Access database? :S
Andere vraag, is het soms opeens in om Call te gebruiken?

Maar verder ontopic.... Tsja, je zult toch eerst zelf moeten debuggen WAT regel 18 is. Waarschijnlijk een query. Zet deze eens op je scherm. En geef je IUSR_account ook de juiste schrijfrechten op de dbase

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
ow sorry ik bedoel sql gewoon als commando's.
Call staat in dat boek, geschreven door onze leraar dus ik weet niet precies hoe of wat over call maar ik weet dat het voor mijn "simpele" gastenboek wel werkte.

Die regel waar het om gaat is volgens mij:
code:
1
2
  SQLStatement = "SELECT * FROM tblgebruikers WHERE prsnpaswoord =  '" _
                    & Request("paswoord") & "'


Dit is toch goed geschreven?
Ik gebruik microsoft acces om 2 tabellen te maken in 1 database

En de rechten om het te mogen doen zijn allemaal goed, andere kunnen het ook op deze server (brinkster)

  • robjanssen
  • Registratie: September 2001
  • Laatst online: 02-08 16:10

robjanssen

Software Developer

Probeer het zo eens:
ASP.NET Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<HTML>
<BODY>
<%
If Request("paswoord") = Request("paswoordvalid") then
  Dim ConnectionString
  Dim Conn
  Dim strSQL
  Dim rs
  
  ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("\dingetje\db\dbGastenboek.mdb") + ";Persist Security Info=False"
  Set Conn = Server.CreateObject("ADODB.Connection")
  Conn.Open ConnectionString

     
  strSQL = "SELECT * " _
         & "FROM tblgebruikers " _
         & "WHERE prsnpaswoord = '" & Request("paswoord") & "'"
  Set rs = Server.CreateObject("ADODB.Connection")
  rs.Open strSQLStatement, Conn, 3, 1

  If rs.EOF Then
     strSQL = "INSERT INTO tblGebruikers (prsngebruikersnaam, prsnpaswoord) " _
            & "VALUES ('" & Request("gebruikersnaam") & "' , " _
            & "'" & Request("paswoord") & "')"
     Conn.Execute strSQL
     Response.Write "Je bent geregistreerd, " & Request("gebruikersnaam") & "<br>"
  Else
     Response.Write "Deze naam bestaat al<br>"
  End if

  rs.Close
  Set rs = Nothing
  Conn.Close
  Set Conn = Nothing
Else
  Response.Write "Verschillende paswoorden<br>"
End if
%>
</BODY>
</HTML>

Verwijderd

Topicstarter
hmm, deze verschilt nogal aardig van die in dat boek stond, is dit efficienter/betere code ofzo?

hij geeft nu deze error

ADODB.Connection error '800a0e78'

Operation is not allowed when the object is closed.

/dingetje/registreren.asp, line 21

Verwijderd

Topicstarter
OMG ik heb de fout al, ik ben zo dom :(

code:
1
 Set MyRecordset = Server.CreateObject("ADODB.Connection")


Moet dit zijn

code:
1
 Set MyRecordset = Server.CreateObject("ADODB.Recordset")


Ow ik ben zo dom, nu krijg ik alleen error dat op line 32 die niet geclosed mag worden, die recordset :S maar als ik die regel helemaal weg haal dan doet ie het wel, heel raar.

Voor iedereen die gereplyd heeft bedankt :)

  • bazzemans
  • Registratie: September 2002
  • Laatst online: 23:06
Verwijderd schreef op 26 november 2002 @ 21:33:
OMG ik heb de fout al, ik ben zo dom :(

code:
1
 Set MyRecordset = Server.CreateObject("ADODB.Connection")


Moet dit zijn

code:
1
 Set MyRecordset = Server.CreateObject("ADODB.Recordset")


Ow ik ben zo dom, nu krijg ik alleen error dat op line 32 die niet geclosed mag worden, die recordset :S maar als ik die regel helemaal weg haal dan doet ie het wel, heel raar.

Voor iedereen die gereplyd heeft bedankt :)
Jah, das een bekend probleem, het staat gewoon niet goed in je syllabis... Mooie ronnie's zijn dat die dat ding gemaakt hebben...

  • Scharnout
  • Registratie: November 2000
  • Laatst online: 23-08 12:39

Scharnout

Meuk

Verwijderd schreef op 26 November 2002 @ 21:33:
Ow ik ben zo dom, nu krijg ik alleen error dat op line 32 die niet geclosed mag worden, die recordset :S maar als ik die regel helemaal weg haal dan doet ie het wel, heel raar.
Klopt. Maar die regel kan je beter tussen je else en end if zetten.

Je kijkt namelijk met if RS.EOF of de recordset leeg is. Als ie leeg is, kan hij hem niet closen. Echter als hij wel wat vind, moet je je recordset netjes opruimen.

And Bob's your uncle ...

Pagina: 1