Avatar billede rbl Praktikant
25. september 2002 - 15:43 Der er 3 kommentarer og
2 løsninger

Problemer med udtræk af double fra MySQL

Jeg har et problem med at trække værdier af typen double ud fra databasen. I databasen kan f.eks. stå en værdi på 56.95, men når jeg trækker den ud bliver det til 56,95 (altså med komma i stedet for punktum).

Problemet ligger i, at jeg skal gemme værdien igen, og der må ikke bruges komma i sql-sætningen. Derfor kommer der en syntaxfejl fra sql-serveren. Hvordan får jeg trukket værdien ud af databasen uden at den laver det om til komma ?

Min kode ser sådan her ud (vb):

  Dim objConn as ODBCConnection
  objConn = New ODBCConnection("<conn-string>")

  Dim objCmd as ODBCCommand
  objConn.Open
  dim selectSTR as string
  selectSTR = "select * from produkter where varenr=" + Request.QueryString.GetValues("varenr")(0)
  objCmd = New ODBCCommand(selectSTR, objConn)
  Dim objReader as ODBCDataReader
  objReader = objCmd.ExecuteReader()

  objReader.Read()
  varenrfield.Text = Request.QueryString.GetValues("varenr")(0)
  navnfield.Text = CStr(objReader("navn"))
  prisfield.Text = CStr(objReader("pris"))
  objConn.Close

Navn er af typen varchar
Pris er af typen double.
Jeg har også prøvet med objReader.getdouble(index), men det giver samme resultat
Avatar billede kichian Nybegynder
25. september 2002 - 16:11 #1
Du kan ikke trække værdien ud uden at det bliver med komma, da du kører med Danske instillinger på din WebServer. Eller det kan du godt, men det nytter ikke noget når du stykker din SQL sammen som en tekststreng.

I stedet bliver du nød til at lave komma om til punktum når du skal samle SQL-sætningen
Avatar billede rbl Praktikant
25. september 2002 - 16:39 #2
hvordan gør jeg det ?

Og hvad mener du med at det ikke nytter noget, når jeg stykker min sql-sætning sammen som tekststreng ?
Avatar billede rbl Praktikant
25. september 2002 - 21:49 #3
er der ikke nogen der kan hjælpe mig ?
Avatar billede kichian Nybegynder
26. september 2002 - 09:31 #4
Når du laver din SQL-streng får du fat i streng-versionen af din double. Og denne er i DK med , i stedet for punktum.
Hvis du havde mulighed for at arbejde med Stored Procedures (understøttes ikke af MySQL) kunne du let komme uden om denne problemstilling.

Men det du skal gøre er som sagt at erstatte , med . når du skal indsætte:
Fx
  dim strVarePris = prisfield.Replace(",",".")
  strSQL = "INSERT INTO ... (..,pris) VALUES (...," + strVarePris
Avatar billede rbl Praktikant
26. september 2002 - 10:15 #5
Jeg havde i mellemtiden fundet ud af det med replace:

prisfield.Text = replace(CStr(objReader("pris")),",",".")

Ellers tak for hjælpen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester