Toon posts:

[ASP] kommagetallen invoeren in access database

Pagina: 1
Acties:
  • 345 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hallo,

Ik zit met hetvolgende ambetante probleem. Ik heb een ASP (classic ASP) pagina waar ik verschillende prijzen moet ingeven. Deze prijzen kunnen tevens ook bestaan uit komma getallen. Wanneer ik in 1 van de velden waar ik een prijs moet ingeven een getal plaats van 0.15 dan wordt dit als 15 in mijn database weg geschreven. Wanneer ik bv 0,15 ingeef, dan wordt dit als 0,15 weggeschreven in mijn database. Nu is mijn vraag, is er een manier hoe ik dit kan oplossen dat wanneer ik 0.15 zet dit ook zo in mijn database wordt weggeschreven

Ik heb al geprobeerd om op de plaats waar ik mijn gegevens in mijn database zet de session.LCID te zetten op 1013 , dit omdat in de US ze een decimale punt gebruiken maar dit wilde niet helpen.

Heeft er iemand enig idee hoe ik dit kan oplossen??

Mvg

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
If (CStr(Request("MM_insert")) = "frmProductInvoer") Then
  If (Not MM_abortEdit) Then
  session.LCID = 1033
    ' execute the insert
    Dim MM_editCmd

    Set MM_editCmd = Server.CreateObject ("ADODB.Command")
    MM_editCmd.ActiveConnection = MM_connectionWiber_STRING
    MM_editCmd.CommandText = "INSERT INTO tblProducten (pCode, pNaam, pTechFiche, kCode, pUitPr, pInPr, pDptPr, pOaPr, pArbPr, pGroep) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)" 
    MM_editCmd.Prepared = true
    MM_editCmd.Parameters.Append MM_editCmd.CreateParameter("param1", 202, 1, 50, Request.Form("pCode")) ' adVarWChar
    MM_editCmd.Parameters.Append MM_editCmd.CreateParameter("param2", 202, 1, 500, Request.Form("pNaam")) ' adVarWChar
    MM_editCmd.Parameters.Append MM_editCmd.CreateParameter("param3", 202, 1, 2500, Request.Form("pTechFiche")) ' adVarWChar
    MM_editCmd.Parameters.Append MM_editCmd.CreateParameter("param4", 5, 1, -1, MM_IIF(Request.Form("kCode"), Request.Form("kCode"), null)) ' adDouble
    MM_editCmd.Parameters.Append MM_editCmd.CreateParameter("param5", 5, 1, -1, MM_IIF(Request.Form("pUitPr"), Request.Form("pUitPr"), null)) ' adDouble
    MM_editCmd.Parameters.Append MM_editCmd.CreateParameter("param6", 5, 1, -1, MM_IIF(Request.Form("pInPr"), Request.Form("pInPr"), null)) ' adDouble
    MM_editCmd.Parameters.Append MM_editCmd.CreateParameter("param7", 5, 1, -1, MM_IIF(Request.Form("pDptPr"), Request.Form("pDptPr"), null)) ' adDouble
    MM_editCmd.Parameters.Append MM_editCmd.CreateParameter("param8", 5, 1, -1, MM_IIF(Request.Form("pOaPr"), Request.Form("pOaPr"), null)) ' adDouble
    MM_editCmd.Parameters.Append MM_editCmd.CreateParameter("param9", 5, 1, -1, MM_IIF(Request.Form("pArbPr"), Request.Form("pArbPr"), null)) ' adDouble
    MM_editCmd.Parameters.Append MM_editCmd.CreateParameter("param10", 5, 1, -1, MM_IIF(Request.Form("pGroep"), Request.Form("pGroep"), null)) ' adDouble
    MM_editCmd.Execute
    MM_editCmd.ActiveConnection.Close

  • OkkE
  • Registratie: Oktober 2000
  • Laatst online: 10-11 15:46

OkkE

CSS influencer :+

