Hej ! Du borde skriva om det så du inte hämtar data först när du bara skall skriva: För så få poster låter det i mina öron osannolikt att folk i 5% av fallen lyckats skicka in anmälningar exakt samtidigt som någon annan (förutsatt att inte databasen används mer frekvent på andra ställen i tillämpningen då förstås). Japp, validering görs. Låter som din validering är felaktig.Fel vid skrivning till db
Jag har plötsligt fått ett problem med min accessdatabas.
Jag har en anmälningssida där man anmäler sig till ett evenemang. När jag går in i databasen och kollar ser jag att några poster ( 10 av 200 ) är helt tomma. Det verkar som om de som skulle funnits där får "Sidan kan inte visas". Koden jag har för att skriva in i db är
Kod:
Set rs = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM anmalan where 1=2"
rs.Open Addera, myConn, 1, 3
rs.AddNew
rs("enamn")=session("enamn")
rs("fnamn")=session("fnamn")
rs.Update
rs.Close
myConn.Close
Set rs = nothing
Set myConn = nothing
Det funkar alltså normalt sett men någonting händer då och då
Kan det bero på att flera försöker skriva samtidigt??
Tacksam för svar
OlleSv: Fel vid skrivning till db
<code>
set MyConn = Server.CreateObject("ADODB.Connection")
myConn.Open ("provider ............")
myConn.Execute("insert into anmalan (enamn, fnamn) values('" & a & "','" & b & "')"
myConn.Close
Set myConn = nothing
</code>
Sen bör du passa dig för session("fnamn") osv , de töms om din server startar om och ligger du på hotell kan det lätt hända. Se istället till att ta värdet från den textbox du har på sidan..
a = replace(request("fnamn"), "'","''")
och replace för att inte bli drabbad av sql-injection
Jag tror ditt problem ligger i session("fnamn").. de töms nånstans ..Sv: Fel vid skrivning till db
Gör du någon validering av att session("enamn") och session("fnamn") innehåller vettiga värden?
Testa göra en felkontroll innan du kör rs.update:
' minns inte om det sitter någon form av errorflagga på rs-objektet som bör kollas också isf?
If Err.Number <> 0 Then
' oj fel!
Else
rs.Update
End If
Sv:Fel vid skrivning till db
Jag har först ett formulär, sedan kommer man till en "Detta har du valt"-sida och där kan man välja OK eller Ändra.
Validering görs så att inga fält är tomma och eftersom det man skrivit in i varje textbox på första sidan också skrivs ut på sidan två så vet jag att där finnsvärden. Annars skulle anmälarna inte acceptera det.
Struligt att lösa detta om man inte kan använda sessionvariabler.
Men som sagt blir vissa poster i db helt tomma.
Konstigt!
mvh
OlleSv: Fel vid skrivning till db
Istället för att spara till sessions, kan du göra så här:
Formulär 1 postar till sida 2 som också har ett formulär (med gömda textfält) Sedan kan man godkänna på sida 2, som postar till sida som uppdaterar i db-tabellen.