[ASP] prob met showen en saven van getallen

Pagina: 1
Acties:

  • Urk
  • Registratie: Maart 2000
  • Laatst online: 09-08 00:05
We hebben hier op mijn werk een vrij grote ASP (VBScript) applicatie draaien. We hebben een development/test omgeving en de live omgeving, de live omgeving draait op een andere server. Beide servers zijn Windows 2000 Server (SP3)

Op de ontwikkel omgeving is er geen enkel probleem.
Echter op de live omgeving heb ik een HTML form waar naar waarden word gevraagd, hier kan de user een getal invoeren met decimalen (het decimale karakter moet een . zijn omdat het om engelse invoer gaat) Een JavaScript form check voorkomt dat de user in het input veld een komma typed.

Ik voer dus bijv. 125.75 in. Vervolgens gaat het helemaal mis. Op het scherm wat ik zie nadat het form is gepost en de waarde word geprint krijg ik de waarde: 12575 te zien (dus zonder decimalen, de punt word simpelweg weggehaald)
Ook in de database word 12575 opgeslagen. De database en code zijn exact hetzelfde op de test en live omgeving. Hier kan het dus niet aan liggen.
De database velden (Access) staan ook op Number -- > Decimal.

Nu heb ik inmiddels alle oplossing die in dit topic staat geprobeerd: [rml][ ASP] Notatie verschillen met . of ,[/rml]

Omdat het een live omgeving is kan ik niet simpelweg zomaar rebooten en steeds weer iets anders proberen.
Ik heb de Number en Currency settings als volgt gezet, dit heb ik zelfs via het "Run As..." commando op Regional Settings aangepast voor de user die is ingelogd, en de IIS user.
Zie hier een screen. Dit zou dan toch juist alleen een punt moeten accepteren als decimalen scheiding?

Afbeeldingslocatie: http://ecommerce.pmgibizz.biz/screenlocale.jpg

Heeft er iemand een goede oplossing zodat als ik bijv 65.95 invoer dat ook werkelijk zo in de database word opgeslagen en dat ik dat zo op het scherm zie i.p.v. 6595

Mijn dank is groot.... _/-\o_ _/-\o_ _/-\o_

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Je topictitle is even opgepoetst. Als het URGENT is moet je het niet op een forum vragen maar een expert inhuren a 60 euro per uur :z

Professionele website nodig?


  • whoami
  • Registratie: December 2000
  • Laatst online: 22:54
Eigenlijk zou je er voor moeten zorgen dat een Engelse gebruiker een . kan gebruiken als decimal separator, en een Nederlandse/Belgische een ,

Hoe ziet jouw INSERT query er trouwens uit?

Heb urgent uit jouw topictitel gehaald. Ieder probleem is hier even urgent. Zie ook curry's opmerking

[ Voor 25% gewijzigd door whoami op 27-08-2003 15:49 ]

https://fgheysels.github.io/


  • Urk
  • Registratie: Maart 2000
  • Laatst online: 09-08 00:05
whoami schreef op 27 August 2003 @ 15:48:
Eigenlijk zou je er voor moeten zorgen dat een Engelse gebruiker een . kan gebruiken als decimal separator, en een Nederlandse/Belgische een ,

Hoe ziet jouw INSERT query er trouwens uit?

Heb urgent uit jouw topictitel gehaald. Ieder probleem is hier even urgent. Zie ook curry's opmerking
Sorry voor de urgent, ik zal het onthouden.

Mijn insert in de Database word als volgt gedaan, maar dit moet niet uitmaken want dit werkt in de development omgeving ook gewoon.

ASP.NET Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
Set RS = Server.CreateObject( "ADODB.Recordset" )
sqlString = "SELECT * FROM Claimvalues WHERE claimvalue_id = -1"
RS.open sqlString, Conn, 1, 3
RS.addNew
 RS("claimvalue_dealid") = dealid
 RS("claimvalue_localcurrency") = currencyid
 If Request.Form("revenueamount") = "" Then RS("claimvalue_revenueamount") = 0 Else RS("claimvalue_revenueamount") = Request.Form("revenueamount") End If
 If Request.Form("influencerfee") = "" Then RS("claimvalue_influencerfee") = 0 Else RS("claimvalue_influencerfee") = Request.Form("influencerfee") End If
 If Request.Form("revenueamount_usd") = "" Then RS("claimvalue_revenueamount_usd") = 0 Else RS("claimvalue_revenueamount_usd") = Request.Form("revenueamount_usd") End If
 If Request.Form("influencerfee_usd") = "" Then RS("claimvalue_influencerfee_usd") = 0 Else RS("claimvalue_influencerfee_usd") = Request.Form("influencerfee_usd") End If
RS.Update
RS.Close
Set RS = nothing

  • whoami
  • Registratie: December 2000
  • Laatst online: 22:54
Moet je die waarde niet expliciet casten naar het juiste type?

Verder is een INSERT query altijd netter.

https://fgheysels.github.io/


  • Urk
  • Registratie: Maart 2000
  • Laatst online: 09-08 00:05
whoami schreef op 27 August 2003 @ 16:00:
Moet je die waarde niet expliciet casten naar het juiste type?

Verder is een INSERT query altijd netter.
Dat kan wel ja, maar het werkt gewoon op de development omgeving.
Ik heb liever dat iemand komt met een oplossing die niks met de code of database heeft te maken, want daar kan het haast niet aan liggen, toch?

  • dotcode
  • Registratie: Augustus 2003
  • Laatst online: 14-08 11:19

dotcode

///\00/\\

punt 1. maak een test opstelling, je kan niet testen op een productie server
punt 2. Zoek uit hoe globlisatie werk, zoek hoe je dit goed doet met asp en hoe je het kan testen(http://msdn.microsoft.com...nglobalizationtesting.asp). Google kan je helpen, want het probleem is al vaak opgelost.

  • robjanssen
  • Registratie: September 2001
  • Laatst online: 02-08 16:10

robjanssen

Software Developer

Waar in je code zet je dan de waarde op het scherm?
Als je Response.Write Request.Form("getal") doet dan moet de punt er toch nog inzitten?

  • Urk
  • Registratie: Maart 2000
  • Laatst online: 09-08 00:05
robjanssen schreef op 27 August 2003 @ 19:51:
Waar in je code zet je dan de waarde op het scherm?
Als je Response.Write Request.Form("getal") doet dan moet de punt er toch nog inzitten?
Ja dat klopt dan wel! In een e-mail staat het ook wel juist.
Maar als het in de database word gezet gaat het mis!!
Pagina: 1