Konuyu görüntüle
IUCODERS FORUM > Programlama > JAVA > Java'dan stored procedure ça??rma
Yazar
ssakinmaz


avatar
Istanbul
Kayıt: 20.01.2006
20.05.2006-19:19 #6888
String query1 = "SELECT * FROM ISLEMCI WHERE Karakteristik = 1"
ResultSet rs;
Statement smt;
smt = conn.createStatement();
rs = smt.executeQuery(query);

Java'dan mssql'e bağlanırken verileri bu şekilde çekiyorum fakat stored procedürü kullanmak istiyorum ,stored procedürü nasıl çağırabilirim..





Zoru severim, imkans?z vakit al?r..




Yazar
orhan


avatar
istanbul
admin
Kayıt: 17.11.2005
20.05.2006-19:32 #6889
http://www.onjava.com/pub/a/onjava/2003/08/13/stored_procedures.html

http://javaalmanac.com/egs/java.sql/CallProcedure.html





N/A
Yazar
ssakinmaz


avatar
Istanbul
Kayıt: 20.01.2006
20.05.2006-21:20 #6890
Yardımın için sagol fakat yapamadım yine applause

CallableStatement cs;
ResultSet rs;
try {
cs = con.prepareCall("{call OnlineSecim.dbo.myprocedure(?)}");
cs.registerOutParameter(1, Types.VARCHAR);
rs = cs.executeQuery();
String outParam = cs.getString(1);
System.out.println(outParam);
}catch (SQLException e) {
e.printStackTrace();
}

veritabanına düzgün bir şekilde bağlanıyor, stored procedure'i görüyor fakat rs = cs.executeQuery(); geldıgı zaman hata verıyor. "Procedure myprocedure has no parameters and arguments were supplied." diye bir hata veriyor çözemedim





Zoru severim, imkans?z vakit al?r..




Yazar
orhan


avatar
istanbul
admin
Kayıt: 17.11.2005
20.05.2006-21:28 #6891
 

CallableStatement cs;
ResultSet rs;
try {
cs = con.prepareCall("{call OnlineSecim.dbo.myprocedure(?)}");
//bunu sil cs.registerOutParameter(1, Types.VARCHAR);
cs.setString(1, procedure_parametresi); //bunu ekle
rs = cs.executeQuery();
String outParam = cs.getString(1);
System.out.println(outParam);
}catch (SQLException e) {
e.printStackTrace();
}

hata olursa çıktısını buraya yazarsan daha iyi olur.





N/A
Yazar
ssakinmaz


avatar
Istanbul
Kayıt: 20.01.2006
20.05.2006-21:35 #6892
procedure parametre almıyor sadece bir tablodaki tüm bılgileri çekiyor
Az once kolon sayısını eksik göndermişim onu tamamladım şu an
"COUNT alanı yanlış veya sözdizimi hatası" diye hata veriyo

CallableStatement cs;
ResultSet rs;
try {
cs = con.prepareCall("{call OnlineSecim.dbo.myprocedure(?,?,?,?,?,?,?,?)}");
cs.registerOutParameter(1, Types.VARCHAR);
rs = cs.executeQuery();
String outParam = cs.getString(1);
System.out.println(outParam);
}catch (SQLException e) {
e.printStackTrace();
}








Zoru severim, imkans?z vakit al?r..




Yazar
orhan


avatar
istanbul
admin
Kayıt: 17.11.2005
20.05.2006-21:41 #6893
simdi sen oraya bir suru soru isareti koydun ya
okadar cs.register...(2,..) seklinde parametre sayısı kadar veri girmen lazım.





N/A
Yazar
ssakinmaz


avatar
Istanbul
Kayıt: 20.01.2006
20.05.2006-22:12 #6894
CallableStatement cs;
ResultSet rs;
try {
cs = con.prepareCall("{call OnlineSecim.dbo.myprocedure(?,?,?,?,?,?,?,?)}");
cs.registerOutParameter(1, Types.VARCHAR);
rs = cs.executeQuery();
cs.registerOutParameter(1, Types.VARCHAR);
cs.registerOutParameter(2, Types.VARCHAR);
cs.registerOutParameter(3, Types.VARCHAR);
cs.registerOutParameter(4, Types.VARCHAR);
cs.registerOutParameter(5, Types.VARCHAR);
cs.registerOutParameter(6, Types.VARCHAR);
cs.registerOutParameter(7, Types.VARCHAR);
cs.registerOutParameter(8, Types.VARCHAR);
rs = cs.executeQuery();
while(rs.next()) {
String outParam = rs.getString("1");
}

}catch (SQLException e) {
e.printStackTrace();
}

yine verdiği hata "Procedure myprocedure has no parameters and arguments were supplied."
Procedure'i çalıstırıyorum 8 sutunlu tablomda olan sonuçları döndürüyor.Acaba yazdığım procedure içinde return kullanılıp bir deger mi donderilmeliyim






