Toon posts:

[ASP] Error: updateable query

Pagina: 1
Acties:
  • 178 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik heb nu een ASP gastenboek.
Het is een bestaande heb m alleen aangepast naar mijn
wensen en in het nederlands.

Nou deed ie het goed op mijn HD samen met IIS 5
en kon ik vrolijk nieuwe records toevoegen aan de database
en dus iedere keer een nieuw bericht in het gastenboek
bewonderen.

Nu heb ik het gastenboek benaderd vanaf het internet en dan
krijg ik bij het verzenden van mijn nieuwe entry de volgende error:
code:
1
2
3
4
5
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver] Operation must 
use an updateable query.
/sign.asp, line 243

Nou had ik op GoT al gezocht en hier ook topics over
gevonden, maar ben er nix wijzer uit geworden.

De line 243 zegt het volgende:
code:
1
Set RS = conn.execute(SQLstmt)

voor de gene die de werking zelf willen testen
http://62.234.23.198/

Nou heb ik dus ook veel gelezen over de rechten die je in
moet stellen. Is er iemand die me hier effe stap voor stap
in kan begeleiden of vertellen, want daar vat ik echt nix van
ik heb alle rechten naar mijn idee goed ingesteld, maar ja...

Verwijderd

Topicstarter
Op woensdag 20 februari 2002 11:08 schreef I-eye het volgende:
wellicht dat je hier iets kan vinden? http://support.microsoft.com/default.aspx?scid=kb;EN-US;q175168
Ik wordt er echt nix wijzer uit, ja dat de rechten waarschijnlijk
fout zijn, maar hoe zet ik die rechten goed??

Ik draai WindowsXP btw, ik weet niet of dat uit maakt.
En ik ben een 100% newbie in ASP :'(

Verwijderd

kun je je sql statement laten zien?

hij geeft een fout op die regel, maar de fout zit waarschijnlijk of in je tabel, of je statement

Verwijderd

Topicstarter
Hier is het hele script:
(De line 243 is aangegeven)
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
<html>
<head>
<title>De Soos.nl</title>
<!-- scripting , html copyright 1998 Kathi O'Shea ------->
<!-- email info@web-savant.com for custom web development --->
<!-- see readme.txt in zip file for modification and ---->
<!-- redistribution info -------------------------------->
</head>
<body bgcolor="#FFFFFF" text="#000080" topmargin=0 leftmargin=0>
<center>
<%
Flag = request.form("Flag")
If IsEmpty(Flag) or Flag = "" then
%>
<font face="tahoma">
<i><h1>Schrijf in ons gastenboek</h1></i>
    <font face="tahoma" size=2>
     <b><i>Let op:</i> * geeft een verplicht veld aan</b>
    </font>

</font>
<p>&nbsp;
<table width=500 border=0>
  <tr>
    <td width=100>
    <font face="tahoma" size=2>
    <b>*Naam:</b>
    </font>
    </td>

    <td width=400>
    <form action="sign.asp" method="post">
    <input type="text" name="Name" size=30>
    </td>
  </tr>
  
  <tr>
    <td width=100>
    <font face="tahoma" size=2>
    <b>*Stad:</b> 
    </font>
    </td>
    
    <td width=400><input type="text" name="City" size=30></td>
  </tr>
  
  <comment><tr>
   ' <td width=100>
    '<font face="tahoma" size=2>
    '<b>&nbsp;State:</b> 
    '</font>
'   </td>
'   
'   <td width=400><input type="text" name="State" size=30></td>
'  </tr></comment>

  <tr>
    <td width=100>
    <font face="tahoma" size=2>
    <b>*Land:</b>
    </font>
    </td>
    
    <td width=400><input type="text" name="Country" size=30></td>
  </tr>

  <tr>
    <td width=100>
    <font face="tahoma" size=2>
    <b>&nbsp;Email:</b> 
    </font>
    </td>
    
    <td width=400><input type="text" name="Email" size=30></td>
  </tr>

  <tr>
    <td width=100>
    <font face="tahoma" size=2>
    <b>&nbsp;Website:</b> 
    </font>
    </td>
    
    <td width=400><input type="text" size=30 name="URL" value="http://"></td>
  </tr>

  <tr>
    <td valign="top" width=100>
    <font face="tahoma" size=2>
    <b>*Bericht:</b> 
    </font>
    </td>
    
    <td width=400>
    <textarea name="Comments" cols=30 rows=5 wrap="virtual">
    </textarea>
    </td>
  </tr>

  <tr>
    <td width=100>&nbsp;</td>
    <td width=400><br>
    <input type="submit" value="Verzenden!">
    <input type="hidden" name="Flag" value=1>
    &nbsp;<input type="reset" value="Wissen"></form>
    </td>
  </tr>

