[ASP+MySQL] Nederlandse bedragen invoeren

Pagina: 1
Acties:

  • Scharnout
  • Registratie: November 2000
  • Laatst online: 23-08 12:39
Ik zit hier een site te maken in asp met session.lcid=1043 . Nu heb ik alleen een probleem dat hij telkens de bedragen van laten we zeggen 24.45 euro als 24 euro invoert.

het MySQL-veld is double (met 2 decimalen) maar in mijn insert statements staat (omdat het nederlandse bedragen zijn) 24,45 dus MySQL denk dat het twee invoervelden zijn. Dus als ik:

INSERT INTO tabel(bedrag) VALUES (24,45) doe dan geeft hij een count-error (je wilt meer invoeren dan dat je velden opgegeven hebt).

Ik neem aan dat er vast meer mensen zijn geweest met dit probleem. Hoe los je dit op?

And Bob's your uncle ...


  • stfn345
  • Registratie: Januari 2000
  • Laatst online: 10:06
Gewoon puntjes gebruiken ;0)

  • Scharnout
  • Registratie: November 2000
  • Laatst online: 23-08 12:39
Goh bedankt!

Gaat niet werken denk ik als ik straks op een nederlandse server kom te staan. Zet tie fijn die puntjes weer om.

And Bob's your uncle ...


  • Croga
  • Registratie: Oktober 2001
  • Laatst online: 14:13

Croga

The Unreasonable Man

Wat ik in die gevallen veel doe is voor de submit een *100 geven, en bij iedere retrieve een /100. Op die manier vang je alle decimal separators voor currency velden af.....

  • Scharnout
  • Registratie: November 2000
  • Laatst online: 23-08 12:39
Daar zat ik ook aan te denken. Best shit! Moet toch makkelijker kunnen?

And Bob's your uncle ...


  • riezebosch
  • Registratie: Oktober 2001
  • Laatst online: 21-06 17:10
ik heb laatst voor een VB project het volgende gedaan:
ik sta alleen "," toe in het tekstvak, aangezien dit vrij normaal in NL is.

If (InStr(txtBedrag, ",") <> 0 And Right(txtBedrag, Len(txtBedrag) - InStrRev(txtBedrag, ",")) <> "") Then
dblBedrag = Left(txtBedrag, InStr(txtBedrag, ","))
dblBedrag = dblBedrag + ((Right(txtBedrag, Len(txtBedrag) - InStrRev(txtBedrag, ","))) / (10 ^ Int(Len(txtBedrag) - InStrRev(txtBedrag, ","))))
Else
dblBedrag = txtBedrag
End If

Zo converteerd ie intern de string uit het tekstvak altijd naar een double :P Of dat nog uitmaakt voor het invoeren in de Db weet ik zo niet. In ieder geval niet als je gewoon "recordset("tblRij") = dblBedrag" doet.
Met het uit de DB halen is het misschien handig om iig de "." weer eventueel te vervangen door een ",".

Canon EOS 400D + 18-55mm F3.5-5.6 + 50mm F1.8 II + 24-105 F4L + 430EX Speedlite + Crumpler Pretty Boy Back Pack


  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

Hier iets aan? [url="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/iisref/html/psdk/asp/eadg9s8i.asp"]http://msdn.microsoft.com/library/default.asp?url=/library/en-us/iisref/html/psdk/asp/eadg9s8i.asp[/url]

Lijkt me kwestie van je locale veranderen, net als in C++ met je streams. Ik weet alleen niks van ASP.

  • Scharnout
  • Registratie: November 2000
  • Laatst online: 23-08 12:39
Op zaterdag 20 juli 2002 00:06 schreef riezebosch het volgende:
If (InStr(txtBedrag, ",") <> 0 And Right(txtBedrag, Len(txtBedrag) - InStrRev(txtBedrag, ",")) <> "") Then
dblBedrag = Left(txtBedrag, InStr(txtBedrag, ","))
dblBedrag = dblBedrag + ((Right(txtBedrag, Len(txtBedrag) - InStrRev(txtBedrag, ","))) / (10 ^ Int(Len(txtBedrag) - InStrRev(txtBedrag, ","))))
Else
dblBedrag = txtBedrag
End If


Met het uit de DB halen is het misschien handig om iig de "." weer eventueel te vervangen door een ",".
Is een optie om dit natuurlijk in een function te gooien die je overal include, maar ik ga denk ik voor de *100 /100 alhoewel ik die wel foutgevoelig vind (human error :))
Zoijar babbelde nog iets overHier iets aan? [url="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/iisref/html/psdk/asp/eadg9s8i.asp"]http://msdn.microsoft.com/library/default.asp?url=/library/en-us/iisref/html/psdk/asp/eadg9s8i.asp[/url]
Lijkt me kwestie van je locale veranderen, net als in C++ met je streams. Ik weet alleen niks van ASP.
Het is juist begonnen toen ik hier de locale op 1043(=nederlands)zette. Toen gaf hij als bedragen ineens comma;s mee en die slikt de database niet.

And Bob's your uncle ...


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

robjanssen

Software Developer

Ik gebruik altijd een NoComma functie.
code:
1
2
3
4
5
6
7
Function NoComma(tekst As String) As String

If Not tekst Is Null Then
  NoComma = Replace(tekst, &quot;,&quot;, &quot;.&quot;)
End If

End Function

En dan daarna deze waarde in de DB posten.

  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

Op zaterdag 20 juli 2002 00:16 schreef Scharnout het volgende:

Het is juist begonnen toen ik hier de locale op 1043(=nederlands)zette. Toen gaf hij als bedragen ineens comma;s mee en die slikt de database niet.
Het idee is dus dat je uitleest met je locale op nederlands, en dan even switched naar een standaard locale en je currency output naar je database met formatcurrency.

Zoals in dit stukje C:
code:
1
2
3
4
5
6
7
8
float price;
while (  )  // processing the German invoice
{  setlocale(LC_ALL, &quot;En_US);
   fscanf(priceFile,%f,&amp;price);
   // convert $ to DM accosrding to the current exchange rate
   setlocale(LC_ALL,De_DE);
   fprintf(invoiceFile,%f,price);
}

of C++:
code:
1
2
3
4
5
6
7
8
priceFile.imbue(locale(&quot;En_US));
invoiceFile.imbue(locale(&quot;De_DE));
float price;
while (  )  // processing the German invoice
{  priceFile &gt;&gt; price;
   // convert $ to DM according to the current exchange rate
   invoiceFile &lt;&lt; price;
}

Dat moet toch ook in ASP kunnen lijkt me?

  • Scharnout
  • Registratie: November 2000
  • Laatst online: 23-08 12:39
Op zaterdag 20 juli 2002 09:21 schreef robjanssen het volgende:
Ik gebruik altijd een NoComma functie.
werkt bij mij niet op getallen

En zover ik weet zijn er ook geen functies voor in asp om ff de locale om te zetten. Je zit namelijk vast aan de session.

And Bob's your uncle ...


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

robjanssen

Software Developer

Waarom werkt een NoComma functie niet met getallen?
In ASP kun je toch gewoon een getal als string meegeven aan een functie?
En anders doe je een CStr(getal)

  • Scharnout
  • Registratie: November 2000
  • Laatst online: 23-08 12:39
Ik verdien de titel meester prutser. Gooi ik de verkeerde variabele in de database |:(

And Bob's your uncle ...

Pagina: 1