webForumDet fria alternativet

update i double kolumn?

7 svar · 573 visningar · startad av clacke

clackeMedlem sedan feb. 2003234 inlägg
#1

Jag vill uppdatera ett tal med ett komma i, dvs 12.12345 och då ska väl kolumnen vara en double i tabellen för att det ska funka, eller?

Jag hämtar värdet så här:
latitud = cint(replace(request.Form("latitud"), "'", "´"))

Jag kan göra en insert men inte update? Vad gör jag för fel?

@ndersMedlem sedan juni 200032 969 inlägg
#2

Cint omvandlar till heltal. Ska du använda decimaler kan du använda cdbl() istället.

Kan vara en bra ide att berätta vad det är som inte funkar. Vad händer? Felmeddelande?

clackeMedlem sedan feb. 2003234 inlägg
#3

Hej @nders
Ja det är det som är problemet, när jag försöker uppdatera så lägger den inte in något alls när jag försöker lägga in i double kolumnen? Och jag får inget felmeddelande heller.
Jag har 2st fält som jag hämtar med:

	latitud = cdbl(replace(request.Form("latitud"), "'", "´"))
	longitud = cdbl(replace(request.Form("longitud"), "'", "´"))

och jag lägger in det i dbn med:

sql= "UPDATE adresser SET datum = '"& datum &"', headline = '"& headline &"', latitud = "& latitud &", longitud = "& longitud &" WHERE adresser_id=" & upload_id &";"
conn.Execute (sql)

Men det funkade inte med cdbl heller, har du något annat förslag? Tack!

Om jag tar bort latitud och longitud från updaten så funkar det dock!

@ndersMedlem sedan juni 200032 969 inlägg
#4

Det är konstigt om den helt enkelt inte uppdaterar och du inte får något felmeddelande - under förutsättning att din WHERE är rätt - men det borde den ju vara om den uppdaterar när du inte har med longitud och latitud.

Men: en sak man måste tänka på med decimaltal och SQL-frågor är att man måste använda decimalpunkt - komma är ju en fält- och värdesavgränsare, inget decimaltecken. Så - efter att du gjort cdbl - gör en replace från komma till punkt innan du lägger in värdena i sql-frågan.

mvh

clackeMedlem sedan feb. 2003234 inlägg
#5

Jag fick det att funka med:

	latitud = request.Form("latitud")
	longitud = request.Form("longitud")
	latitud = cdbl(replace(latitud), ",", ".")
	longitud = cdbl(replace(longitud), ",", ".")

Men det konstiga nu är att den skriver ut komma när jag hämtar värdet från dbn, fast det är punkt i dbn?
Jag får helt enkelt göra en replace när jag skriver ut det på sidan också.

Ett annat konstigt fel var att om jag har noll som sista siffra i något av fälten så lägger den inte in det i dbn?

@ndersMedlem sedan juni 200032 969 inlägg
#6

clacke skrev:

Men det konstiga nu är att den skriver ut komma när jag hämtar värdet från dbn, fast det är punkt i dbn?

Det är inte konstigt. Det beror på vad webbservern har för regionala inställningar. Är den "svensk" visas decimaltal med komma.

clacke skrev:

Ett annat konstigt fel var att om jag har noll som sista siffra i något av fälten så lägger den inte in det i dbn?

Det är inte heller konstigt. Decimaler som slutar på 0 är onödiga. 2.1 är samma sak som 2.1000000. Vill du visa "onödiga" nollor får du lägga till dem vid presentationen (eller eventuellt ställa in i fältet i databasen att du vill ha ett fast antal decimaler - om det går.)

mvh

clackeMedlem sedan feb. 2003234 inlägg
#7

:-) då var det inte konstigt.
Tack för hjälpen! Mvh C

@ndersMedlem sedan juni 200032 969 inlägg
#8

Vasse! :)

133 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)