Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z Konwersja na DECIMAL
neon85
post
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 31.03.2009

Ostrzeżenie: (0%)
-----


Witam!

Proszę o pomoc. Próbowałem juz kilkoma sposobami i cały czas mi nie wychodzi.
A mianowicie mam taką procedurę:


  1. CREATE PROC AktualizujTowar
  2. @IDtowar int,
  3. @Nazwa varchar(255) = NULL,
  4. @Symbol varchar(20) = NULL,
  5. @Opis text = NULL,
  6. @Zdjecie varchar(25) = NULL,
  7. @Cena decimal(5,2) = NULL,
  8. @Waga decimal(3,3) = NULL,
  9. @StanMag int = NULL
  10. AS  UPDATE Towary 
  11.   SET 
  12.   Nazwa=@Nazwa,
  13.   Symbol=@Symbol,
  14.   Opis=@Opis,
  15.   Zdjecie=@Zdjecie,
  16.   Cena=@Cena,
  17.   Waga=@Waga,
  18.   StanMag=@StanMag
  19.  WHERE IDtowar=@IDtowar


Probując zmodyfikować jakiś rekord np:

  1. EXEC AktualizujTowar 8, 'Test', '5', 'Opis', 'zdjecie', 22.36, 24.565, 1


otrzymuję komunikat:

Msg 8114, Level 16, State 1, Procedure AktualizujTowar, Line 0
Error converting data type numeric to decimal.

Nie wiem jak sobie z tym poradzić. Fukncja CONVERT() nie pomaga.

Z góry dzieki.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
neon85
post
Post #2





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 31.03.2009

Ostrzeżenie: (0%)
-----


To już wcześniej widziałem i albo cos do końca nie rozumiem albo już sam nie wiem.

Zmieniłem Procedurę na taką:

  1. ALTER PROC AktualizujTowar
  2. @IDtowar int,
  3. @Nazwa varchar(255) = NULL,
  4. @Symbol varchar(20) = NULL,
  5. @Opis text = NULL,
  6. @Zdjecie varchar(25) = NULL,
  7. @Cena float = NULL,
  8. @Waga float = NULL,
  9. @StanMag int = NULL
  10. AS  UPDATE Towary 
  11.   SET 
  12.   Nazwa=@Nazwa,
  13.   Symbol=@Symbol,
  14.   Opis=@Opis,
  15.   Zdjecie=@Zdjecie,
  16.   Cena=@Cena,
  17.   Waga=@Waga,
  18.   StanMag=@StanMag
  19.  WHERE IDtowar=@IDtowar



i jak daję takie wywołanie:

  1. exec AktualizujTowar 8, @Cena=2.4


to jest dobrze. 

Natomiast, gdy zamienię na to:

  1. exec AktualizujTowar 8, @Waga=2.4


to pojawia sie komunikat:

  1. Msg 8115, Level 16, State 6, Procedure AktualizujTowar, Line 12
  2. Arithmetic overflow error converting float TO DATA type numeric.
  3. The statement has been terminated.



co jest nie tak?

Ten post edytował neon85 1.04.2009, 07:39:20
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 13.10.2025 - 18:46