Welk type heeft je database veld, waar je het in opslaat? Een oplossing zou kunnen zijn, om de punt (.) voor het wegschrijven te vervangen in een komma (,).

Wat ik echter zelf altijd doe, is de prijzen in centen opslaan (in een veld van type int). Dan heb je nooit problemen met het wegvallen van gegevens, en mocht het nodig zijn is er nog stukken makkelijker mee te rekenen ook. :)

“The best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer.”
QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers.


Verwijderd

Topicstarter
OkkE schreef op dinsdag 14 november 2006 @ 15:38:
Welk type heeft je database veld, waar je het in opslaat? Een oplossing zou kunnen zijn, om de punt (.) voor het wegschrijven te vervangen in een komma (,).

Wat ik echter zelf altijd doe, is de prijzen in centen opslaan (in een veld van type int). Dan heb je nooit problemen met het wegvallen van gegevens, en mocht het nodig zijn is er nog stukken makkelijker mee te rekenen ook. :)
het type veld in mijn database is nu momenteel valuta, ik heb het ook al geprobeerd met numeric maar daar was het juist hetzelfde effect

  • OkkE
  • Registratie: Oktober 2000
  • Laatst online: 10-11 15:46

OkkE

CSS influencer :+

Als het echt alleen voor het weergeven is, zou je er misschien een VARCHAR (of in MS Access is dat denk ik TEXT) van kunnen maken. Maar dat is in mijn ogen een smerige oplossing.

Zou ik liever een van de andere oplossingen uit mijn vorige post (met name de laatste: opslaan in centen, zonder comma's of punten) nemen. :)

“The best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer.”
QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers.


Verwijderd

Topicstarter
OkkE schreef op dinsdag 14 november 2006 @ 16:00:
Als het echt alleen voor het weergeven is, zou je er misschien een VARCHAR (of in MS Access is dat denk ik TEXT) van kunnen maken. Maar dat is in mijn ogen een smerige oplossing.

Zou ik liever een van de andere oplossingen uit mijn vorige post (met name de laatste: opslaan in centen, zonder comma's of punten) nemen. :)
Het is om de getallen in te voeren in mijn database. En het rare vind ik dat wanneer ik mijn pas ingevoerde product ga wijzigen en ik verander daar de prijs in bv 0.12 dan lukt dit wel

  • OkkE
  • Registratie: Oktober 2000
  • Laatst online: 10-11 15:46

OkkE

CSS influencer :+

Met "als het echt alleen voor het weergeven is" bedoel ik: als de prijzen niet worden gebruikt voor berekeningen etc. Dus puur informatief.

Vergelijk de toevoeg- en aanpasscripts eens goed, teken voor teken. Lijkt me dat er haast wel iets anders moet zijn, om het verschil in gedrag te verklaren.

Ik heb geen verstand van ASP en/of MS Access, dus ik zou niet weten waarom het precies mis gaat. Maar ik zou het persoonlijk sowieso liever anders opslaan, zoals ik al poste. Kijk eens naar die manieren, lees op GoT en Google over het opslaan van prijzen in databases en leer. :)

“The best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer.”
QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers.


  • PhysicsRules
  • Registratie: Februari 2002
  • Laatst online: 31-03 07:26

PhysicsRules

Dux: Linux voor Eenden

CreateParameter voor VBScript wil de waarde (parameter 5) als Variant. In dit geval geef je een een variabele mee aan de method die een string is, terwijl je method wijsmaakt met de tweede parameter dat het een double is. Dit kan ook voor onverwachte effecten zorgen.

Het is meestal het verstandigste om te zorgen dat je je getallen al in het juiste format hebt voordat je het aan de database voert. Als deze Access databse de getallen met een komma wil, geef het dan ook zo mee.

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Kijk eens naar CCur , die is daarvoor bedoeld namelijk ;)

[ Voor 79% gewijzigd door RobIII op 14-11-2006 19:05 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij

Pagina: 1