</table>
<%
End If
If Flag = 1 then
    If IsEmpty(request.form("Name")) or request.form("Name")="" then
        response.write "<center><font face='tahoma' size=4>"
        response.write "<p><br><b>U moet een naam invoeren.</b></font>"
        response.write "<form>"
        response.write "<input type='button' value='Opnieuw' onclick=history.back()>"
        response.write "</form>"
        response.end
    Else
        Name = request.form("Name")
    End If

    If IsEmpty(request.form("City")) or request.form("City")="" then
        response.write "<center><font face='tahoma' size=4>"
        response.write "<p><br><b>U moet een stad invoeren.</b></font>"
        response.write "<form>"
        response.write "<input type='button' value='Opnieuw' onclick=history.back()>"
        response.write "</form>"
        response.end
    Else
        City = request.form("City")
    End If

    ' we won't require a state
    State = request.form("State")

    If IsEmpty(request.form("Country")) or request.form("Country")="" then
        response.write "<center><font face='tahoma' size=4>"
        response.write "<p><br><b>U moet een land invoeren.</b>"
        response.write "</font><form>"
        response.write "<input type='button' value='Opnieuw' onclick=history.go(-1)>"
        response.write "</form>"
        response.end
    Else
        Country = request.form("Country")
    End If
    Email = request.form("Email")
        If request.form("URL")="http://" then
           URL = ""
        Else
           URL = request.form("URL") 
        End If
    If IsEmpty(request.form("Comments")) 
or request.form("Comments")="" or request.form("Comments")="    " then
        response.write "<center><font face='tahoma' size=4>"
        response.write "<p><br><b>Vergeet niet een berichtje achter te laten</b>"
        response.write "</font><form>"
        response.write "<input type='button' value='Opnieuw' onclick=history.go(-1)>"
        response.write "</form></center>"
        response.end
    Else
        Comments = request.form("Comments")
        Comments = Replace(Comments, Chr(34), "''")
        Comments = Replace(Comments, vbCrLf, "<br>")
    End If
    Flag = request.form("Flag")

%>
<table width=400 border=0>
  <tr>
    <td width=400>
     <font face="tahoma" size=2>
     <br>Hieronder staat de informatie die u heeft opgegeven. Als u nog
     gegevens wilt wijzigen klikt u op de desbetreffende knop onderaan.
     Anders klikt u op verzenden en wordt uw bericht aan het gastenboek toegevoegd.
     <br>
     <br><b>Naam:</b> <%= Name %>
     <br><b>Stad: </b> <%= City %>
     <comment><br><b>State: </b> <%= State %></comment>
     <br><b>Email: </b> <%= Email %>
     <br><b>Website: </b> <%= URL %>
     <p><b>Bericht: </b> <%= Comments %>
    <form action="sign.asp" method="post">
    <input type="hidden" name="Name" value="<%= Name %>">
    <input type="hidden" name="City" value="<%= City %>">
    <comment><input type="hidden" name="State" value="<%= State %>"></comment>
    <input type="hidden" name="Country" value="<%= Country %>">
    <input type="hidden" name="Email" value="<%= Email %>">
    <input type="hidden" name="URL" value="<%= URL %>">
    <input type="hidden" name="Comments" value="<%= Comments %>">
    <input type="hidden" name="Flag" value=2>
    <input type="submit" value="Verzenden!">&nbsp;
    <input type="button" value="Opnieuw" onClick="history.go(-1)">
    </form></font>
    </td>
  </tr>
