|
|
|
не передаются значения параметров в SP
|
|||
|---|---|---|---|
|
#18+
Связка Power Builder 9.0 + MySQL 5.0xxx (ODBC MySql driver 3.51) Вызываю и передаю значение 5, и вернуться должно 5, а возвращается l_ret = 0 Помогите!!! При вызове сохраненой процедуры long i_p1 i_p1 = 5 DECLARE sp PROCEDURE FOR sp_simple1 @j = :i_p1; EXECUTE sp; IF this.SQLCode <> 0 Then //ErrMsgBox("sp_oneparam", this.SQLCode, this.SQLDBCode, this.SQLErrText) ELSE FETCH sp INTO :l_ret; // в этом месте l_ret = 0 - ниже см. тело sp_simple1 End If ---------- sp_simple1: CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_simple1`(j integer) BEGIN SELECT j; END ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2008, 10:34 |
|
||
|
не передаются значения параметров в SP
|
|||
|---|---|---|---|
|
#18+
DECLARE sp PROCEDURE FOR sp_simple1 @j = :i_p1 OUTPUT ; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2008, 10:58 |
|
||
|
не передаются значения параметров в SP
|
|||
|---|---|---|---|
|
#18+
Сделал OUTPUT - не помогло. В SP сделал проверку: if j!=0 then j = -100; end if; j осталась = 0 ... я в шоке, (©)"что делать?" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2008, 11:25 |
|
||
|
не передаются значения параметров в SP
|
|||
|---|---|---|---|
|
#18+
т.е. я пришел к выводу, что j = null. Это подтверждается, если передаваемую переменную добавить в таблицу, то новая запись содержит null. Глюки MySQL при работе с PB? У меня нет других предположений ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2008, 11:29 |
|
||
|
не передаются значения параметров в SP
|
|||
|---|---|---|---|
|
#18+
К сожалению, я не знаю MySQL. Однако, если посмотреть на другие СУБД, у Вас в определении процедуры параметр указан как Input, т.е. он только для чтения. Возможно, что при определении процедуры, надо указать, что параметр передается по ссылке, а не по значению. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2008, 11:44 |
|
||
|
не передаются значения параметров в SP
|
|||
|---|---|---|---|
|
#18+
можно глянуть на трейс? Может попробовать DisableBind=1 ? и еще там были какие-то StripParmNames и CallEscape. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2008, 12:11 |
|
||
|
не передаются значения параметров в SP
|
|||
|---|---|---|---|
|
#18+
Guest01К сожалению, я не знаю MySQL. Однако, если посмотреть на другие СУБД, у Вас в определении процедуры параметр указан как Input, т.е. он только для чтения. Возможно, что при определении процедуры, надо указать, что параметр передается по ссылке, а не по значению. К сожалению я тоже не знаю MySQL - пока .. ОК, я сделал уже: 1) IN одну переменную в SP, OUT другую. Затем Второй просто присваиваю первую. CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_simple2`(in j integer, out k integer) BEGIN SET k = j; Select k; /* для Fetch исключительно!*/ END FETCH sp INTO :m; // Fetch "тащит" то, что вернули select'ом !!! (см. help), а вот переменная k остается 0(null), так же, впрочем, как и m=0(null). Все это меня убеждает в мысли, что не передаются парметры (вернее передаются как null). А вот вернуть, через тот же Fetch удается, если переменной присвоили значение внутри SP. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2008, 12:29 |
|
||
|
не передаются значения параметров в SP
|
|||
|---|---|---|---|
|
#18+
ЗоринАндрейможно глянуть на трейс? Может попробовать DisableBind=1 ? и еще там были какие-то StripParmNames и CallEscape. 1.Как сделать trace? 2.Параметры MySQL или ODBC соединения(драйвера)??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2008, 12:30 |
|
||
|
не передаются значения параметров в SP
|
|||
|---|---|---|---|
|
#18+
'Убейте' "Select k;" в процедуре. Именно его Вы и FETCH'ете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2008, 12:49 |
|
||
|
не передаются значения параметров в SP
|
|||
|---|---|---|---|
|
#18+
Guest01'Убейте' "Select k;" в процедуре. Именно его Вы и FETCH'ете. Это лично Вам: To access rows returned in a result set, use the FETCH statement the same way you use it for cursors. The FETCH statement can be executed after any successful EXECUTE statement for a procedure that returns a result set. Дело не в том чем я пытаюсь получить значение. Дело как раз в том, что не получает SP переменные, вернее получает, их значение null. А гадать чтобы мне сделать не надо. Полтора дня на это убил, все мыслимые и фантастические варианты перепробовал. Если есть у кого-то конкретные предложения, то буду рад. А так вердикт такой: PB 9.0 с MySQL 5.0 через ODBC 3.51 значения передаваемых переменных в SP всегда null. ))) во как ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2008, 13:39 |
|
||
|
не передаются значения параметров в SP
|
|||
|---|---|---|---|
|
#18+
Ну тогда это лично Вам: PBNewSPInvocation database parameter Output parameters might not be returned when you use an embedded SQL command to call a stored procedure. You can set PBNewSPInvocation to 'Yes' to use an alternative method to invoke a stored procedure. The behavior of the PowerBuilder ODBC driver when this DBParm is set is consistent with the default behavior of the OLE DB and JDBC drivers. Исчезаю, чтоб Вас не раздражать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2008, 13:52 |
|
||
|
не передаются значения параметров в SP
|
|||
|---|---|---|---|
|
#18+
Guest01 Исчезаю, чтоб Вас не раздражать. не-не-не, не раздражаете, наоборот, в "споре рождается истина". Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2008, 14:09 |
|
||
|
не передаются значения параметров в SP
|
|||
|---|---|---|---|
|
#18+
Example 1 To set the parameter for all connections, add the following line to every relevant section (such as ;IBM DB2/NT 2.1 DB2CLI for a DB2 connection on Windows) in your pbodb105.ini file: PBNewSPInvocation='Yes' For more information about editing pbodb105.ini, see the Appendix in Connecting to Your Database. You can also set the parameter at runtime. For example: SQLCA.DbParameter="PBNewSPInvocation='Yes'" The value that is set at runtime overrides the value in the pbodb105.ini file. ------ Похоже это верно для версии 10.5 и наверное выше ( у мну 9.0. Объект SQLCA не имеет такого свойства. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2008, 14:28 |
|
||
|
|

start [/forum/topic.php?fid=15&msg=35264531&tid=1336703]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
59ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 234ms |
| total: | 383ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...