[ASP/ACCESS] Batch update meerdere velden.

Pagina: 1
Acties:
  • 100 views sinds 30-01-2008
  • Reageer

  • Manual
  • Registratie: Maart 2002
  • Laatst online: 11-05 12:58
Ik heb een erg groot formulier welke bestaat uit 6 pagina's (6 stappen)
Elke pagina bevat een formulier van zo'n 20 tot 30 formulier elementen (text, listmenu etc).

Nu wil ik het zo hebben dat men bijv. form 3 invult en tussendoor terug klikken naar form 2 of form 6 zonder dat daarbij de data verloren gaat. De data moet dus (tussentijds) worden opgeslagen in de database wanneer men een form verlaat.

Nu probeerde ik om met 'for each' de waardes uit het voorgaande form op te vragen en daarmee de database te updaten. Het is in dit geval niet te doen om elke waarde met een Request.Form op te halen.

De code:
ASP:
1
2
3
4
5
6
for each item in Request.Form
    if isNumeric(item) then
        strSql = "UPDATE tabelnaam SET veldnaam = '" & Request.Form(item) & "' WHERE ID = " & item
        my_Conn.execute strSql
    end if
next


Dit gaat IMO niet werken omdat ik dan als nog alles appart moet definieren. Er staan namelijk onwijs veel velden in de database.

Voor de beeldvorming een database voorbeeld:

code:
1
2
    id    |    veld 1   |    veld 2    |   veld 3    |   veld 4    |    etc....
   1           data1         data2         data3         data4         etc....


Data 1 t/m etc.. moeten dus in één keer worden ge-update van welk formulier je ook vandaan komt.

Hoe zou ik dit voor elkaar kunnen krijgen? Het is dus niet zo dat ik een foutmelding krijg, maar ik vraag hoe ik het zou kunnen doen :)

[ Voor 6% gewijzigd door Manual op 20-06-2003 14:13 ]

Specs


  • DeverauX
  • Registratie: Februari 2002
  • Niet online

DeverauX

Focus is everything

Data 1 t/m etc.. moeten dus in één keer worden ge-update van welk formulier je ook vandaan komt.
De waarden van deze velden zitten dus in form 1-6 ?
Je kan bij elke submit dan toch inderdaad gewoon middels een loop door je form-collectie heenlopen en de waarden updaten/inserten in je database. :)

edit:
Is er geen mogelijkheid gebruik te maken van session's? Dan zou je namelijk alle data gewoon in een array kunnen plaatsen en deze bij elke request te doorlopen en eventueel gewijzigde waarden te updaten.

[ Voor 27% gewijzigd door DeverauX op 20-06-2003 14:50 ]

...whatever was distasteful or unpleasant or uncomfortable or painful - music could always soothe that.
All you have to do is reach out to beauty.
Quincy Jones


  • Manual
  • Registratie: Maart 2002
  • Laatst online: 11-05 12:58
DeverauX schreef op 20 June 2003 @ 14:48:
[...]

De waarden van deze velden zitten dus in form 1-6 ?
Dat klopt.
Je kan bij elke submit dan toch inderdaad gewoon middels een loop door je form-collectie heenlopen en de waarden updaten/inserten in je database. :)
Je bedoelt op de manier zoals ik die in mijn startpost heb geplaatst. Dat werk volgens mij niet omdat je alle variabelen dan expliciet moet uitlezen. Per Request.form dus.

Specs


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

ASP:
1
2
3
4
5
6
7
8
for each item in Request.Form
    if isNumeric(item) then
        strSql = "UPDATE tabelnaam SET veldnaam = '" & Request.Form(item) & "' WHERE ID = " & item
        Response.Write "To execute:" & strSql 
    Else
         Response.Write "Not numeric:" & item
    end if
next

Hiermee kan je achter alles komen. :)

[ Voor 19% gewijzigd door gorgi_19 op 20-06-2003 15:10 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • DeverauX
  • Registratie: Februari 2002
  • Niet online

DeverauX

Focus is everything

Je bedoelt op de manier zoals ik die in mijn startpost heb geplaatst. Dat werk volgens mij niet omdat je alle variabelen dan expliciet moet uitlezen. Per Request.form dus.
Je kan je query toch ook gewoon dynamisch opbouwen? (wat voor type data is het trouwens wat geupdate moet worden?)

...whatever was distasteful or unpleasant or uncomfortable or painful - music could always soothe that.
All you have to do is reach out to beauty.
Quincy Jones


  • Manual
  • Registratie: Maart 2002
  • Laatst online: 11-05 12:58
gorgi_19 schreef op 20 juni 2003 @ 15:10:
ASP:
1
2
3
4
5
6
7
8
for each item in Request.Form
    if isNumeric(item) then
        strSql = "UPDATE tabelnaam SET veldnaam = '" & Request.Form(item) & "' WHERE ID = " & item
        Response.Write "To execute:" & strSql 
    Else
         Response.Write "Not numeric:" & item
    end if
next

Hiermee kan je achter alles komen. :)
Maar zo kan ik toch niet alle waarden van formulier 1 t/m 6 updaten? Wat daar gebeurt is dat elk record wordt ge-update met een willekeurig ID. Niet één record met meerdere velden of zie ik dat verkeerd?

Specs


  • Manual
  • Registratie: Maart 2002
  • Laatst online: 11-05 12:58
DeverauX schreef op 20 June 2003 @ 15:10:
[...]

Je kan je query toch ook gewoon dynamisch opbouwen? (wat voor type data is het trouwens wat geupdate moet worden?)
Wat bedoel je met dynamisch opbouwen?

Het is allemaal text.

Specs


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Queued schreef op 20 juni 2003 @ 15:20:
[...]


Maar zo kan ik toch niet alle waarden van formulier 1 t/m 6 updaten? Wat daar gebeurt is dat elk record wordt ge-update met een willekeurig ID. Niet één record met meerdere velden of zie ik dat verkeerd?
Ja, dat zie je verkeerd..

Ik voer nergens een update statement uit. Het enige wat deze doet, is je de debuginformatie geven.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • DeverauX
  • Registratie: Februari 2002
  • Niet online

DeverauX

Focus is everything

Maar zo kan ik toch niet alle waarden van formulier 1 t/m 6 updaten? Wat daar gebeurt is dat elk record wordt ge-update met een willekeurig ID. Niet één record met meerdere velden of zie ik dat verkeerd?
Tenzij alle waarden uit alle formulieren niet in je form-collectie aanwezig zijn gaat dit niet lukken nee. Als je alle forms (1-6) op verschillende pages hebt staan moet je de waarden wel ergens opslaan. Je kan met hiddenfields of session's/cookies gaan werken om deze data wel vast te houden.
Wat bedoel je met dynamisch opbouwen?
Ik dacht dat je niet meerdere queries wilde draaien en dus alle velden in één query wilde updaten :)

...whatever was distasteful or unpleasant or uncomfortable or painful - music could always soothe that.
All you have to do is reach out to beauty.
Quincy Jones

Pagina: 1