Jag validerar mitt beloppsfält enl. nedan för att undvika injections. Har du testat att använd ett Commandobjekt istället? Vad är fördelen med ytterligare ett objekt? ökar det på något sätt säkerheten eller är det bara ännu ett sätt att utföra samma sak? Mattias, du har rätt i att det är yttterligar ett objek för att utföra samma ska på ett annat sätt. Aha... jag som suttit uppe en dag, en natt och en dag för att säkra upp min sajt mot SQL injection nu =) men det är väl något att tänka på i framtiden kanske.. finns någon artikel på pellesoft som beskriver sommand objektet för en som inte använt det? =)konverteringsfel?
belopp=Replace(request.form("belopp"),"'","")
belopp=Replace(belopp,"\","")
sedan gör jag om kommat till punkt så att MySQL ska gilla det...
belopp=Replace(belopp,",",".")
Jag försökte konvertera det med
belopp=CCur(belopp)
för jagtänkte byta ut det hela mot en sådan för enkelhetens skull, eftersom det alltid är ett belopp, men problemet är att då skippar ASP punkten/kommat, det blir ingen decimalavskiljare utan om jag skriver 34,56 så sparas 3456.00 istället...
och om jag enbart tar belopp=CCur(request.form("belopp")) så får jag fel 80040e31 istället...
några idéer?Sv: konverteringsfel?
Då slipper du många problem:
Sub InsertRecord(con, value)
Const adExecuteNoRecords = 128
Dim cmd
Set cmd = CreateObject("ADODB.Command")
Set cmd.ActiveConnection = con
cmd.CommandText = "INSERT INTO TabellNamn (Col1)" + vbCrLf + _
"VALUES (?)"
cmd.Execute , Array(value)
End Sub
Dim con
Set con = CreateObject("ADODB.Connection")
con.Open CurrentProject.Connection.ConnectionString
InsertRecord con, Request.Form("belopp")
con.Close
Sv:konverteringsfel?
Jag ser att det saknas validering på request.form - sköts det automatiskt med command-objektet eller glömde du?Sv: konverteringsfel?
Jag glömde inte validering.
Vad händer om man skickar in ett ogiltligt värde? Command objektet infogar värdet du skickar till den på den plats du angivit.
En databas motor så som access försöker konvertera värdet till den datatyp värdet skall användas. Så om du skickar med en sträng till en Currency kolumn, så försöker Accces konvertera det till en currency. Om den inte klarar det kommer den rapportera ett fel.
Med komandobjekte behöver du inte omvandla värden till SQL strängar. Det är där vinnsten finns.Sv:konverteringsfel?