Jump to content
  • 0

Punt en komma, comma of punt ....via ODBC


Tom

Question

Goede morgen,

 

Ik weet dat er al heel wat over dit thema is verschenen op dit forum, maar ik vind niet de oplossing

voor mijn probleem.

 

Ik heb een bestand dat initieel is opgemaakt op een computer waar de komma als decimaal teken was ingesteld.

Ik had er eerlijk gezegd niet op gelet.

(op een mac os x 10.5, waar je in de system preferences enkel de tijd en datum nog kan customizen, maar niet

de numbers...) (Je kan het eventueel verzetten via een unix commando ... zie google)

 

Als ik nu in dat bestand een ODBC import doe, vanuit een systeem dat de decimale punt als decimaal teken

gebruikt, loopt het fout. Voor de velden waar ik niet moet mee rekenen is er geen probleem. Ik laat ze in de layout staan zoals ze zijn geimporteerd. Maar voor de velden waar ik wel moet mee rekenen daar loopt het mis.

Daar zit de berekening er altijd naast. Voor 1 decimaal na de komma is het er *10 naast , voor 2 decimalen na de comma is het al maal 100, .... duidelijk een probleem dat de geimporteerde decimale punt hier niet erkend word.

 

Het veranderen van "use system formats" naar "file formats" helpt hier niet. (ofwel lopen de berekeningen fout, ofwel is de ingave niet meer mogelijk op een layout).

 

Mijn vraag is nu: kan je ergens de file verzetten zodat de initiele waarde die bij de creatie werd gebruikt van komma naar punt wordt gezet. Of moet ik alles opnieuw opbouwen in een nieuw bestand? En kan je ergens zien wat er als decimaal teken wordt aanzien voor het initieel bestand?

Spelen met de weergave van de velden als decimaal en "use '.' as decimal separator helpt hier niet. Ik zit met twee verschillende soorten data: de comma gebruikt bij alles wat is manueel ingegeven en de punt bij wat ik match uit een ODBC

import.

 

Ik heb voorlopig een oplossing gevonden door de waarden die ik inlees uit ODBC te exporteren naar excel, daar een find and replace van de punt door comma gedaan, en dan weer ingelezen in het bestand vanuit excel. (Dit kan ik niet telkens doen,

aangezien die ODBC Update op regelmatige basis de gegevens moet refreshen)

 

(mijn probleem stelt zich enkel in indien je via odbc een import wil doen vanuit een systeem dat een ander decimaal teken gebruikt.)

 

Is er misschien een mogelijkheid om dit van bij de ODBC connectie op te vangen?

 

Alvast bedankt

 

mvg

 

Tom

Link to comment

10 answers to this question

Recommended Posts

  • 0

Is het niet zo dat in een sql database de nummers altijd met een punt als decimaal teken worden opgeslagen?

Ik heb bij import via ODBC ook altijd hetzelfde probleem.

Gewoon een berekend veld maken dat de omzetting doet en dat voor FM doeleinden gebruiken en voor de import een veld van type tekst gebruiken dat je alleen nodig hebt in de berekening.

 

De substitute die je in excel doet kan namelijk ook gewoon in FM

 

veld 1, type tekst, naam: prijs_import

veld 2, type berekening, uitkomst getal, naam: prijs, berekening: substitute ( prijs_import ; "." ; "," )

 

Als je zeker wilt weten dat je het decimaal scheidingsteken gebruikt dat in de database wordt gebruikt, kan je nog het volgende truucje uithalen

 

substitute ( prijs_import ; "." ; middle ( pi ; 2 ; 1 ) )

 

rmw

Link to comment
  • 0

Kan je een bestand op de één of andere manier verzetten van comma naar punt ?

(niet via "use system formats or file settings")

 

Mijn bedoeling is om de "file settings" te kunnen veranderen.

 

of moet je het gewoon opnieuw opbouwen op een computer die dan wel op "decimaal punt" staat?

