[ASP] SQL update query

Pagina: 1
Acties:

  • Mister_X
  • Registratie: Februari 2000
  • Laatst online: 23-08 19:49
Hallo, ik ben bezig een edit functie toe te voegen aan me site, om items te kunnen editen,

maar ik liep tegen een probleempje aan. Ik weet niet meer hoe het moet, ik kan niet verderkomen dan:

SQL = "UPDATE items SET"
en dan hier een aantal records in die items tabel.

kan iemand laten zien hoe het moest? de search is best wel useluss hier geworden :( en op w3schools staat er nix over. (wel de query maar niet in de asp way) mocht dit topic toch storend zijn, sluit hem dan en stuur mij een mailtje dat ie gesloten is. bvb

  • Pjottski
  • Registratie: Maart 2001
  • Laatst online: 01-09 18:05

Pjottski

🦍 Monkey 🦍

Hier staat hoe het wel moet: http://www.mysql.com/doc/en/UPDATE.html

Dit is mijn uitspraak en daar zult u het mee moeten doen


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 09:42

gorgi_19

Kruimeltjes zijn weer op :9

[Pseudocode]
SQL = "Update Items set veldnaam1 = " & Request.Form("veldnaam1") & " where ID = " & request.form("ID")
[/pseudocode]

En eventueel nog ' gebruiken als het veld geen numeriek veld is

offtopic:
Ik weet het, deze code is gevoelig voor een flinke hackaanval, maar het is pseudocode en alleen voor het idee... :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Mister_X
  • Registratie: Februari 2000
  • Laatst online: 23-08 19:49
gorgi_19 schreef op 14 augustus 2002 @ 17:30:
[Pseudocode]
SQL = "Update Items set veldnaam1 = " & Request.Form("veldnaam1") & " where ID = " & request.form("ID")
[/pseudocode]

En eventueel nog ' gebruiken als het veld geen numeriek veld is

offtopic:
Ik weet het, deze code is gevoelig voor een flinke hackaanval, maar het is pseudocode en alleen voor het idee... :)
thx, zo ver kon ik komen :) (w3school laat zoiets ook zien in SQL) alleen het gaat niet om 1 of 2 record updates maar om 4 ofzo,

update items set
blaat1 = strblaat1
blaat2 = strblaat2
blaat3 = strblaat3
blaat4 = strblaat4 where itemid = stritemid

zoiets, maar ik weet die #(&^@# asp code (de commas en dergelijke) niet meer :(

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 09:42

gorgi_19

Kruimeltjes zijn weer op :9

Mister_X schreef op 14 augustus 2002 @ 17:36:
[...]


thx, zo ver kon ik komen :) (w3school laat zoiets ook zien in SQL) alleen het gaat niet om 1 of 2 record updates maar om 4 ofzo,

update items set
blaat1 = strblaat1
blaat2 = strblaat2
blaat3 = strblaat3
blaat4 = strblaat4 where itemid = stritemid

zoiets, maar ik weet die #(&^@# asp code (de commas en dergelijke) niet meer :(
:? Ik volg het even niet. wat is blaat1 en blaat2? Beiden kolomnamen of zijn het 4 records nu doe je moet invoegen, allemaal onder blaat?
Eerste geval:
update items set
blaat1 = strblaat1,
blaat2 = strblaat2,
blaat3 = strblaat3,
blaat4 = strblaat4 where itemid = stritemid

Tweede geval:

