Toon posts:

ASP & SQL; fout in update-SQL statement

Pagina: 1
Acties:

Verwijderd

Topicstarter
bij het uitvoeren van onderstaand stukje code krijg ik de foutmelding:
[ODBC_SQL_Server_Driver][SQL_Server]Line_1:_Incorrect_syntax_near_'_'.
maar ik zie de fout niet. Het zou in die SQL-string moeten zitten. Ziet iemand het wel?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
dim omschrijving
dim begindatum
dim einddatum
dim BU
dim TypeID
dim strSQL
    
omschrijving = Request.Form("OndOmschr")
begindatum = Request.Form("begindatum")
einddatum = Request.Form("einddatum")
BU = Request.Form("BU")
TypeID = Request.Form("type")

set connectionToDatabase=Server.CreateObject("ADODB.Connection")
connectionToDatabase.ConnectionTimeout=100
connectionToDatabase.Open "Driver={SQL Server};Server=OLAP;Database=UrenReg"

strSQL = "UPDATE Onderdelen SET Onderdelen.omschrijving = '" & omschrijving 
   & "', Onderdelen.IDtype = " & TypeID & ", Onderdelen.IDafdeling = " & BU & " 
   WHERE (((Onderdelen.idOnderdeel)=" & Session("onderdeelID") & "));"
connectionToDatabase.execute strSQL

  • raptorix
  • Registratie: Februari 2000
  • Laatst online: 17-02-2022
Druk je sql af naar scherm en paste het in je database query uitvoer ding

Verwijderd

Topicstarter
dan doet 'ie het wel... das het vreemde!

  • joepP
  • Registratie: Juni 1999
  • Niet online
- Zitten er geen ' tekens in je data?
- Je gebruikt een ()-paar teveel bij je WHERE clausule
- Wat doet die ; aan het eind van het sql-statement?
- Waarom zet je die query niet ff iets netter neer? Voorbeeld:
code:
1
2
3
4
strSQL = "UPDATE Onderdelen SET Onderdelen.omschrijving = '" & omschrijving 
   & "', Onderdelen.IDtype = " & TypeID & ", Onderdelen.IDafdeling = " & BU & " 
   WHERE (((Onderdelen.idOnderdeel)=" & Session("onderdeelID") & "));"
connectionToDatabase.execute strSQL

Wordt
code:
1
2
3
4
5
6
strSQL =        " UPDATE Onderdelen
strSQL = strSQL + "   SET Onderdelen.omschrijving = '" & omschrijving & "',"
strSQL = strSQL + "  Onderdelen.IDtype = " & TypeID & "," 
strSQL = strSQL + "  Onderdelen.IDafdeling = " & BU & ","
strSQL = strSQL + "   WHERE (((Onderdelen.idOnderdeel)=" & Session("onderdeelID") & "))"
connectionToDatabase.execute strSQL

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 19:13

Crazy D

I think we should take a look.

Op donderdag 27 december 2001 13:43 schreef joepP het volgende:
Wordt
code:
1
2
3
4
5
6
strSQL =        " UPDATE Onderdelen
strSQL = strSQL + "   SET Onderdelen.omschrijving = '" & omschrijving & "',"
strSQL = strSQL + "  Onderdelen.IDtype = " & TypeID & "," 
strSQL = strSQL + "  Onderdelen.IDafdeling = " & BU & ","
strSQL = strSQL + "   WHERE (((Onderdelen.idOnderdeel)=" & Session("onderdeelID") & "))"
connectionToDatabase.execute strSQL
Alleen dan zonder de , die na het stukje "& BU" staat :P
En & i.p.v. + :)
Die haakjes kunnen trouwens allemaal weg, typisch een Access query.
Je hoeft trouwens ook niet Onderdelen.veldnaam te doen. Je update alleen de Onderdelen tabel, dus zijn het sowieso alleen velden uit de Onderdelen tabel.
Vergeet ook niet in de omschrijven allen ' te vervangen door '' (2 keer een ' dus) anders gaat ie dat niet snappen.

En sowieso, standaart als er een fout in je query zit: van connectie.Execute commentaar maken en alleen de query afdrukken. Zie je meestal een stuk sneller wat de fout is...

Exact expert nodig?


Verwijderd

Topicstarter
Op donderdag 27 december 2001 13:43 schreef joepP het volgende:
- Zitten er geen ' tekens in je data?
nope
- Je gebruikt een ()-paar teveel bij je WHERE clausule
I know. is copy/paste vanuit access...
- Wat doet die ; aan het eind van het sql-statement?
copy/paste vanuit access...
- Waarom zet je die query niet ff iets netter neer?
is idd een stuk overzichtelijker...


Voorbeeld:
code:
1
2
3
4
strSQL = "UPDATE Onderdelen SET Onderdelen.omschrijving = '" & omschrijving 
   & "', Onderdelen.IDtype = " & TypeID & ", Onderdelen.IDafdeling = " & BU & " 
   WHERE (((Onderdelen.idOnderdeel)=" & Session("onderdeelID") & "));"
connectionToDatabase.execute strSQL

Wordt
code:
1
2
3
4
5
6
strSQL =        " UPDATE Onderdelen
strSQL = strSQL + "   SET Onderdelen.omschrijving = '" & omschrijving & "',"
strSQL = strSQL + "  Onderdelen.IDtype = " & TypeID & "," 
strSQL = strSQL + "  Onderdelen.IDafdeling = " & BU & ","
strSQL = strSQL + "   WHERE (((Onderdelen.idOnderdeel)=" & Session("onderdeelID") & "))"
connectionToDatabase.execute strSQL

  • Coltrui
  • Registratie: Maart 2001
  • Niet online

Coltrui

iddqd

code:
1
TypeID = Request.Form("type")

Request.form geeft een string
UPDATE Onderdelen SET Onderdelen.omschrijving = '" & omschrijving
& "', Onderdelen.IDtype = " & TypeID & ", Onderdelen.IDafdeling = " & BU & "
Hier behandel je't als numerisch?
Pagina: 1