Zoru severim, imkans?z vakit al?r..




Yazar
orhan


avatar
istanbul
admin
Kayıt: 17.11.2005
20.05.2006-23:13 #6897
procedure şu olsun
 

create procedure x(@p1 int, @p2 int)
as
select @p1 as par1,@p2 as par2

java kodumuz o zaman boyle olcak
 

import java.sql.*;
class ProcTest{
public static void main(String arg[]) {
String driver="net.sourceforge.jtds.jdbc.Driver";
String url="jdbc:jtds:sqlserver://127.0.0.1:1433/site";
String user="sa";
String pass= "cokgizlisifre";
Connection conn=null;
CallableStatement cs=null;
ResultSet rs=null;
try{
Class.forName(driver);
conn=DriverManager.getConnection(url,user,pass);
cs = conn.prepareCall("{ call dbo.x(?,?) }");
cs.setInt(1,5);
cs.setInt(2,67);
rs=cs.executeQuery();
while(rs.next()){
System.out.println("par1="+rs.getInt("par1")+" par2="+rs.getInt("par2"));
}
conn.close();
}catch(Exception e){
e.printStackTrace();
}
}
}






N/A
Yazar
kerem


avatar
Tekirdağ Çorlu
Kayıt: 01.01.2006
20.05.2006-23:26 #6900
try{
java.sql.Statement statement = baglanti.createStatement();
CallableStatement cs=baglanti.prepareCall("exec kerem.bx_update"+degis1+",'"+degis2+"','"+degis3+"','"+degis4+"',"+degis5+"");
update_count=cs.executeUpdate();
statement.close();
baglanti.close();
}catch(Exception e)
{
System.out.println("Ufak Hata");
e.printStackTrace();
}

//verilerde string ve int gondermelere dikkat et....










Yazar
ssakinmaz


avatar
Istanbul
Kayıt: 20.01.2006
20.05.2006-23:52 #6901
Ben parametre göndermeden verileri çekmeyi yapamıyorum

ad(varchar) mesela böyle 1 kolonlu bir Deneme adında tablom var

CREATE PROCEDURE myprocedure1 AS
select * from Deneme
return
GO

ile olusturdugum procedure ad degerlerini donderıyo.
amacım parametre gondermeden bu procedure'i kullanarak tablodaki degerleri cekmek.Bunu bir türlü yapamıyorum








Zoru severim, imkans?z vakit al?r..




Yazar
orhan


avatar
istanbul
admin
Kayıt: 17.11.2005
21.05.2006-00:05 #6902
 
create procedure x2
as
select 5 as par1,7 as par2

 
import java.sql.*;
class ProcTest{
public static void main(String arg[]) {
String driver="net.sourceforge.jtds.jdbc.Driver";
String url="jdbc:jtds:sqlserver://127.0.0.1:1433/site";
String user="sa";
String pass= "12345";
Connection conn=null;
CallableStatement cs=null;
ResultSet rs=null;
try{
Class.forName(driver);
conn=DriverManager.getConnection(url,user,pass);
cs = conn.prepareCall("{ call dbo.x2 }");
rs=cs.executeQuery();
while(rs.next()){
System.out.println("par1="+rs.getInt("par1")+" par2="+rs.getInt("par2"));
}
conn.close();
}catch(Exception e){
e.printStackTrace();
}
}
}






N/A
Yazar
ssakinmaz


avatar
Istanbul
Kayıt: 20.01.2006
21.05.2006-00:14 #6903
tamam hocam bu oldu artık digerlerinide yaparım heralde
uğraştığın için cok sagol applauseapplauseapplause
hugs






Zoru severim, imkans?z vakit al?r..




Yazar
orhan


avatar
istanbul
admin
Kayıt: 17.11.2005
21.05.2006-00:16 #6904
bişey değil kolay gelsin





N/A
Yazar
kitapkurdu


avatar

Kayıt: 24.09.2006
13.11.2006-13:29 #11299
Merhaba arkadaslar, stored procedure lerle ilgili bir sorum olacakti. Herhangi bir stored procedure u cagirirken

stored procedure;
CREATE OR REPLACE STORED PROCEDURE SP_DENEME(name IN VARCHAR2)
............

mesela yukaridaki procedure u cagirirken, parametre sirasiyla degilde parametre ismiyle cagirabilir miyim? cagrilabilirse nasil :)

JTDS + MS SQL server erisimi





Yazar
orhan


avatar
istanbul
admin
Kayıt: 17.11.2005
13.11.2006-19:25 #11308
sorununu daha açıklayıcı bir şekilde yazman lazım.
 
stored procedure;
CREATE OR REPLACE STORED PROCEDURE SP_DENEME(name IN VARCHAR2)

sp mü oluşturmak istiyorsun? yokda SP_DENEME adlı sp yi nasıl çalıştırırım mı?





N/A
1 2
Del.icio.us
Digg
Facebook
Furl
Google
Blink
Simpy
Spurl
Y! MyWeb