Een for / while loop gebruiken in ASP (meerdere updatequery's uitvoeren) (Iets anders is me nooit gelukt.. :( )

edit:

Kweenie meer zeker, maar als je sowieso weet dat het 4 records zijn, kan je het volgende doen (dacht ik, weet het niet meer zeker)
Update tabelnaam set value1=valuea1 where ID=1; Update tabelnaam (..)etc.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Je bedoelt dit?
code:
1
2
3
4
5
6
7
UPDATE tabel
SET 
   kolom1 = 'a',
   bolom2 = 3,
   kolom3 = #10/08/2002#
WHERE 
   KolomID = 10

Wel vreemd dat je dat niet kon vinden op W3Schools, aangezien ik het in 3 kliks hier kon vinden: http://www.w3schools.com/sql/sql_update.asp

Verwijderd

[Pseudocode]
SQL = "UPDATE [items] SET [veldnaam1] = '" & Request.Form("veldnaam1") & "', [veldnaam2] = '" & Request.Form("veldnaam1") & "' WHERE [id] = " & request.form("ID")
[/pseudocode]

Zoiets, als veldnaam1 en veldnaam2 strings zijn.

  • Pjottski
  • Registratie: Maart 2001
  • Laatst online: 01-09 18:05

Pjottski

🦍 Monkey 🦍

of zoiets:

PHP:
1
2
3
4
5
6
("UPDATE Tbl_Gastenboek 
   SET 
        Naam='" &  Request.Form("editNaam") & "', 
        Email='" &  Request.Form("editEmail") & "', 
        Tekst='" & Request.Form("txtTekst") & "' 
   WHERE ID_Item=" & Request("ID"))

Dit is mijn uitspraak en daar zult u het mee moeten doen


Verwijderd

Wel grappig ... we zijn ondertussen al meer dan een jaar verder, maar nog steeds heb je niets geleerd lijkt het Mister_X, terwijl er in dit topic eenzelfde vraag van jou beantwoord is, inclusief tips over hoe je problemen kunt voorkomen. ASP - recordset updaten mbv een SQL statement

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Sterker nog, als je geen moeite _blijft_ doen, gaan wij er voor zorgen dat je _wel_ moeite _moet_ doen...

Tempbans en dergelijke zijn vaker voor erg luie users uitgedeeld, hou daar rekening mee.

Verwijderd

Ff tussendoor: Je kunt "Form" gewoon weglaten uit "Request.Form", dwz:

Request("editNaam")

werkt ook gewoon...en een beetje netjes die code neerzetten mag ook wel:

code:
1
2
3
4
5
6
7
8
9
    Dim SQLQuery
    SQLQuery =_
    "UPDATE TableName SET " &_
    "Field1Name = '" & Request("Field1StrVal")    & "'" & _
    "Field2Name = '" & Request("Field2StrVal")    & "'" & _
    " WHERE " & _
    "Field3Name = '" & Request("Field3StrVal")    & "'"

    Conn.Execute SQLQuery

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 09:42

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 14 augustus 2002 @ 19:36:
Ff tussendoor: Je kunt "Form" gewoon weglaten uit "Request.Form", dwz:

Request("editNaam")
Dit werkt ook, maar is minder netjes; hij loopt dan het hele request object na, om te kijken of er ergens een waarde in zit (Dus ook o.a. Querystring). Als je zeker weet dat het Form is, waarom zou je hem er niet direct naar verwijzen; is nog sneller en duidelijker ook. :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Mister_X
  • Registratie: Februari 2000
  • Laatst online: 23-08 19:49
Verwijderd schreef op 14 augustus 2002 @ 17:55:
Wel grappig ... we zijn ondertussen al meer dan een jaar verder, maar nog steeds heb je niets geleerd lijkt het Mister_X, terwijl er in dit topic eenzelfde vraag van jou beantwoord is, inclusief tips over hoe je problemen kunt voorkomen. ASP - recordset updaten mbv een SQL statement
www.system-info.com

neem een kijkje zou ik zeggen

en niet zeiken over de snelheid v/d site, het is me eigen webservertje...


http://196.168.0.1:8080/item.asp?ItemID=183 en graag gedaan.

hey acm

[rml][ BC3] ASP->Hulp bij plan opzet SECURE login pagina[/rml] was dit? ik ben nooit weggeweest hoor, zat alleen meestal in spielerij en vidcards enzo, tja asp kan ik nu wel he :)

nou niet zo verlegen, heb er ineens een hoop page views bij, kan me niet voorstellen dat het gewone bezoekers zijn die per ongeluk op me page kwamen, dusz waar blijft het commentaar?

Verwijderd

Ik hoef geen site van jouw hand te zien om te weten dat je op ASP gebied nog steeds in het duister tast. Je vraag zegt genoeg. Sowieso denk ik dat dit meer spam is dan een zinvolle toevoeging aan dit topic.

Ik bedoel dat niet rot, maar begrijp er gewoon niets van. Een query maken is eenvoudig, ASP is eenvoudig. Als je erover nadenkt is het een geval van 1 + 1 = 2.

Volg mijn gedachtestappen eens.
1) je weet hoe je strings aan elkaar plakt, toch?
code:
1
2
3
4
5
<%
Dim strVoorbeeld
strVoorbeeld = "Begin " & "en einde!"
Response.Write strVoorbeeld
%>

2) Je weet dat dit net zo goed werkt met gegevens die je met een form opstuurt, right?:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
<form action="thispage.asp" method="post">
Type hier je voornaam: <input type="text" name="voornaam">
<input type="submit">
</form>

<%
Dim strWelkom
if Trim(Request.Form("voornaam")) <> "" then
   strWelkom = "Welkom " & Trim(Request.Form("voornaam"))
else
   strWelkom = "Welkom vreemdeling"
end if
%>

Je weet hoe een update query eruit ziet, toch? :
code:
1
2
3
4
5
6
7
UPDATE tabel
SET 
   kolom1 = 'a',
   bolom2 = 3,
   kolom3 = #10/08/2002#
WHERE 
   KolomID = 10


