[Access/SQL/ASP] Probleem met UPDATE

Pagina: 1
Acties:

  • bartgabriels
  • Registratie: April 2005
  • Laatst online: 16-02 10:01
Ik ben bezig met een connectiemodule te schrijven in ASP, waardoor in een ASP pagina de variabelen strSQL (de SQL query) en Databank (de locatie van de DBASE) worden gelezen.

Het is dus de bedoeling dat deze modulen overal (zonder veel aanpasse) gebruikt kunnen worden.

Connopen.asp
ASP:
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
<% 
set fso = createobject("scripting.filesystemobject")

' Juiste locatie van de databank controleren
dblocation = server.mappath(dbase)
if fso.FileExists(dblocation) <> TRUE then 
dblocation = server.mappath("../"&dbase)
end if

' voor testdoeleinden
'response.write dblocation & "<br>"
'response.write strSQL & "<br>"

Set adoCon = Server.CreateObject("ADODB.Connection")
adoCon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dblocation

if left(strSQL, 6) = "UPDATE" then
adoCon.execute(strSQL)
else
Set ors = Server.CreateObject("ADODB.Recordset")
ors.Open strSQL, adoCon
end if


%>

ConnClose.asp
ASP:
1
2
3
4
5
6
7
8
9
10
11
<%
if left(strSQL,6) = "UPDATE" then
adoCon.Close
ELSE
ors.Close
Set ors = Nothing
end if
Set adoCon = Nothing

dbase = ""
%>


Op de pagina zelf, ziet het er als volgt uit:
ASP:
1
2
3
4
5
6
7
8
9
10
<% if request.form <> "" then 
strSQL = "UPDATE TblData SET DataComment = """ & inputreplace(request.form("textarea")) & """ WHERE DataID = '" & dataid & "';" 
dbase = "cdmapdata.mdb"%>
<!-- #include file="../conn/connopen.asp" -->
<!-- #include file="../conn/connclose.asp" -->

<%=strsql%>
<font face="Verdana" size="1" color="green">
» Data succesvol aangepast</font>
<% end if %>


De slect query's lopen allemaal perfect. Ik ben nu begonnen met het uibreiden naar de UPDATE queries, maar daar loopt het dus fout. Ik krijg, als ik bovenstaande query uitvoer, met in de strSQL variabele volgende inhoud
SQL:
1
UPDATE TblData SET DataComment = "Keygen included " WHERE DataID = '8'

Deze error:
Error Type:
Microsoft JET Database Engine (0x80040E10)
No value given for one or more required parameters.
/cdmap/conn/connopen.asp, line 18
Deze error slaagt op het lijntje onder de IF structuur op ne Update te detecteren.

Iemand een suggestie ?

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Valt ie niet gewoon over die dubbele quotes?
Probeer het eens met enkele.

Who is John Galt?


  • bartgabriels
  • Registratie: April 2005
  • Laatst online: 16-02 10:01
justmental schreef op woensdag 28 juni 2006 @ 15:13:
Valt ie niet gewoon over die dubbele quotes?
Probeer het eens met enkele.
Net geprobeerd, maakt geen verschil in de error (maar ik dacht dat Access de voorkeur gaf aan " ipv ')
ook reeds geprobeerd:
- de DataID var om te zette naar Integer (voor de veiligheid) met CInt()
- de ' voor en na DataID eruit te halen

  • mark117
  • Registratie: Oktober 2002
  • Laatst online: 16-01 14:28
Wellicht kan je het eens proberen op deze manier

ASP:
1
2
3
4
5
6
7
dim recUpdate
set recUpdate = server.Createobject("ADODB.Recorset")

strSQL = "Select * from TblData WHERE DataID = '" & dataid & "';" 
recUpdate.open strSQL, adoCon, 3, 3
recUpdate("DataComment") = inputreplace(request.form("textarea"))
recUpdate.update


En die foutmelding wil ook nog wel eens komen als je de veldnamen verkeerd getikt hebt, wellicht een idee op dat nog eens goed te controleren.

Ook kan je de query op het scherm laten verschijnen en deze direct in acces plakken om te testen waar het probleem ligt
ASP:
1
Response.write(strSQL)


Ik zie ook dat je het ID vergelijkt alsof het een string is (met single quotes), als het een integer is dan hoeven die single quotes niet

[ Voor 7% gewijzigd door mark117 op 28-06-2006 17:28 ]


  • bartgabriels
  • Registratie: April 2005
  • Laatst online: 16-02 10:01
mark117 schreef op woensdag 28 juni 2006 @ 15:29:
Wellicht kan je het eens proberen op deze manier

En die foutmelding wil ook nog wel eens komen als je de veldnamen verkeerd getikt hebt, wellicht een idee op dat nog eens goed te controleren.
Dat was inderdaad de fout. Heb gezien dat ik de oude databank geuploaded had naar de server ipv de nieuwe.

DOM DOM DOM