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

Pozivanje stored procedure iz Jave - neki problem sa cursorom

[es] :: Java :: Pozivanje stored procedure iz Jave - neki problem sa cursorom

[ Pregleda: 2244 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

jocat
Jovica T
Inđija

Član broj: 58613
Poruke: 74
77.46.228.*

ICQ: 308769610


Profil

icon Pozivanje stored procedure iz Jave - neki problem sa cursorom13.12.2007. u 18:32 - pre 199 meseci
Code:

String command = "{call BestEmployees.dbo.smene_Exception(?,?,?,?,?)}";
            CallableStatement cstmt = conn.prepareCall (command);
            
            cstmt.setLong(1, getIdana());
            cstmt.setString(2, getOdelenje());
            cstmt.setString(3, getRadnik());
            cstmt.setDate(4, Date.valueOf("2007-12-12"));
            cstmt.setDate(5, Date.valueOf("2007-12-29"));
                        cstmt.execute();
                        cstmt.close();


Stvar je u sledećem. Kad ja pozovem stored proceduru u Query Analyzeru, stored procedura sve sto treba da odradi ona i odradi.
I ne postoje nikakve greške.

Sama procedura ima deklarisan Cursor koji prolazi kroz tabelu, i odrađuju se neke stvari.

Da bih utvrdio u čemu je problem, ubacio sam neke insert-e da vidim šta se dešava što se tiče nekih od vrednosti u samoj proceduri.

Datumi koji su joj prosleđeni su u dobrom formatu.

Utvrdio sam da kad dođe do cursora, @FETCH_STATUS dobije vrednost -1. Zašto to ?

ni prvi fetch ne bude dobar. a ponavljam kad se pozove iz Query Analyzera cela procedura prodje kako treba.

Ono što javi java je sledeće :

Code:

java.sql.SQLException: The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.
    at net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:365)
    at net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2781)
    at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2224)
    at net.sourceforge.jtds.jdbc.TdsCore.getMoreResults(TdsCore.java:633)
    at net.sourceforge.jtds.jdbc.JtdsStatement.processResults(JtdsStatement.java:525)
    at net.sourceforge.jtds.jdbc.JtdsStatement.executeSQL(JtdsStatement.java:487)
    at net.sourceforge.jtds.jdbc.JtdsPreparedStatement.execute(JtdsPreparedStatement.java:478)



... sve se moze kad se hoce ...
 
Odgovor na temu

bags

Član broj: 10072
Poruke: 715
*.12.15.tuwien.teleweb.at.



+2 Profil

icon Re: Pozivanje stored procedure iz Jave - neki problem sa cursorom13.12.2007. u 18:48 - pre 199 meseci
Probaj sa datumom bez crtica, znaci : "20071229" ili probaj koristiti Java.sql.Date.



Free advice is seldom cheap.
 
Odgovor na temu

jocat
Jovica T
Inđija

Član broj: 58613
Poruke: 74
77.46.228.*

ICQ: 308769610


Profil

icon Re: Pozivanje stored procedure iz Jave - neki problem sa cursorom13.12.2007. u 18:55 - pre 199 meseci
kada stavim >

cstmt.setDate(5, java.sql.Date.valueOf("20071229"));

javi gresku >

java.lang.IllegalArgumentException
at java.sql.Date.valueOf(Unknown Source)


... sve se moze kad se hoce ...
 
Odgovor na temu

bags

Član broj: 10072
Poruke: 715
*.12.15.tuwien.teleweb.at.



+2 Profil

icon Re: Pozivanje stored procedure iz Jave - neki problem sa cursorom13.12.2007. u 20:16 - pre 199 meseci
Hehe mislio sam ili jedno ili drugo. :)

Znaci prvo:

Code:

cstmt.setDate(4, Date.valueOf("20071212"));


a ako nece to onda nesto ovako:

Code:

java.sql.Date datum = java.sql.Date.valueOf("2007-12-12"));



Free advice is seldom cheap.
 
Odgovor na temu

jocat
Jovica T
Inđija

Član broj: 58613
Poruke: 74
77.46.178.*

ICQ: 308769610


Profil

icon Re: Pozivanje stored procedure iz Jave - neki problem sa cursorom14.12.2007. u 06:36 - pre 198 meseci
Uf, neće ni tako da radi :(

Što se tiče prosleđivanja datuma mislim da je to sad ok, jer sam ubacio odmah na početku insert u stored proceduri za ta dva datuma da vidim da li ih dobro prenese, i prenese ih ...

Čak sam probao i da na taj dan dodam još jedan i to da upišem, i to je ok.

Uzgred, da li nekako može da se print funkcija iz stored procedure koje postoje, negde prikazuju, prilikom poziva iz Jave ?

Izgleda da je neki problem u funkcijama convert koje koristim za konverziju recimo varchar(10) u datetime, .. Ili mozda neki cast.. Ali napominjem da ovo sve radi kad se pozove iz Query Analyzera ...

Da li je moguće da Java to sve preuzima na sebe kao izvršavanje ? pa da s etu neki tipovi ne slažu, a tamo su se slagali ?

Da li možda sve ovo treba drugačije pozvati, jer mi ova stored procedura ne treba ništa da vrati, već samo da napuni jednu tabelu.


... sve se moze kad se hoce ...
 
Odgovor na temu

jocat
Jovica T
Inđija

Član broj: 58613
Poruke: 74
79.101.183.*

ICQ: 308769610


Profil

icon Re: Pozivanje stored procedure iz Jave - neki problem sa cursorom15.12.2007. u 11:22 - pre 198 meseci
Problem je resilo, verovali ili ne, jedna linija koda u stored proceduri >

Code:

SET DATEFORMAT ydm

... sve se moze kad se hoce ...
 
Odgovor na temu

[es] :: Java :: Pozivanje stored procedure iz Jave - neki problem sa cursorom

[ Pregleda: 2244 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

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