powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Вывести результат из хранимой процедуры с входными и выходными параметрами
10 сообщений из 10, страница 1 из 1
Вывести результат из хранимой процедуры с входными и выходными параметрами
    #37919646
pooleet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, помогите пожалуйста.
Если не использовать хранимую процедуру то параметр получается передать в строку, но если использовать ХП то выводятся только сообщения "Проверка1", "Проверка2". Из mssql2008 запрос работает корректно

такой метод
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
try
					{
           InitialContext ctx = new InitialContext();
	DataSource ds = (DataSource) ctx.lookup("jdbc/WQW");
	Connection connection = ds.getConnection();	
		
	String QW = 
////Этот запрос всегда выполняется
	"declare @b integer set  @b = (select convert(integer,'123'))	" +
	"declare @return_value int,        @message varchar(8000)	" + 
	"exec @return_value = dbo.TT_PDTVINSAP	" +   
	"@igmng = @b ,	" +  
	"@message = @message OUTPUT	" +

////Вот тут начинаются проблемы	
	"Select TOP 1   @message + '  тип: ' + convert(varchar, @return_value) aa" +
	" ";
		

	
	Statement stmt = connection.createStatement();
	   boolean results = stmt.execute(QW); 
	   int rsCount = 0;
	  
	   
	   do {
		 if(results) {
			ResultSet rs = stmt.getResultSet();  
			rsCount++;
		
			while (rs.next()) {
                                    /////////////////////////////////////
				/////////////////////////////////////////хочу вывести вот эту строку
						  String Nco = rs.getString("aa");
						  wdComponentAPI.getMessageManager().reportSuccess( Nco + " сообщение" );
				 ///////////////////////////////////////
			///////////////////////////////////////
			}
			rs.close();
		 }
		
		 results = stmt.getMoreResults();
		
		wdComponentAPI.getMessageManager().reportSuccess("Проверка1" );
		
		 } while(results);
	   stmt.close();
	   wdComponentAPI.getMessageManager().reportSuccess("Проверка2" );
	   }
	catch (Exception e) {
	   e.printStackTrace();
	}



хранимая процедура
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
ALTER procedure [dbo].[Proc] 
(
@aufnr varchar(20),
@igmng numeric(18,6),
@getri datetime,

@message varchar(8000) out
)
AS
Begin

insert into TT_PDTVINSAP2 (txt)
values
(@igmng)


set @message = 'Заказ!'
return 1--1-успех, 0-неудача
 
End
...
Рейтинг: 0 / 0
Вывести результат из хранимой процедуры с входными и выходными параметрами
    #37919656
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pooleet,
есть такая штука как пошаговая отладка у программистов.
...
Рейтинг: 0 / 0
Вывести результат из хранимой процедуры с входными и выходными параметрами
    #37919678
pooleet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,

я только учусь поэтому задаю такие вопросы... хотя сама понимаю что ответ не сложный

думала что подойдет такой вариант http://msdn.microsoft.com/ru-ru/library/ms378758, но как увидела не подошел
...
Рейтинг: 0 / 0
Вывести результат из хранимой процедуры с входными и выходными параметрами
    #37919701
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pooleet,
лично я ничего не понял. Т.к. там 3 фразы не связанных между собой.
Может это женская нелогичность? (шутка)
...
Рейтинг: 0 / 0
Вывести результат из хранимой процедуры с входными и выходными параметрами
    #37919756
pooleet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,

Связи в sql запросе?
...
Рейтинг: 0 / 0
Вывести результат из хранимой процедуры с входными и выходными параметрами
    #37919783
pooleet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вызывала из java вызывала ХП [dbo].[Proc] вместо dbo.TT_PDTVINSAP
...
Рейтинг: 0 / 0
Вывести результат из хранимой процедуры с входными и выходными параметрами
    #37919821
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pooleet,
выведите в отладку количество строк в rs
...
Рейтинг: 0 / 0
Вывести результат из хранимой процедуры с входными и выходными параметрами
    #37920259
пролетевший
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Statement не обязательно возвращает ResultSet. Если execute или getMoreResults вернули false, надо еще проверить getResultsCount. Это прямо в javadoc на все методы которыми пользуетесь написано
...
Рейтинг: 0 / 0
Вывести результат из хранимой процедуры с входными и выходными параметрами
    #37927737
pooleet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Заработало!!! и вправду сверху ересь написала, но возник другой вопрос

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
	try
					{
	InitialContext ctx = new InitialContext();
	DataSource ds = (DataSource) ctx.lookup("jdbc/WH");
	Connection con = ds.getConnection();	
	
						
	IWDNode node = wdContext.getChildNode("TD",0);
	// заказ @aufnr 
	String Order = node.getCurrentElement().getAttributeAsText("Order");
	// Факт количество @igmng 
	Integer FQuantity = (Integer) node.getCurrentElement().getAttributeValue("FQuantity");
	// Факт дата @getri 
	Date Fdend = (Date) node.getCurrentElement().getAttributeValue("Fdend");					
	
	
		
	CallableStatement cstmt = con.prepareCall("{? = CALL dbo.TT_PDTVIN(?,?,?,?,?)}");
	cstmt.registerOutParameter(1, java.sql.Types.INTEGER);
	cstmt.setString(2, Order); //@aufnr varchar(20),
	cstmt.setInt(3, ); //@igmng numeric(18,6)
	cstmt.setDate(4, Fdend);  //@getri datetime
	cstmt.setInt(5, 1); //@type int
	cstmt.registerOutParameter(6, java.sql.Types.VARCHAR); //@message varchar(8000) out 
	
	// считаем строки
	//cstmt.getUpdateCount();
	cstmt.execute();
	wdComponentAPI.getMessageManager().reportSuccess("RETURN STATUS: " + cstmt.getInt(1) +  "  Message :" + cstmt.getString(6));
		
	
	   }
	catch (Exception e) {e.printStackTrace();
	}



Переменную необходимо
Integer FQuantity = (Integer) node.getCurrentElement().getAttributeValue("FQuantity");
засунуть сюда, а не получается,говорит что тип не тот
cstmt.setInt(3, ???????); //@igmng numeric(18,6)

как быть?
...
Рейтинг: 0 / 0
Вывести результат из хранимой процедуры с входными и выходными параметрами
    #37928869
пролетевший
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pooleet,
NUMBER -> BigDecimal или BigInteger
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Вывести результат из хранимой процедуры с входными и выходными параметрами
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]