4) pak al deze dingen samen, en bouw in een string een query op:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
<%
Dim strSQL
strSQL = _
   "UPDATE tabel " & _
   "SET " & _
   "   kolom1 = '" & Request.Form("veld1") & "', " & _
   "   bolom2 = " & Request.Form("veld2") & ", " & _
   "   kolom3 = #" & Request.Form("veld3") & "# " & _
   "WHERE " & _
   "   KolomID = " & Request.Form("veldID")

Response.Write strSQL
%>

Nu kun je zien of je query wel klopt, en zo niet, corrigeren.

5) Maak met de query zoals hiervoor beschreven en open er een recordset mee

Kan jij mij nu uitleggen welke van deze stappen je niet wist, wat je hier niet van begrijpt en wat je wel geprobeerd hebt? En kunnen wij er nu vanuit gaan dat je dit de volgende keer ook werkelijk probeert toe te passen voordat je hier een vraag opent?

  • Mister_X
  • Registratie: Februari 2000
  • Laatst online: 23-08 19:49
snapte alles behalve stap 4, zoals ik al eerder zei, de commas... en dan nog ziet mijn query er anders uit, ik heb hem namelijk al,

code:
1
2
3
4
5
    SQL = "UPDATE item_pages SET "
    SQL = SQL & "text_parsed='" &strtext_p &"',"
    SQL = SQL & "text_unparsed='" & strtext_u & "'"
    SQL = SQL & " WHERE page_id = " & strpageid
    set objrec=conn.execute(SQL)


oh, en het is geen spam voor me website, alsof iemand van hier ooit op me sitje terug zou komen...

het ging erom dat ACM zegt dat ik een ban ofzo krijg als ik weer es wat vraag, wat ik een jaar geleden ook gevraagt hebt. Met andere woorden, ze(hij) denk(en) dat ik nog steeds de ballen snap van ASP, aangezien de enige aantoonbare manier me eigen sitje is, dat trouwens puur ter referentie voor solicitaties bedoelt is, heb ik dus de url gepost.

Verwijderd

Heb je de variabele SQL al eens geprint?

Overigens, kijk eens naar het volgende stukje code en probeer te begrijpen wat het doet:
code:
1
2
3
Dim strNaam
strNaam = "Jan"
strNaam = strNaam & " Jansen"

[ Voor 0% gewijzigd door Verwijderd op 14-08-2002 23:50 . Reden: aanvulling ]


  • Mister_X
  • Registratie: Februari 2000
  • Laatst online: 23-08 19:49
nee, kan ik dan zien wat er gebeurt?

  • Mister_X
  • Registratie: Februari 2000
  • Laatst online: 23-08 19:49
Jan Jansen

* Mister_X is going to bed, moet er om 4uur uit. ik lees dit topic morgenochtend weer pas door, truste)

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Mister_X schreef op 14 augustus 2002 @ 23:51:
nee, kan ik dan zien wat er gebeurt?

zou je denken?

Misschien krijg je dan wel meer informatie over je parameter...

Verwijderd

Okay, per regelnummer dan:
1) Hier wordt de variabele gedeclareerd, oftewel, geheugenruimte vrijgemaakt met het naampje "strNaam"

2) Hier wordt in de variabele strNaam een waarde gestopt, nl. "Jan"

3) Hier gebeurt iets magisch:
Rechts van de assignment (=) wordt achter de waarde van strNaam de waarde " Jansen" geplakt, en dit wordt door de assignment weer in de variable strNaam gezet.

Eigenlijk lijkt het volgende te gebeuren
code:
1
2
3
4
5
Dim strNaam
Dim strTijdelijk
strNaam = "Jan"
strTijdelijk = strNaam & " Jansen"
strNaam = strTijdelijk

Alleen gebruik je hier strTijdelijk om het tussenresultaat in op te slaan.

In strings die lang zijn wordt vaak de methode toegepast om telkens aan het eind van de string een nieuwe substring te plakken. Dit is eigenlijk heel inefficient, en kan beter als volgt gedaan worden.
code:
1
2
strNaam = "Dit is een hele lange zin, zodat de rest straks te lang wordt om overzichtelijk op 1 regel te staan" & _
   " dus ga ik op de volgende regel verder."

Hier wordt namelijk in 1 keer de waarde aan de variabele toegewezen. De statement wordt alleen mooi onderbroken door de underscore ('_'), waarmee je in VBScript code op verschillende regels als 1 regel kan laten lijken. Daarom werkt het volgende dus ook:
code:
1
2
3
Dim intSom
intSom = 2 + 3 + 3423432 + 5645 + 3424 + _
   87979 + 34234 + 5


HTH :)

  • Mister_X
  • Registratie: Februari 2000
  • Laatst online: 23-08 19:49
wat voor opleiding heb jij gedaan mrx? of cursus? of heb je dit allemaal zelf geleerd? wel bedankt, ik weet wel wat van strings maar weet niet hoe je al die dingen bij de naam noemt.
Pagina: 1