alfaMedlem sedan juni 2000202 inlägg Kör en Access databas och försöker att kolla i databasen om det finns något värde som är större än 2,2 har testat med pungt också men då tar han bara bort den och testar 22
Datatyp är valuta
Feltyp:
Microsoft JET Database Engine (0x80040E14)
Syntaxfel (komma) i frågeuttrycket '(((kop.Pris)>2,2)) OR (((kop.Pris)=2,2))'.
/Order.asp, line 27
Finns det någon bättre datatyp för detta har tänk uppdatera till
Sqlserver
Alfa
@ndersMedlem sedan juni 200032 969 inlägg Jag har aldrig använt valutatypen, men det låter konstigt att den kastar bort decimalpunkt.
Jag hade använt datatypen tal och ställt in antalet decimaler.
I SQL Server finns sedan datatypen float, och det finns säkert motsvarande valutadatatyp om du nu skulle vilja använda det. :)
Mvh,
alfaMedlem sedan juni 2000202 inlägg Om jag använder decimal byter han ut 2.2 till 22
Det skickas från en text ruta och tas emot och läggs in i en variabel. Variabeln skriver ut 2.2 sedan händer det något i databasen.
Alfa
@ndersMedlem sedan juni 200032 969 inlägg Har du provat att byta till datatypen tal?
alfaMedlem sedan juni 2000202 inlägg Nu har jag datatypen
Tal
Decimal = 2
Nu har jag fått den att läsa det men när jag ska lägga in den
Blir det 22 i stället för 2.2 men om jag skriver 2.2 i siffror lägger den in rätt.Det är något med variabeln den säger att det är en sträng. Hur ska man göra med variabeln.
Alfa
@ndersMedlem sedan juni 200032 969 inlägg Jag förstår ingenting av det du skriver. Visa den koden som felar.
Mvh
alfaMedlem sedan juni 2000202 inlägg Felet är Variabeln tror jag.
När jag ska lägga till 2.2 i databasen skriver den 22 i stället
Tar bort pungten när värdet kommer från variabeln.
Men skriver jag 2.2 med siffror funkar det.
Pris = Request.Form ("Pris")
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open "SELECT * FROM kop where 1 = 2", Con, 1 , 2
rs.addnew
rs("Pris") = 2.2 (Funkar)
rs("Pris") = Pris (Funkar inte)
rs.update
rs.close
set RS = nothing
Alfa
alfaMedlem sedan juni 2000202 inlägg Skriver ändå 22 i stället för 2.2
@ndersMedlem sedan juni 200032 969 inlägg Skumt...
Då tar vi och gör det på rätt sätt istället. Med INSERT, och inget recordset. Byt ut:
Pris = Request.Form ("Pris")
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open "SELECT * FROM kop where 1 = 2", Con, 1 , 2
rs.addnew
rs("Pris") = 2.2 (Funkar)
rs("Pris") = Pris (Funkar inte)
rs.update
rs.close
set RS = nothing
mot:
strSQL = "INSERT INTO kop (pris) VALUES (" & replace(request.form("pris"),",",".") & ")"
con.Execute strSQL, , 128
Mvh
alfaMedlem sedan juni 2000202 inlägg Har en kund_id också som måste in pga relationer
Verkar inte som jag fick till det rätt.
strSQL = "INSERT INTO kop (pris),(Kund_id) VALUES (" & replace(request.form("pris"),",",".") & "),1"
@ndersMedlem sedan juni 200032 969 inlägg strSQL = "INSERT INTO kop (pris, Kund_id) VALUES (" & replace(request.form("pris"),",",".") & ", 1)"
Det är en hel del pill att använda INSERT / UPDATE / DELETE-frågor istället för motsvarande ADO-metoder. Men när man väl lärt sig det finns det bara fördelar.
Mvh