[SQL]Werkt niet..

Pagina: 1
Acties:

  • 418O2
  • Registratie: November 2001
  • Niet online
een mede-stagair heeft een probleem en geen account dus hierbij even onder de mijne:

ik heb een probleem met het volgende stukje ASP en SQL:

code:
1
2
3
4
5
6
7
8
9
10
11
<%
                Set con =  Server.CreateObject("ADODB.Connection")
                con.Open Application("samples_ConnectionString")
    
                id = Request("id")
    opmerking = Request("opmerking")
    
    sql="UPDATE Laatste_Ingevoerde_waardes SET Opmerking='" &   
                opmerking & "' WHERE ID=" & id
    con.Execute(sql)
%>


wanneer ik de variabele opmerking vul met een string ("string") werkt de query wel, maar wanneer ik de variabele vul met (Request("opmerking")) dan werkt deze niet. Ik ga er van uit dat dit komt omdat er dan geen aanhalingstekens om de tekst staan. Ik zoek dus een manier om aanhalingstekens om het statement Request("opmerking") te krijgen, zodat de query wel werkt. Heeft iemand een oplossing? 8)7

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:04
Heb je al eens jouw sql string naar het scherm geprint?

Volgens mij staan er dus wel quotes rond die Request ("opmerking"),
Ik zie nl. dit staan in je code:
code:
1
... SET Opmerking = '" & opmerking & "' ...

Er staan dus degelijk enkele quotes rond opmerking...

https://fgheysels.github.io/


Verwijderd

Het kan zijn dat er in Request("opmerking") ook enkele quotjes staan -> ' <- die dus.
Altijd leuk om even te testen op je eigen en vooral iemand anders z'n werk... :)

In SQL statement moet je, wanneer je enkele quotjes in een string wilt gebruiken, ze dubbel gebruiken, net als in vb:

code:
1
Response.Write """dit staat tussen dubbele ("") quotjes"""


Als je het in je SQL statement als volgt doet moet het werken:

code:
1
SET Opmerking='" & Replace(opmerking, "'", "''") & "' .............


H.T.H.

Verwijderd

Nou het werkt nog steeds niet....

In deze situatie werkt het wél:

code:
1
2
3
4
5
6
7
8
    Set con =  Server.CreateObject("ADODB.Connection")
    con.Open Application("samples_ConnectionString")
    
    id = Request("id")
    opmerking = "tekst"
    
    sql="UPDATE Laatste_Ingevoerde_waardes SET Opmerking='" & opmerking & "' WHERE ID=" & id
    con.Execute(sql)


En in deze situatie niét:

code:
1
2
3
4
5
6
7
8
    Set con =  Server.CreateObject("ADODB.Connection")
    con.Open Application("samples_ConnectionString")
    
    id = Request("id")
    opmerking = Request("opmerking")
    
    sql="UPDATE Laatste_Ingevoerde_waardes SET Opmerking='" & opmerking & "' WHERE ID=" & id
    con.Execute(sql)


Oftewel, de eerste keer wordt de string inclusief de aanhalingstekens opgenomen in de sql-query, maar de tweede keer (volgens mij) niet....

  • El_BingO
  • Registratie: Juli 2001
  • Laatst online: 26-08 12:01
Doe eens Response.write sql bij de 2e situatie, en voer deze eens in in Query Analyzer.
Wat voor foutmelding heb je dan?

  • zneek
  • Registratie: Augustus 2001
  • Laatst online: 08-02-2025
Verwijderd schreef op 05 september 2002 @ 16:20:
...in de sql-query, maar de tweede keer (volgens mij) niet....
Doe dit eens en paste het resultaat
code:
1
2
3
4
5
6
7
8
9
    Set con =  Server.CreateObject("ADODB.Connection")
    con.Open Application("samples_ConnectionString")
    
    id = Request("id")
    opmerking = Request("opmerking")
    
    sql="UPDATE Laatste_Ingevoerde_waardes SET Opmerking='" & opmerking & "' WHERE ID=" & id
    'con.Execute(sql)
                REsponse.write(sql)

  • Woudloper
  • Registratie: November 2001
  • Niet online

Woudloper

« - _ - »

El_BingO en zneek hebben gelijk kijk eerst maar een naar het response.write(sql) en vertel ons (of kijk zelf) naar de SQL string welke moet worden uitgevoerd.

Als je het mij vraagt zit er in opmerking wellicht een quote o.id. en dat is dan de reden dat de SQL String een fout geeft...

Verwijderd

Response.Write(sql):

UPDATE Laatste_Ingevoerde_waardes SET Opmerking='tekst' WHERE ID=6538

Verder geeft ie geen foutmelding, maar hij 'update' ook helemaal niets?!

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:04
Als je dit uitvoert in Query Analyzer oid, dan krijg je geen foutmelding?

Bestaat er wel een record met ID 6538 ?

https://fgheysels.github.io/


Verwijderd

Jazeker, dit record bestaat wel degelijk...

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:04
En het veld ID is een numeriek veld?

https://fgheysels.github.io/


  • Woudloper
  • Registratie: November 2001
  • Niet online

Woudloper

« - _ - »

Als je dan bovenstaande hebt gecheck ([rml]whoami in "[ SQL]Werkt niet.."[/rml]) dan heb je echt alles gedaan en is de SQL gewoon goed en moet het dus ergens anders aan liggen.

Verwijderd

Dank jullie allen, maar het is inderdaad een ander probleem, de nieuwe 'opmerking' wordt op de één of andere manier niet doorgegeven, en daarom is het net alsof er niets geupdate wordt...

Verwijderd

Wat ik mij afvraag is waarom je geen Compileerfout krijgt aangezien er toch echt een _ bij moet als je de regel afbreekt.............
<%
Set con = Server.CreateObject("ADODB.Connection")
con.Open Application("samples_ConnectionString")

id = Request("id")
opmerking = Request("opmerking")

sql="UPDATE Laatste_Ingevoerde_waardes SET Opmerking='" & _
opmerking & "' WHERE ID=" & id
con.Execute(sql)
%>

  • 418O2
  • Registratie: November 2001
  • Niet online
het is opgelost thnx allemaal het is me nu duidelijk (zoiets zou hij zeggen hij zit hier naast mij)
Pagina: 1