[MySQL+D7] Getal met punt uit database halen

Pagina: 1
Acties:

  • bgever
  • Registratie: April 2002
  • Laatst online: 28-05-2021
Hoi, ik heb een vreemd probleem (vind ik zelf). Ik probeer uit een MySQL database een integer te halen, met als waarde "1.100". Dit lukt echter niet, ik krijg alleen maat een 1 uit de DB. Ik heb al vele manieren geprobeerd, en de help geraadpleegd, maar kwam er niet uit.
Daarom mijn vraag, hoe kun je een integer met een punt (of meerdere) uit een db halen? En die omzetten in een string.
Deze code heb ik geprobeerd:
Delphi:
1
2
i_curr := My_wwa_query.FieldByName('version').AsCurrency;
i_int := My_wwa_query.FieldByName('version').AsInteger;

  • sjroorda
  • Registratie: December 2001
  • Laatst online: 10:33
En als je hem eerst als tekst eruit haalt (want dat is het namelijk in de db) en dan naar integer converteert door de punt eruit te slopen? Kan natuurlijk ook al in je query een resultaat teruggeven zonder punt.

  • Night-Reveller
  • Registratie: September 2000
  • Laatst online: 23-08 22:29
De computer heeft altijd gelijk. Integers zijn hele getallen, hebben dus geen decimaal. Dus je probleem ('hoe kun je een integer met een punt uit een db halen) bestaat niet.

Maar ik snap wel wat je bedoeld, je moet alleen kiezen; een integer zonder punt of een (b.v. float, currency) met een komma.

Maar die currency zou dus moeten werken. Dan is het resultaat van je query wellicht al in integers.

edit:

Is het trouwens een punt als in € 1.100,- of is het een komma: 1,1?

[ Voor 27% gewijzigd door Night-Reveller op 30-01-2003 19:16 ]


  • bgever
  • Registratie: April 2002
  • Laatst online: 28-05-2021
Dan die komma maar. Ik zat al te twijfelen of ik idd geen komma moest gebruiken.

Ik ben btw een beetje PHP gewend, maar is het ook mogelijk om op een makkelijke manier een punt in een komma om te zetten in een string of andersom? Of weet iemand een goed linkje naar een tuto?

[edit]
Maar wat ik dan ff niet begrijp. Ik heb in de MySQL database een veld met een INT(8) waarde. Maar toch kan ik het getal 1.100 er bijv. in bewaren. Dan is die regel van een int heeft geen punt een beetje tegenstrijdig :?
[edit2]
Een punt als in versie: 1.1, ofwel: versie 1.100. Snappie?

[ Voor 37% gewijzigd door bgever op 30-01-2003 19:19 ]


  • Night-Reveller
  • Registratie: September 2000
  • Laatst online: 23-08 22:29
Als je een komma wil, moet je accpeteren dat je extra werk zal moeten doen om die 00 achter 1,1 te krijgen.

Wat wil je er eigenlijk mee? weergeven welke versie het is? Dan zou ik, net als sjroorda, het opslaan als string, en weergeven als string. Of wil je er mee rekenen?

  • Night-Reveller
  • Registratie: September 2000
  • Laatst online: 23-08 22:29
Maar wat ik dan ff niet begrijp. Ik heb in de MySQL database een veld met een INT( waarde. Maar toch kan ik het getal 1.100 er bijv. in bewaren. Dan is die regel van een int heeft geen punt een beetje tegenstrijdig
Dan slaat MySQL het blijkbaar op als 1100 of stiekum als een 1 wat veel zou verklaren. Wat ook nog kan, maar onwaarschijnlijk, is dat MySQL een andere definitie hanteert van integers.

[ Voor 40% gewijzigd door Night-Reveller op 30-01-2003 19:21 ]


Verwijderd

Ik heb ook wel eens last gehad van het "punt-komma"-probleem.
Dit kwam omdat ze in amerika alles perse anders moeten doen, zo ook de getalsnotatie. Waar wij een komma schrijven, schrijven zij een punt en andersom.
Je probeert dus een kommagetal (een punt is in amerika immers een komma) in een int te proppen.
Dus je zal het om moeten zetten naar een komma, of een ander datatype kiezen.

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Als je dan met floats gaat werken :?
En dus 1.1 = nederlands 1,1 en 1,100 = nederlands 1100

mysql is een amerikaans product in die zin en kan dat ook niet aanpassen, dat zul je ofwel in je client app op moeten lossen, of je moet het gewoon ook in je client app op de amerikaanse manier doen.

  • bgever
  • Registratie: April 2002
  • Laatst online: 28-05-2021
Night-Reveller schreef op 30 januari 2003 @ 19:19:
Wat wil je er eigenlijk mee? weergeven welke versie het is? Dan zou ik, net als sjroorda, het opslaan als string, en weergeven als string. Of wil je er mee rekenen?
Idd, ik wil er mee gaan rekenen, nouja, vergelijken. Het programma dat met de db connectie maakt, kijkt of er een nieuwe versie uit is. Kortom, er moeten twee getallen met elkaar vergeleken worden. Twee versienummers dus. Als het nr in de db groter is als het nr van het programma moet er een melding komen.
Kortom, ik moet de getallen met elkaar vergelijken en kijken welke de grootste is. Extra nullen achter het getal maken dus niet uit...

Verwijderd

oikoyama schreef op 30 januari 2003 @ 19:26:
[...]

Idd, ik wil er mee gaan rekenen, nouja, vergelijken. Het programma dat met de db connectie maakt, kijkt of er een nieuwe versie uit is. Kortom, er moeten twee getallen met elkaar vergeleken worden. Twee versienummers dus. Als het nr in de db groter is als het nr van het programma moet er een melding komen.
Kortom, ik moet de getallen met elkaar vergelijken en kijken welke de grootste is. Extra nullen achter het getal maken dus niet uit...
Waarom laat je de punten dan niet weg??
Dan werkt het toch ook...

  • bgever
  • Registratie: April 2002
  • Laatst online: 28-05-2021
Verwijderd schreef op 30 January 2003 @ 19:30:
Waarom laat je de punten dan niet weg??
Dan werkt het toch ook...
Dat zou ik idd kunnen doen, maar dat doe ik pas als ik er helemaal niet uit kom. Waarom? Vergelijk maar eens versie "1.001" met "1.01". De eerste is wel kleiner, maar als je de punt weg haalt, ga je 1001 met 101 vergelijken. Welke is dan de grootste?

Float gaat ook niet, heb het geprobeerd, maar dan krijg ik een error dat ie zegt dat "1.00" geen geldige float is :?

[ Voor 4% gewijzigd door bgever op 30-01-2003 19:37 . Reden: typo ]

Pagina: 1