</table>
<%
End If
If Flag = 2 then
    Today = Now()
        Name = request.form("Name")
        Name = Replace(Name, "'", "''")
        Name = Replace(Name, Chr(34), "''")
        City = request.form("City")
        City = Replace(City, "'", "''")
        'State = request.form("State")
        Country = request.form("Country")
        Country = Replace(Country, "'", "''")
    Email = request.form("Email")
    URL = request.form("URL")
    Comments = request.form("Comments")
    Comments = Replace(Comments, "'", "''")
    ' ok now we've got our data so let's ship it off to the database
    set conn = server.createobject("adodb.connection")
    ' **** change DSN name if you're using a DSN and you've named it differently
    'conn.open "guestbook"
    ' **** DSN-less connection: comment out above line and uncomment the 
    ' **** Code between "Begin" and "End"
    ' **** BEGIN DSN-LESS CONNECTION CODE 
    DSNtemp="DRIVER={Microsoft Access Driver (*.mdb)}; "
    DSNtemp=dsntemp & "DBQ=" & server.mappath("/guestbook.mdb")
    conn.Open DSNtemp
    ' **** END OF DSN-LESS CONNECTION CODE
    ' **** Note: If using a DSN-less connection, make sure to change server.mappath above to 
    ' **** reflect the actual location of the guestbook database file.
    ' **** The above will work if the database file is at the webserver root.
    ' **** See readme.txt for further information
    ' **** the following line would be used ONLY if you use a system DSN!
    ' conn.Open "guestbook"
    
    SQLstmt = "INSERT INTO Guestbook (Name,City,Country,Email,URL,Comments)"
    SQLstmt = SQLstmt & " VALUES (" 
    SQLstmt = SQLstmt & "'" & Name & "',"
    SQLstmt = SQLstmt & "'" & City & "',"
    'SQLstmt = SQLstmt & "'" & State & "',"
    SQLstmt = SQLstmt & "'" & Country & "',"
    SQLstmt = SQLstmt & "'" & Email & "',"
    SQLstmt = SQLstmt & "'" & URL & "',"
    SQLstmt = SQLstmt & "'" & Comments & "'"
    SQLstmt = SQLstmt & ")"

    Set RS = conn.execute(SQLstmt)  'Line 243 **********
    If err.number>0 then
           response.write "VBScript Errors Occured:" & "<P>"
        response.write "Error Number=" & err.number & "<P>"
        response.write "Error Descr.=" & err.description & "<P>"
        response.write "Help Context=" & err.helpcontext & "<P>" 
        response.write "Help Path=" & err.helppath & "<P>"
        response.write "Native Error=" & err.nativeerror & "<P>"
        response.write "Source=" & err.source & "<P>"
        response.write "SQLState=" & err.sqlstate & "<P>"
       end if
       IF conn.errors.count> 0 then
        response.write "Database Errors Occured" & "<P>"
        response.write SQLstmt & "<P>"
           for counter= 0 to conn.errors.count
            response.write "Error #" & conn.errors(counter).number & "<P>"
            response.write "Error desc. -> " & conn.errors(counter).description & "<P>"
           next
       else
        response.write "<br><br><font face='tahoma' size=4><b>"
        response.write "Dank u, uw bericht is toegevoegd.</font><p>"
        response.write "<font face='tahoma' size=2>"
        response.write "<a href='default.asp'>Bekijk het gastenboek</a>"
       end if
       Conn.Close
    Set conn = nothing
    ' *****************************************************************
    ' The following section of code sends email to the guestbook owner
    ' when somebody signs the guestbook. If you don't want this feature,
    ' just remove this block. Please note that this will ONLY work on
    ' NT SERVER with built-in SMTP!! If it fails, your host does not have
      ' this installed - comment this part out or check to see if they have
      ' a third-party email component available (and then reconfigure to use
      ' that component). 
      '
    ' I M P O R T A N T: 
      ' Make sure to replace "your email address here" with YOUR email address!
    ' ******************************************************************
    'Set Mail = CreateObject("CDONTS.Newmail")
    ' get the sender's address, and if empty, put your own
    'If request("email")="" then
    '   Sender = "your email address here"     ' put your email address here
    'Else
    '   Sender = request("email")
    'End If
    'Mail.From = Sender
    'Mail.To = "your email address here"     ' put YOUR email address here
    'Mail.Subject = "New Guestbook Entry" ' you can change this to whatever you'd like
    'Msg = "Name: " & request("name") & Chr(10)
    'Msg = Msg & "City: " & request("city") & Chr(10)
    'Msg = Msg & "State: " & request("State") & Chr(10)
    'Msg = Msg & "Country: " & request("Country") & Chr(10)
    'Msg = Msg & "URL: " & URL & Chr(10)
    'Msg = Msg & "Comments:" & Chr(10)
    'Msg = Msg & request("Comments")
    'Mail.Body = Msg
    'Mail.Send
    'Set Mail = Nothing
     '*********************************************************************
     ' END OF EMAIL CODE 
     '*********************************************************************
