[ Valerij Zajcev @ 25.09.2010. 21:44 ] @
Napravio sam bazu i prvi put u zivotu stavio za kolonu koja treba da predstavlja novac tip 'MONEY'. Sada imam neki problem ne razumem kako ovo radi:
- Upiti se ponasaju razlicito ako unesem vrednost 40.000 i 40000
Tako mi se desi da kada trazim vrednosti vece od 10000 ne izlista mi vrednosti od 42000. Jes glupo al sam se pogubio... :(
Iz txt fajla koji ima 1000 vrednosti novac je obelezen 14000, 16000, 22000 a u bazi je 14.00, 16.00, 22.00...
[ mmix @ 25.09.2010. 22:46 ] @
money nije nista specijalan, to je samo broj u fiksnom zarezu sa 4 decimale a smesten u bigint storage. Da nije problem do decimalne tacke u SQL skripti za insert?

[ Valerij Zajcev @ 26.09.2010. 08:28 ] @
Pa da problem je do unosa. Jer ako trazim...
Code:

select * from price > 30000

A pre toga sam uneo skriptom
Code:

insert into tblSells
(price)
values
(@m_price)

E sad ako posaljem u skriptu 40.000 onda onaj gore upit radi. Ali ako posaljem 40000 (bez tacke) onda mi ne vrati redove vece od 30000. Jel mu ta tacka kod unosa toliko bitna?
[ mmix @ 26.09.2010. 08:32 ] @
ajd fore radi posalji 40,000 sa zarezom. Ja mislim da je do tacke, ne znam ostale okolnosti ali mislim da izgleda kao da saljes string u skriptu i onda je 40.000 u stvari 40.
[ Valerij Zajcev @ 26.09.2010. 09:20 ] @
Ok osecam se kao da ne znam da brojim :) Ovo mi je txt fajl...
Code:

Yamaha LSX 36 C:14.000:16,Yamaha LSX 26 C:14.000:16,Yamaha CS 40:14.000:16,

Ranije sam koristio...
Code:

Yamaha LSX 36 C:14000:16,Yamaha LSX 26 C:14000:16,Yamaha CS 40:14000:16,

I dok sam koristio ovaj stari (14000) ponekad je pravilo zabunu. Sada kada unosim sa tackom (14.000) upit "select ... ... where price > 40.000" radi ok. Zanima me:
- Kada sam uneo 14.000, u bazi pise 14.00 a kada povucem u program pise 14.0000 ovo je cetranest hiljada kontam.
- A koji je broj kada se unese bez tacke 14000

Da, u prgramu castujem money u decimal.
[ mmix @ 26.09.2010. 10:03 ] @
14.0000 nije 14000 to je 14 predstavljen sa 4 decimalne nule (money ima fiksni zarez sa 4 decimale)

Problem tebi nastaje u parsiranju 14.000 iz stringa u decimal u programu, taj broj je unesen u txt fajl po nasoj kulturi (gde je , decimalna tacka a . separator hiljada) a ti ga parsiras po default kulturi (koja je obrnuto). Pretpostavljam da koristis .NET, kad parsiras text u decimal koristi overload sa culture specific identifikatorom.

[ Valerij Zajcev @ 26.09.2010. 12:41 ] @
Probao sam...
Code:

string temp = String.Format("{0:c}", priceFromFile);
decimal prc = decimal.Parse(temp);

Nece isti problem pravi. Ufff, za svaki slucaj dok ne nadjem bolje resenje, da li mi se isplati da zamenim kolonu u bazi da bude decimal(9,2)?

Al ne sad vidimd a mi to ne resava problem :(
[ Valerij Zajcev @ 26.09.2010. 13:25 ] @
Dodao sam sledeci code, i sada prikazuje "$40.000.00" sto je ja mislim ono sto mi treba :) Zna li neko kako da sklonim '$'? I mislimd a je ova tema ipak bila za .NET :)
Code:

this.dgvSells.Columns["Price"].DefaultCellStyle.Format = "c";

[ Valerij Zajcev @ 30.09.2010. 17:36 ] @
Citat:

Zna li neko kako da sklonim '$'?

Znam ja :) promenio sam CultureInfo u Serbian latin.