700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > java 调用sqlserver函数调用_从JDBC Java调用Sqlserver存储过程

java 调用sqlserver函数调用_从JDBC Java调用Sqlserver存储过程

时间:2019-09-13 05:42:31

相关推荐

java 调用sqlserver函数调用_从JDBC Java调用Sqlserver存储过程

我可以从toad sql server运行此查询.

exec msp_FormBsBa_yeni 0,'0101','0131',5000,0,2,0,null,1,null,0

从我在java中的应用程序,它生成错误,因为该语句没有返回结果集.我尝试了很多东西,但我无法解决它.谢谢您的帮助.

// Connection,Resultset ve PrepStatement Declaration

Connection connection = null;

PreparedStatement pstmt = null;

ResultSet rsa = null;

List listrows = new ArrayList();

try {

connection = ConnectionFactory.getConnection();

CallableStatement callableStatement = connection

.prepareCall("{call msp_FormBsBa_yeni(0,N'0101',N'0131',5000,0,2,0,null,1,null,0)}");

rsa = callableStatement.executeQuery();

// 2:resultset check

if (!rsa.next()) {

System.out.println("no data");

} else {

do {

// System.out.println("data exists");

// Statements

EntCari row = new EntCari();

row.setMusteriadi(rsa.getString("Unvan"));// rsa.getxxx("column")

listrows.add(row);

} while (rsa.next());

}

// 2---

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} finally {

DbUtil.close(rsa);

DbUtil.close(pstmt);

DbUtil.close(connection);

}

toad sql server的结果如下所示.

Unvan | Ulkesi | VergiKimlikNo | TCKimlikNo | BelgeSayisi | Toplam | CariKod

客户a 052 | 19697583840 | 1 | 2323,00 | HT00084

客户b | 052 | | 2 | 2111,00 | HT01022

存储过程如下(sp的一部分,很长)

/****** Object: Procedure [dbo].[msp_FormBsBa_yeni] Script Date: 18.04. 13:43:44 ******/

SET ANSI_NULLS ON;

GO

SET QUOTED_IDENTIFIER ON;

GO

CREATE PROCEDURE dbo.msp_FormBsBa_yeni

@vFirmaNo as integer,

@IlkTarih as datetime,

@SonTarih as datetime,

@MinTutar as float,

@Bs_Ba_tip as bit,

@BirlestimeTuru as tinyint,

@SonradanMuhasebelesenSeriDahilEdilmesin_fl as bit,

@SonradanMuhasebelesenSeriStr nvarchar(MAX),

@Aylik_BsBa_fl as bit,

@PerakendeCariKodu AS nvarchar(25),

@EvrakDetayliRapor_fl as bit

AS

BEGIN /*dbo.fn_GetByteParam(1048)=1 ÖTV stok maliyetine eklensinmi*/

Declare @otv_vergino as tinyint

set @otv_vergino = dbo.fn_GetByteParam(855) /*ÖTV vergi tipi*/

Declare @otv_kdv_orani as FLOAT

set @otv_kdv_orani = 0.0

if @otv_vergino between 1 and 10

set @otv_kdv_orani = dbo.fn_VergiYuzde(@otv_vergino)

Declare @kontrol_belge_tarihinden as integer

set @kontrol_belge_tarihinden = dbo.fn_GetByteParam(4173) /*BsBa_Kontrol_Belge_tarihinden_fl*/

if exists (select * from tempdb..sysobjects where name LIKE '#BsBaEvrakDetayliTablo%') Drop Table dbo.#BsBaEvrakDetayliTablo

select

TABLONO,

MIN(CHRECNO) AS CHRECNO,

CARI,

MAX(TARIH) AS TARIH,

TIP,

SERI,

SIRA,

MAX(CINS)AS CINS,

MAX(BELNO)AS BELNO,

MAX(BELTAR)AS BELTAR...

这是错误信息

com.microsoft.sqlserver.jdbc.SQLServerException: The statement did not return a result set.

at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:171)

at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:394)

at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(SQLServerPreparedStatement.java:340)

at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:4575)

at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1400)

at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:179)

at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:154)

at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeQuery(SQLServerPreparedStatement.java:283)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。