Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Вызов процедуры MySQL из Cache / 5 сообщений из 5, страница 1 из 1
08.10.2007, 12:29
    #34853658
SafeAndSound
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов процедуры MySQL из Cache
Всем привет!

Есть процедура в MySQL, которая вызывается из программы Cache посредством SQLGatewayConnection.
Процедуре передаются 4 входных параметра, 5-й параметр - результат выполнения.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
	s conn=##class(%Library.SQLGatewayConnection).%New()
s res=conn.GetConnection("DSN", 30 )
s res=conn.AllocateStatement(.hstmt)
s Param( 1 )=$LB( 1 , 1 , 1 , 1 )
s Param( 2 )=$LB( 1 , 1 , 1 , 1 )
s Param( 3 )=$LB("","","")
s Param( 4 )=$LB("","","")
s Param( 5 )=$LB( 50 , 64 , 15 , 30 )
s res=conn.BindParameters(hstmt,Param( 1 ),Param( 2 ),Param( 3 ),Param( 4 ),Param( 5 ))
s res=conn.SetParameter(hstmt,$LB(p1), 1 )
s res=conn.SetParameter(hstmt,$LB(p2), 2 )
s res=conn.SetParameter(hstmt,$LB(p3), 3 )
s res=conn.SetParameter(hstmt,$LB(p4), 4 )

s res=conn.Prepare(hstmt,"call Proc1(?,?,?,?,@res); select @res;")
s res=conn.Execute(hstmt)
s res=conn.Fetch(hstmt)
s res=conn.GetData(hstmt, 1 , 1 ,.r)

К сожалению, такая конструкция не работает. Где ошибка, подскажите, пожалуйста!
...
Рейтинг: 0 / 0
08.10.2007, 12:57
    #34853773
Ptn
Ptn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов процедуры MySQL из Cache
SafeAndSound

А вы уверены что вот здесь

Код: plaintext
s res=conn.SetParameter(hstmt,$LB(p1), 1 )

нужно передовать список, а не значение ?

Код: plaintext
s res=conn.SetParameter(hstmt,p1, 1 )
...
Рейтинг: 0 / 0
08.10.2007, 13:21
    #34853869
SafeAndSound
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов процедуры MySQL из Cache
Нет, конечно. Но в update'ах работает нормально.
Такой синтиксис приведен на данном форуме в многочисленных примерах, касающихся SQL-шлюза.
...
Рейтинг: 0 / 0
08.10.2007, 13:54
    #34853986
Ptn
Ptn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов процедуры MySQL из Cache
SafeAndSound

Ну дык исправьте
Код: plaintext
1.
2.
s Param( 3 )=$LB("","","")
s Param( 4 )=$LB("","","")
на
Код: plaintext
1.
2.
s Param( 3 )=$LB("","","","")
s Param( 4 )=$LB("","","","")
...
Код: plaintext
1.
2.
3.
4.
s res=conn.SetParameter(hstmt,$LB(p1), 1 )
s res=conn.SetParameter(hstmt,$LB(p2), 2 )
s res=conn.SetParameter(hstmt,$LB(p3), 3 )
s res=conn.SetParameter(hstmt,$LB(p4), 4 )
на
Код: plaintext
1.
2.
3.
4.
s res=conn.SetParameter(hstmt,p1, 1 )
s res=conn.SetParameter(hstmt,p2, 2 )
s res=conn.SetParameter(hstmt,p3, 3 )
s res=conn.SetParameter(hstmt,p4, 4 )

и попробуйте
...
Рейтинг: 0 / 0
08.10.2007, 14:19
    #34854072
SafeAndSound
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов процедуры MySQL из Cache
Не пашеть.
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Вызов процедуры MySQL из Cache / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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