[ASP][MSSQL][VBScript] Toevoegen aan selectie

Pagina: 1
Acties:
  • 163 views sinds 30-01-2008

  • HarryL
  • Registratie: Januari 2003
  • Laatst online: 17-11-2025

HarryL

127.0.0.1

Topicstarter
Beste,
Ik heb voor een webbased applicatie een stukje code gemaakt wat dingen moet toevoegen aan een selectie.
Helaas werkt het niet, maar moet het naar mijn inziens goed zijn.
Als ik de code met het betreffende knopje uitvoer lijkt het script het wel te doen, maar de selectie wordt niet uitgebreid.
Heel af en toe doet hij het wel, maar ik kan niet achterhalen waarom hij het vrijwel niet doet.

Hieronder de code van het stukje waarmee hij het zou moeten toevoegen, misschien dat jullie het kleine beestje kunnen vinden. _/-\o_
Op google o.i.d. kan ik helaas niks vinden :(

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
If Request.Form("selectie") = "voegtoe" Then
  SQLStmt = "SELECT * FROM Relaties_zoek WHERE Ident = '"&Ident&"' "
  Set RZoe = Conn.Execute(SQLStmt)
  Do While Not RZoe.EOF
    SQLStmt = "SELECT * FROM Relaties WHERE Relatie_no = '"&RZoe("relatie_no")&"' "
    Set RZoeRel = Conn.Execute(SQLStmt)
    SQLStmt = "SET DATEFORMAT dmy " &_
    "INSERT Relaties_temp " &_
    "( Zoekwaarden       , DateCreate        , relatie_no             , Ident      ) " &_
    "VALUES  " &_
    "( '"&RZoeRel("achternaam")&"' ,'"&date&" "&time&"','"&RZoe("relatie_no")&"', '"&Ident&"') "
    Set RZoeAdd = Conn.Execute(SQLStmt)
    RZoe.movenext
  Loop
  Do While Not RRel.EOF
    SQLStmt  = "SET DATEFORMAT dmy SELECT Relatie_no FROM Relaties_temp WHERE Relatie_no = '"&RRel("relatie_no")&"' "
    Set RZoe = Conn.Execute(SQLStmt)
    If RZoe.recordcount = 0 then
      SQLStmt = "SET DATEFORMAT dmy " &_
      "INSERT Relaties_temp " &_
      "( Zoekwaarden       , DateCreate        , relatie_no             , Ident      ) " &_
      "VALUES  " &_
      "( '"&RRel("achternaam")&"' ,'"&date&" "&time&"','"&RRel("relatie_no")&"', '"&Ident&"') "
      Set RZoeAdd = Conn.Execute(SQLStmt)
    End If
    RRel.movenext
  Loop
End If

I have gone to find myself, if I get back before I return, Please keep me here! PSNID: djmagich


  • azuidhof
  • Registratie: April 2005
  • Laatst online: 07-01-2022
er gaat nu van alles niet zoals het hoort:
- zo te zien stop je gebruikers invoer zo in je SQL (SQL injection.. is massa's info over te vinden)
- de RecordSets RZoe en RRel worden niet afgesloten?
- de code is erg onoverzichtelijk, dat maakt het ook voor jezelf niet makkelijker om te debuggen

tips:
- probeer er stap voor stap doorheen te lopen om te kijken waar het foutloopt
- maar eerst misschien goed bedenken wat je nu precies wilt bereiken, ik heb het idee dat er wel wat te verbeteren valt...

Mijn .NET blog!


  • sig69
  • Registratie: Mei 2002
  • Laatst online: 14:00
En: debuggen!
-Response.write je queries eens
-Doe iets met het resultaat van Conn.Execute(SQLStmt), foutmeldingen kunnen hierdoor teruggegeven worden dacht ik.
Sowieso is je sql syntax al niet zo netjes, ik zie veel velden waarvan ik vermoed dat het integers zijn met ' ' er omheen.

[ Voor 3% gewijzigd door sig69 op 05-10-2006 11:45 ]

Roomba E5 te koop


  • HarryL
  • Registratie: Januari 2003
  • Laatst online: 17-11-2025

HarryL

127.0.0.1

Topicstarter
Wat ik wil bereiken:
3 selectiemogelijkheden

- Selectie vervangen
- Toevoegen aan selectie
- Selectie beperken.

Selectie vervangen werkt perfect :)
Toevoegen --> Werkt niet
Beperken --> Werkt ook.

Naar mijn inziens zou de code moeten werken desondanks hij onoverzichtelijk is.
Maar ik zal eens gaan zoeken op SQL injection, kijken of ik daar verder mee kom.
Andere tips zijn welkom :)

