Avatar billede uneerup Nybegynder
16. august 2006 - 16:12 Der er 8 kommentarer og
1 løsning

update med decimaler

Hvorfor virker dette ikke??

glplacering=10.25
sql = "UPDATE vare_placering SET rakkefolge= "&glplacering&""
sql = sql & "WHERE vare_placering.gruppeid="&request("gruppeid")&" AND rakkefolge="&request("nyplacering")&""
Set rs = Conn.Execute (sql)

Det er blot et udsnit af koden! jeg kan ikke få lov til at opdatere når tallet indeholder decimaler, men når der ingen er så virker det fint.

jeg benytter en mssql DB og feltet hedder float.

Jeg får følgende fejl:
[Microsoft][ODBC SQL Server Driver][SQL Server]Line 1: Incorrect syntax near '25'.

Håber der er nogle der kan hjælpe!!

/Uneerup
Avatar billede fennec Nybegynder
16. august 2006 - 16:19 #1
Decimaltal skal laves have . som indikator. ASP bruger , når den udskriver, så du skal lave dit tal som tekst i stedet:

glplacering = "10.25"
Avatar billede fennec Nybegynder
16. august 2006 - 16:20 #2
Også burde du få en fejl, fordi du ikke har noget mellemrum mellem tallet og WHERE:
glplacering = "10.25"
sql = "UPDATE vare_placering SET rakkefolge= "&glplacering&" "
sql = sql & "WHERE vare_placering.gruppeid="&request("gruppeid")&" AND rakkefolge="&request("nyplacering")&""
Avatar billede uneerup Nybegynder
16. august 2006 - 16:29 #3
hva så hvis jeg vil pluse en masse tal?

glplacering=glplacering+10.00 osv??
Avatar billede uneerup Nybegynder
16. august 2006 - 16:30 #4
jeg mener hvis jeg nu har har et stort regnestykke, hvordan ligger jeg så resultatet ind? kan jeg omdanne en variabel til at være tekst istedet for tal??
Avatar billede fennec Nybegynder
16. august 2006 - 16:37 #5
Jeps:
sql = "UPDATE vare_placering SET rakkefolge= "& replace(glplacering,",",".") &" "
Avatar billede fennec Nybegynder
16. august 2006 - 16:41 #6
Det smarte er at have et par funktionen som man sender tal (, problemet) og tekst (' problemet) igennem:

function DBNum(funkNumber)
  DBNum = replace(funkNumber, ",", ".")
end function

function DBText(funkText)
  DBText = replace(funkText,"'","''")
end function

sql = "UPDATE vare_placering SET rakkefolge= "& DBNum(glplacering) &" "
sql = sql & "WHERE vare_placering.gruppeid="& DBNum(request("gruppeid")) &" AND rakkefolge="& DBNum(request("nyplacering")) &""

Og hvis man er rigtig smart laver man et isNumber() tjek, så man sikre at der kun kommer tal igennem DBNum funktionen :o)
Avatar billede uneerup Nybegynder
17. august 2006 - 08:49 #7
oki, den med teksten var jeg nu godt klar over, men jeg har bare aldrig haft til opgave at ligge et decimaltil ind, (underligt egentlig :-))

Men jeg siger mange tak for hjælpen, det fungere ganske fint nu. smid et svar.

/Uneerup
Avatar billede fennec Nybegynder
17. august 2006 - 08:58 #8
Glemte helt at nævne at der selvfølgelig også skal være en dato funktion, som formatere datoer rigtigt med delimiter (# eller '). Ved DB skifte skal man nemlig så kun ændre funktionen, også kører siden stadig.

.o) <-- One Eyed Jack
Avatar billede uneerup Nybegynder
17. august 2006 - 09:23 #9
Lige præcis.
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