End If
%>
</center>
</body>
</html>

De lay-out is nu iets minder f*cked up

  • j_du_pee
  • Registratie: Maart 2000
  • Laatst online: 23-09-2024

j_du_pee

du pain, du vin, du pee

volgens mij insert je een veld te veel, en wel "state" :)

edit: oeps, die line is commented :o


heb je wel schrijfrechten op de database?

kaart != map && bottel != fles
Wacht op antwoord


Verwijderd

Topicstarter
Ja ik denk het wel, want als ik het nou draai via mijn
//localhost dan maak ik netjes een entry in de database
en heb ik een nieuw record in me mdb file staan, die ook
weer netjes wordt weergegeven in mijn gastenboek.

Zodra ik het via het internet probeer, dan geeft ie dus die
foutmelding. Dus ik denk niet dat het aan de schrijfrechten
van de database ligt.

PS. Ik had me rechten net zo verkloot dat ik niet eens meer
kon internetten, dus moest ik system restore doen.

Is er nergens een microsoft helpfiletje waar je die rechten
precies leert in te stellen? (liefst nederlands)

  • raptorix
  • Registratie: Februari 2000
  • Laatst online: 17-02-2022
Is state niet een reserved woord?

Verwijderd

Topicstarter
Op woensdag 20 februari 2002 12:50 schreef raptorix het volgende:
Is state niet een reserved woord?
Geen idee, hij wordt in het originele gastenboek ook gebruikt
zonder problemen, maar hij is hier toch comment dus dat
zou niet gebruikt mogen worden

  • jochemd
  • Registratie: November 2000
  • Laatst online: 31-08 19:19
Je moet zorgen dat de Anonymous Internet User (IUSR_servername) change permiossies heeft op de database (bij voorkeur ook Add op de directory).

  • PhoneTech
  • Registratie: Mei 2000
  • Laatst online: 09-09 17:22
Als het gastenboek thuis wel goed werkt en op inet niet...dan ligt het denk ik niet aan het gastenboek (zal wel niet zo complex zijn)

Ik weet niet waar je de website host, maar je moet in ieder geval even contact met die lui opnemen zodat zij een dir aan maken waarin scripts schrijfrechten hebben.

Verwijderd

Topicstarter
Op woensdag 20 februari 2002 12:54 schreef jochemd het volgende:
Je moet zorgen dat de Anonymous Internet User (IUSR_servername) change permiossies heeft op de database (bij voorkeur ook Add op de directory).
En waar doe ik dit allemaal?

Dit is een officieel ...->...->... stap voor stap request

Verwijderd

Topicstarter
Op woensdag 20 februari 2002 12:57 schreef PhoneTechnician het volgende:
Als het gastenboek thuis wel goed werkt en op inet niet...dan ligt het denk ik niet aan het gastenboek (zal wel niet zo complex zijn)

Ik weet niet waar je de website host, maar je moet in ieder geval even contact met die lui opnemen zodat zij een dir aan maken waarin scripts schrijfrechten hebben.
Ik draai m op mijn eigen windows xp pc, met IIS 5

  • jochemd
  • Registratie: November 2000
  • Laatst online: 31-08 19:19
Op woensdag 20 februari 2002 12:57 schreef Livors het volgende:

En waar doe ik dit allemaal?

Dit is een officieel ...->...->... stap voor stap request
Rightclick op je database, Properties, Security.

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 17:24

Crazy D

I think we should take a look.

Je hebt niet alleen schrijfrechten nodig op de database, maar ook op de directory (anders kan je nergens je lock filetje plaatsen...).

Exact expert nodig?


Verwijderd

Topicstarter
hij doet t, ik heb m op een brinkster server gezet
en hij doet alles.

Bedankt voor jullie hulp
Pagina: 1