I have gone to find myself, if I get back before I return, Please keep me here! PSNID: djmagich


  • azuidhof
  • Registratie: April 2005
  • Laatst online: 07-01-2022
dus je herbt vergelijkbare code voor vervangen - iets als If Request.Form("selectie") = "vervangen" - die wel werkt? Je zult dan toch moeten kijken naar die code (die wij niet hebben) of er ergens problemen zijn.

In dit geval van classic ASP wil het nog wel eens voorkomen dat de quotejes (enkel, dubbel) verkeerd staan, loop daar in ieder geval eens doorheen

Mijn .NET blog!


  • HarryL
  • Registratie: Januari 2003
  • Laatst online: 17-11-2025

HarryL

127.0.0.1

Topicstarter
De code voor vervang:

code:
1
2
3
4
5
6
7
8
9
10
11
If Request.Form("selectie") = "vervang" Then
  Do While Not RRel.EOF
    SQLStmt = "SET DATEFORMAT dmy " &_
    "INSERT Relaties_temp " &_
      "( Zoekwaarden       , DateCreate        , relatie_no             , Ident      ) " &_
      "VALUES  " &_
      "( '"&Replace(RRel("achternaam"),"'","''")&"' ,'"&date&" "&time&"','"&RRel("relatie_no")&"', '"&Ident&"') "
    Set RZoeAdd = Conn.Execute(SQLStmt)
    RRel.movenext
  Loop
End If


Ik zal ze eens grondig vergelijken.
azuidhof schreef op donderdag 05 oktober 2006 @ 11:49:
dus je herbt vergelijkbare code voor vervangen - iets als If Request.Form("selectie") = "vervangen" - die wel werkt? Je zult dan toch moeten kijken naar die code (die wij niet hebben) of er ergens problemen zijn.

In dit geval van classic ASP wil het nog wel eens voorkomen dat de quotejes (enkel, dubbel) verkeerd staan, loop daar in ieder geval eens doorheen

I have gone to find myself, if I get back before I return, Please keep me here! PSNID: djmagich


  • HarryL
  • Registratie: Januari 2003
  • Laatst online: 17-11-2025

HarryL

127.0.0.1

