Avatar billede capion Nybegynder
25. marts 2002 - 14:46 Der er 7 kommentarer og
1 løsning

et exempel på at opdatere flere records på een gang ?

Har nogen et exempel på hvordan man opdaterer flere records på een gang  ?
jeg har et exempel selv, men det virker ikke, når jeg sætter mere end eet kryds i afstemningen (se fejlen nederst) :
' kør en løkke 87 gange, sæt c=1, hvis u_input er tom sæt c=0, sql = indsæt i tabellen ballot, i felterne ip og s + u_input
' (feks. s3, s4 eller s87), værdierne "brugerens ipnr" og 1eller nul (som c er = med baseret på u_inputs værdi)
'  "formen" er en stemmeseddel med Checkbox´s, dvs. man kan vælge flere end een. Hver checkbox hedder u_input og
' værdien af checkbox´n er sat = 1 til 87, efter gennemløb af en løkke som henter indhold af en database (med 87 emner)

u_input=request.form("u_input")
u_ip=request.servervariables("remote_addr")

Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)};"
DSN = DSN & "DBQ=" & Server.MapPath ("votes_db.mdb")
Conn.Open DSN

set rs = server.createobject("ADODB.Recordset")

SQL = "SELECT * FROM maps"
rs.open SQL, Conn
%>

<p>Næste mapcycle..Top 20 vinder !<br>
<form method="post" action="<%= request.servervariables("script_name") %>">
<%
i = 1
DO WHILE NOT rs.EOF
%>
<%response.write i%> <input type="checkbox" value="<%=i%>" name="u_input"><%=rs("maptitel")%><br>
<%
i = i + 1
rs.movenext
loop
rs.close
Conn.close
set Conn = nothing
%>
<input type="submit" value="Submit" ></p>
</form>

' her i mellem er noget kontrol på om man har stemt før, baseret på ens ip-adresse..det virker så jeg skriver det ikke med
' her kommer mit "problembarn" :

for x = 1 to 87
c=1
if u_input = "" then c=0
sql = "insert into ballot (ip, s" & u_input &") "
sql = sql & "values ('" & u_ip & "',c)"
rs.Open sql, cn
next
end if

Fejlen jeg får er denne :

Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access-driver] Antallet af forespørgselsværdier og destinationsfelter er ikke det samme.
/vote_dbdenne.asp, line 68


Browser Type:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)

Page:
POST 29 bytes to /vote_dbdenne.asp

POST Data:
u_input=3&u_input=4&u_input=6
Avatar billede bernhof Nybegynder
25. marts 2002 - 15:06 #1
hmm .. jeg tror at

sql = sql & "values ('" & u_ip & "',c)"

skal være

sql = sql & "values ('" & u_ip & "'," & c & ")"

/Mikkel
Avatar billede capion Nybegynder
25. marts 2002 - 17:59 #2
Jeg prøvede at sætte dit forslag ind.
det gav samme fejl :
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access-driver] Antallet af forespørgselsværdier og destinationsfelter er ikke det samme.
/vote_dbdenne.asp, line 69


Browser Type:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)

Page:
POST 29 bytes to /vote_dbdenne.asp

POST Data:
u_input=1&u_input=2&u_input=5

Time:
25. marts 2002, 17:58:17
Avatar billede bernhof Nybegynder
26. marts 2002 - 03:41 #3
ok .. men jeg tror nu alligevel at det skal gøres :)

hvorfor bliver u_input sendt 3 gange med forskellig værdi? (se under "POST data" i fejl-rapporten). Har du flere felter af samme navn? (dette burde helst undgås)

.. det fixer måske ikke dit problem .. blot en kommentar :)
Avatar billede capion Nybegynder
26. marts 2002 - 12:52 #4
Jeg har "lånt" en kode fra en anden; entusiast. Oprindeligt var aspkoden lavet til at sætte en meget simpel afstemning op. Den foregik med "radio"-knapper (hvor man KUN kan vælge een). Jeg har omkodet, stort set hele scriptet, men hidtil har jeg bibeholdt de der "radio"knapper. Nu er det meningen, at man skal kunne "stemme" på flere; op til 20 emner, på een gang, derfor lavede jeg "radio" om til checkbox, men det har jo så også resulteret i at der kommer en række u_input værdier i stedet for kun een.
Hvis men "nøjes" med at vælge een, med checkbox, virker det stadig, så det er altså et ? om hvordan man indsætter flere værdier på een gang.
Avatar billede capion Nybegynder
26. marts 2002 - 13:01 #5
jeg har databasenavn : votes_db
indeholder tabeller : ballot og maps
ballot indeholder : ip (text), s1 (tal), s2 ..-> s87 og entered (datofelt)
maps indeholder : id (autonum) og maptitel (text)
Avatar billede bernhof Nybegynder
26. marts 2002 - 14:28 #6
jeg kan desværre ikke hjælpe dig med dit problem, men jeg kan da sige så meget, at dine checkboxes skal alle have forskellige navne for at du skal kunne skelne mellem dem!
Avatar billede capion Nybegynder
26. marts 2002 - 14:31 #7
OK, tak for tippet S*
Avatar billede capion Nybegynder
11. maj 2002 - 14:50 #8
nå..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester