Avatar billede pri Nybegynder
30. oktober 2002 - 07:48 Der er 8 kommentarer og
1 løsning

indsæt decimaltal i tabel vha storedprocedure

Jeg kan ikke finde ud af at definere en stored procedure hvor jeg indsætter et kommatal. Det laves om til et heltal???

Min procedure:
CREATE PROCEDURE QPD101_Insert_with_Pkey

/*******************************************************************/
/* Procedure          : QPD101_Insert_with_Pkey          */
/* Created on          :01-07-2002                                        */
/* Created by          : PRI                              */
/*******************************************************************/

@PLANT cmpcd,
@ORDNO wordno,
@PRDNO prdno,
@PLSDT datetime,
@REQTY numeric,
@LINE lineid,
@CRUSR userid
-- @CRDAT

as



INSERT INTO [PDISDKK01T].[dbo].[QPD101]
    ([PLANT], [ORDNO], [PRDNO], [PLSDT], [REQTY], [LINE], [CRUSR], [CRDAT])
VALUES(@PLANT, @ORDNO, @PRDNO, @PLSDT, @REQTY, @LINE, @CRUSR, getdate())
GO

i min tabel er REQTY lavet som numeric.

skal der beskrives noget med antal de3cimaler efter komma eller sådan noget?
Avatar billede pri Nybegynder
30. oktober 2002 - 09:33 #1
Jeg har en formodning om at fejlen fremkommer fordi min variabel er med komma og det er listen af variabler også.
Hvordan ændrer jeg mit komma til punktum istedet?
Avatar billede ocp Nybegynder
30. oktober 2002 - 09:55 #2
Prøv med Numeric(10,3) eller float i stedet for bare numeric.
Avatar billede pri Nybegynder
30. oktober 2002 - 12:50 #3
Min procedurer virker hvis jeg bruger punktum istedet for komma. Mine languagesetting er sat til dansk men sql server står som engelsk og det kan jeg tilsyneladende ikke bare ændre.
Avatar billede ocp Nybegynder
30. oktober 2002 - 13:16 #4
Nej ... det er ALTID standard at benytte . når man skriver decimaltal til en procedure. Så må du erstatte dine , med . før du sætter dem ind.
Avatar billede pri Nybegynder
30. oktober 2002 - 14:13 #5
Gør du det på sql server eller i vb progammet?
Avatar billede pri Nybegynder
30. oktober 2002 - 14:13 #6
Har du evt. en lille kodestump
Avatar billede ocp Nybegynder
30. oktober 2002 - 14:25 #7
Noget i denne stil?:

Function SQLNumber(strNumber) As String

    Dim DecimalSeparator As String * 1

    DecimalSeparator = Mid(Format(0, "0.0"), 2, 1)

    If DecimalSeparator <> "." Then
        strNumber = Replace(strNumber, ".", "")
        strNumber = Replace(strNumber, DecimalSeparator, ".")
    End If

    SQLNumber = strNumber

End Function
Avatar billede ocp Nybegynder
30. oktober 2002 - 14:28 #8
Forklaring: Jeg formatterer værdien nul til at blive vist med 1 decimal. Så tager jeg den decimalseparator der bliver "påduttet" og gemmer.
Hvis den er . behøver vi ikke bekymre os ellers fjerner vi alle . for at sikre at der ikke benyttes 1000-separatorer der "ødelægger" tallet. Derefter erstatter vi den lokale decimalseparator med SQLs punktum.
Avatar billede pri Nybegynder
30. oktober 2002 - 14:49 #9
Tak skal du have, så er jeg kommet videre...
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
Computerworld tilbyder specialiserede kurser i database-management

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