Wat gebeurt er als je dan tables importeert via filemaker pro advanced? Neemt filemaaker dan de decimale waarde

van het origineel bestand of van het nieuwe bestand?

 

Het zou een leuke Startup script zijn om je database file settings over het decimaal teken bij de opstart te kunnen instellen ...

 

mvg

 

Tom

Link to comment
  • 0

Even ter verduidelijking:

 

ik maak geen connectie op een sql server.

Ik connecteer via een odbc driver naar een caché database waar ik zelf geen velden kan in veranderen.

Dus op bron niveau kan ik niets aanpassen.

 

Zelfs als ik het systeem waar filemaker op draait op "punt" zet (de regional settings), moet ik de velden blijven ingeven met een comma.

De velden die ingevuld staan door de ODBC update verschijnen wel met een punt, maar daar gaat het dan weer mis als ik er wil mee rekenen.

 

Het probleem is dat ik die originele comma, die blijkbaar in de filesettings bewaard blijft wil veranderen naar punt in het

filemaker bestand. Als dit niet mogelijk is vrees ik dat ik enkel het bestand opnieuw kan opbouwen op een systeem dat wel met "punt" geconfigureerd staat.

 

Ik krijg steeds een punt van de ODBC connectie, en kan daar niets aan veranderen.

(ook als ik in excel eens test,is het steeds met decimale punt.)

 

mvg

 

Tom

Link to comment
  • 0
Even ter verduidelijking:

 

ik maak geen connectie op een sql server.

 

Dat weet ik. Het is als voorbeeld bedoeld.

 

Als je een import doet via ODBC, dan bepalen de instellingen van de betreffende ODBC o.a. het formaat van de data (punt of comma als decimaal scheidingsteken, YYYY-MM-DD of DD-MM-YYYY voor datumopmaak, etc.).

Zover ik weet heeft de Data Entry instelling van FileMaker hier geen invloed op.

 

Groet, Mark

Link to comment
  • 0

Goede avond,

 

heb gelezen dat filemaker de "locale" opslaat bij de creatie an de file.

(gevonden in een fmpro 7 boek)

Dus als je op een US systeem begint , blijft de "locale" op us staan.

 

Eigenlijk wil ik weten of je die "locale" kan aanpassen in een bestand.

 

 

mvg

 

Tom

Link to comment
  • 0

Bedankt jeroen,

 

maar ik wil ze werkelijk omkeren, zodat de file settings op punt staan.

Als ik ze niet kan omkeren heb ik problemen dat mijn via ODBC geimporteerde punt als

duizendtal aanschouwd wordt.

Ik kan nl de import via ODBC niet op komma zetten, het resultaat van de ODBC is steeds een punt.

En in mijn geval staat de locale van het bestand op komma.

De gegevens die via ODBC binnenkomen "punt ." zijn verschillend van degene die ingetypt worden "komma ," .

Voor de weergave kan ik genoeg vooruit met met een aanpassing in de opties: decimal, use"." as deciaml enz.

 

 

Het probleem is er echter bij berekeningen, waar ik steeds het aantal cijfers na de komma verkeerd uit kom.

 

Ik ga toch eens proberen met een clone te bewaren. Ik zal alle data exporteren, en dan in excel een find en replace doen naar het

juiste decimale teken.(".")

Nadien terug importeren en het zou in orde moeten zijn.

 

Bedankt.

 

mvg

 

Tom

Link to comment
  • 0
Ik ga toch eens proberen met een clone te bewaren. Ik zal alle data exporteren, en dan in excel een find en replace doen naar het

juiste decimale teken.(".")

Nadien terug importeren en het zou in orde moeten zijn.

 

Dat klopt. Verzeker je er wel van dat je vooraleer je je kloon maakt, dat de Locale instellingen zijn zoals je ze wenst (punt als decimaal scheidingsteken). Succes!

 

Jeroen

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...