Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Cudan problem sa konvezijom tipa podataka

[es] :: MS SQL :: Cudan problem sa konvezijom tipa podataka

[ Pregleda: 2822 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

dzimba

Član broj: 11692
Poruke: 15
91.150.122.*



Profil

icon Cudan problem sa konvezijom tipa podataka14.05.2007. u 19:32 - pre 206 meseci
kod ide ovako

Code:
create table ~T~KEPU~T~
( datum datetime,
  datumrac datetime,
  zaduz decimal(12, 2),
  razduz decimal(12, 2),
  kljuc varchar(255),
  opis varchar(255),
  uplata decimal(12, 2))

insert into ~T~KEPU~T~(datum,datumrac,zaduz,razduz,kljuc,opis,uplata)

select datum,datum, (-1 * popust) as zaduz, (vrednost - popust) as razduz, kljuc, kljuc+ ' Veleprodaja - Virmanski ', 0 as uplata
from promet
where kljuc like '__310%'
and datum <= #datumz#


gde ~T~KEPU~T~ kreira temp tabelu (#KEPU_IME_RACUNARA_VREME) a #datumz# je promeljiva tu datetime formatu koju query dobija kako treba

Prilikom izvsravanja javi gresku:

The conversion of the varchar value '07310000001' overflowed an int column. Maximum integer value exceeded.

07310000001 je vrednost kljuca iz tabele promet u kojoj je on tip char(11), i samo ta vrednost pravi problem posto ako je izbacim iz select naredbe query funkcionise.
Kapiram da mi on kaze da ne moza da konvertuje vrednost kljuca u int, ali moja kolina kljuc u ~T~KEPU~T~ je varchar.
Najgore je to sto je query radio pod sql serverom 2000 a sada kad sam stavio 2005 ne radi.
Imate li ideju u cemu je problem ?
 
Odgovor na temu

CallMeSaMaster

Član broj: 43611
Poruke: 466
77.238.196.*



+1 Profil

icon Re: Cudan problem sa konvezijom tipa podataka14.05.2007. u 21:19 - pre 206 meseci
Zasto ne stavis tip VArchar umjesto char(11)?
 
Odgovor na temu

logic_rabbit
Radenko Zec
banjaluka

Član broj: 74458
Poruke: 271
*.lanaco.com.



+1 Profil

icon Re: Cudan problem sa konvezijom tipa podataka15.05.2007. u 07:18 - pre 206 meseci
Ako ti se neda traziti gresku promeni tip podatka iz int u bigint ili numeric,trebalo bi onda proci.
logic_rabbit (MCAD,MCSD,MCT,MCTS-
Windows development,MCPD)
 
Odgovor na temu

Zidar
Canada

Član broj: 15387
Poruke: 3085
*.100.46-69.q9.net.



+79 Profil

icon Re: Cudan problem sa konvezijom tipa podataka15.05.2007. u 16:55 - pre 206 meseci
Mislim da te koci ovaj deo

kljuc+ ' Veleprodaja - Virmanski '

Pokusaj

CAST(kljuc AS varchar) + ' Veleprodaja - Virmanski '


kad si kazao kljuc+ ' Veleprodaja - Virmanski ' onda SQL server vidi kljuc+ i posto ima pred sobom podatka koji lici na numericki i znak sabiranja, on misli da hoces da saberes kvazi-numericki kljuc s necim, pa konvertuje kljuc u INT i tu pukne. Uvek koristi CAST kad imas izmesane tipove.

Drugo resenje, ako vec imas kljuc u jednoj tabeli kao char(11), trebalo bi da zadrzis isti tip i u drugoj tabeli:
kljuc iz tabele promet u kojoj je on tip char(11) pretvaras u varchar(255), ne valja, stavi da bude char(11) na oba mesta i ne bi trebalo da ima sproblem. Ako ne mozes da uskladjujes tipove istog polja u raznim tabelama, moras da koristis CAST.
 
Odgovor na temu

dzimba

Član broj: 11692
Poruke: 15
77.46.199.*



Profil

icon Re: Cudan problem sa konvezijom tipa podataka15.05.2007. u 18:51 - pre 206 meseci
ma ne vredi...

sve sam to probao i ne sljaka...

samo kada stavim npr:
select datum,datum, (-1 * popust) as zaduz, (vrednost - popust) as razduz, '123', kljuc + ' Veleprodaja - Virmanski ', 0 as uplata

dakle vrednost 123 za kljuc onda query prodje, bez obzira sto na kljuc + ' Veleprodaja - Virmanski ' nisam primenio cast

inace probao sam i sve kombinacije sa bigint,numeric i nece.

Bas mi nije jasno u cemu je problem

Ne znam dali ima veze, ali query se dalje sastoji iz jos 5-6 slicnih uniona otprilike ovako :
Code:
insert into ~T~KEPU~T~(datum,datumrac,zaduz,razduz,kljuc,opis,uplata)

select datum,datum, (-1 * popust) as zaduz, (vrednost - popust) as razduz, kljuc, kljuc+ ' Veleprodaja - Virmanski ', 0 as uplata
from promet
where kljuc like '__310%'
and datum <= #datumz#
union
select p.datum,p.datum, SUM(prempcena*kolicina) as zaduz, 0 as razduz, p.kljuc, p.kljuc+' Prijem iz carinskog skladišta, '+izdajatelj, 0 as uplata
from promet p, prometpoz pp
where p.kljuc like '__1S0%'
and pp.kljuc = p.kljuc
group by p.datum, p.kljuc,izdajatelj
having p.datum <= #datumz#
union
select p.datum,p.datum, SUM(prempcena*kolicina) as zaduz, 0 as razduz, p.kljuc, p.kljuc+' Prijem od ino dobavljaèa, '+izdajatelj, 0 as uplata
from promet p, prometpoz pp
where p.kljuc like '__191%'
and pp.kljuc = p.kljuc
group by p.datum, p.kljuc,izdajatelj
having p.datum <= #datumz#
order by datum,kljuc
 
Odgovor na temu

01011011

Član broj: 561
Poruke: 2341
*.mibanc.net.



+2 Profil

icon Re: Cudan problem sa konvezijom tipa podataka16.05.2007. u 17:03 - pre 205 meseci
Fali ti "opis" u select statementu, pokusava da insertuje zadnji dio na to mjesto, i naravno da ce ti poakazivati gresku na koloni prije.
 
Odgovor na temu

dzimba

Član broj: 11692
Poruke: 15
91.150.100.*



Profil

icon Re: Cudan problem sa konvezijom tipa podataka17.05.2007. u 05:53 - pre 205 meseci
Citat:
01011011: Fali ti "opis" u select statementu, pokusava da insertuje zadnji dio na to mjesto, i naravno da ce ti poakazivati gresku na koloni prije.


Ne razumem. Gde mi fali opis. Ja nisam primetio da mi u nekom od select statementa fali opis. Reci mi sta konkretno mislis da nije u redu ?
 
Odgovor na temu

01011011

Član broj: 561
Poruke: 2341
*.mibanc.net.



+2 Profil

icon Re: Cudan problem sa konvezijom tipa podataka17.05.2007. u 16:05 - pre 205 meseci
zeznuo sam se, nisam dobro pregledao query, probaj da umjesto int stavis LONG
 
Odgovor na temu

[es] :: MS SQL :: Cudan problem sa konvezijom tipa podataka

[ Pregleda: 2822 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.