Topicstarter
Nu ongever 200 keer de code doorgenomen, kan niks vinden wat quote's betreft...
Ook vergeleken, maar ik kan helaas niks bespeuren -O- ;(

I have gone to find myself, if I get back before I return, Please keep me here! PSNID: djmagich


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Je zult toch echt met meer info over de brug moeten komen. Wat bedoel je met "werkt niet"? Wat werkt er niet dan? Wat is de uitvoer? Errors? Heb je al gedebugged? Je queries al eens afgedrukt?

Ik mis hier behoorlijk je eigen inzet / initiatief en dit wordt me toch te zeer een "hou me eens bij mijn handje"-topic. Ik verwacht vanaf hier toch écht meer inzet van jezelf wil je dit topic nog enig nut geven.

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • HarryL
  • Registratie: Januari 2003
  • Laatst online: 17-11-2025

HarryL

127.0.0.1

Topicstarter
info
Wat wil ik
Er dienen dingen aan een selectie toegevoegd te worden, bijvoorbeeld: ik heb als resultaat Beuving als achternaam en wil daar Pietersen aan toevoegen. Daarvoor had ik deze functie geschreven.

Wat werkt er niet
Er wordt niks aan de selectie toegevoegd, het 1e resultaat blijft dus gewoon staan.

Waar gaat het fout
Naar mijn idee gaat het fout met het wegschrijven van de data vanuit de queries

Waarom gaat het fout
Thats the answer I need!

Hoe komen we bij de oplossing
Met hulp van anderen (hoop ik).
Wat zijn jullie allemaal nog meer nodig om mij te kunnen helpen?

I have gone to find myself, if I get back before I return, Please keep me here! PSNID: djmagich


  • HarryL
  • Registratie: Januari 2003
  • Laatst online: 17-11-2025

HarryL

127.0.0.1

Topicstarter
Na verder zoeken, ondertussen 4 bakken koffie mijn handboek ASP doorgenomen te hebben heb ik het probleem nog niet kunnen achterhalen, ik blijf optimistisch en hoop vandaag nog het probleem te vinden.
Met response.write zie ik wel dat de query wordt uitgevoerd...

I have gone to find myself, if I get back before I return, Please keep me here! PSNID: djmagich


  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 17:36

mulder

ik spuug op het trottoir

In plaatst van dagboek bij te houden in dit topic zou je misschien kunnen zorgen voor meer informatie. 'Met response.write zie ik wel dat de query wordt uitgevoerd...' hoe kan dat dan, wat schrijft Response.Write dan op het scherm? Gelukt? Of schrijf je dan gewoon de sql string naar het scherm? Heb je de query al een rechtstreeks in database geprobeerd?

oogjes open, snaveltjes dicht


  • HarryL
  • Registratie: Januari 2003
  • Laatst online: 17-11-2025

HarryL

127.0.0.1

Topicstarter
Als ik een dagboek bij zou houden zou ik wel Lief Dagboek gebruiken.

Response.write geeft de query weer ja.
ik heb de query direct op de database geprobeerd en dit lijkt ook gewoon goed te gaan.
Don Facundo schreef op donderdag 05 oktober 2006 @ 13:34:
In plaatst van dagboek bij te houden in dit topic zou je misschien kunnen zorgen voor meer informatie. 'Met response.write zie ik wel dat de query wordt uitgevoerd...' hoe kan dat dan, wat schrijft Response.Write dan op het scherm? Gelukt? Of schrijf je dan gewoon de sql string naar het scherm? Heb je de query al een rechtstreeks in database geprobeerd?

[ Voor 5% gewijzigd door HarryL op 05-10-2006 13:38 ]

I have gone to find myself, if I get back before I return, Please keep me here! PSNID: djmagich


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
DjMaGiCh schreef op donderdag 05 oktober 2006 @ 13:37:
Response.write geeft de query weer ja.
[...]
Oh ok, dus dat kan het niet zijn ... 8)7
Je komt toch écht met te weinig informatie voor ons om iets mee te kunnen. Je zou op z'n minst de queries eens kunnen posten die uitgevoerd (schijnen te) worden. Maar dan nog mis ik enorm veel eigen inzet en is je informatie niet concreet genoeg voor ons om iets mee te kunnen. Ik adviseer je daarom om eens even naar wat andere topics in PRG te kijken hoe het aldaar gaat en meteen eens even de Programming Beleid Quickstart door te nemen.

Je hoeft van ons niet te verwachten dat wij je probleem wel 'even voor je' oplossen, dat zul je toch echt zelf moeten doen. We kunnen je, at best, alleen in de juiste richting wijzen; iets wat we tot nu toe ook hebben gedaan. Maar dan moet je wel meewerken en er je voordeel mee doen.

Verder zie ik je dit topic 2 x omhoog schoppen met weinig tot geen toegevoegde waarde, iets waar we een edit-knop (Afbeeldingslocatie: http://gathering.tweakers.net/global/templates/tweakers/images/icons/edit.gif) voor uitgevonden hebben, buiten het feit dat we het beleid voeren dat topics niet binnen 24 uur gekicked mogen worden.

GoT is géén (ik herhaal: géén) persoonlijke helpdesk. Als je hier toch alleen maar komt om je eigen problemen op te lossen (iets waar op zich niet zo veel mis mee is), werk dan op z'n minst met ons mee. Maar het zou je sieren als je ook eens wat terug zou doen voor de community ;)

Je bent inmiddels vaak genoeg op bovenstaande punten gewezen middels meerdere methodes (PM's, mail etc.). Doe jezelf en ons een lol en trek er je eens iets van aan. We zeggen dat niet om je te pesten maar om het voor iedereen prettig en leefbaar te houden.

..en dan heb ik het nog niet eens gehad over de "toon" waarmee je "ons" aanspreekt/benaderd als we je proberen te helpen...

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij

Pagina: 1

Dit topic is gesloten.