|
Динамический SQL четвертого типа
|
|||
---|---|---|---|
#18+
Для дальнейшей работы(будет использоваться неизвестное количество параметров) требуется переделать работающий запрос PREPARE SQLSA FROM 'UPDATE NR_WORKER SET NR_WK_NAME = ? WHERE NR_WK_ID = ?' USING SQLCA; EXECUTE SQLSA USING :sle_name.text, :nr_id; в SQL 4 типа. К сожалению в документации не нашел ни одного примера как это делается. У меня получилось вот что: DECLARE my_proc DYNAMIC PROCEDURE FOR SQLSA; PREPARE SQLSA FROM 'UPDATE NR_WORKER SET NR_WK_NAME = ? WHERE NR_WK_ID = ?' USING SQLCA; DESCRIBE SQLSA INTO SQLDA; SetDynamicParm(SQLDA, 1, sle_name.text) SetDynamicParm(SQLDA, 2, nr_id) EXECUTE DYNAMIC my_proc using descriptor sqlda; При выполнении выдает ошибку. Подскажите плз как правильно. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2009, 12:38 |
|
Динамический SQL четвертого типа
|
|||
---|---|---|---|
#18+
какая ошибка? какая субд? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2009, 13:18 |
|
Динамический SQL четвертого типа
|
|||
---|---|---|---|
#18+
Среда PB65. СУБД MS SQL 2005. Ошибку отлавливаю: SQLCA.SQLCode = -1. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2009, 14:03 |
|
Динамический SQL четвертого типа
|
|||
---|---|---|---|
#18+
a SQLCA.SQLErrorText что говорит? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2009, 14:11 |
|
Динамический SQL четвертого типа
|
|||
---|---|---|---|
#18+
Dmitry..a SQLCA.SQLErrorText что говорит? A SQLServer request resulted in a bad return code or status but no error message was returned ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2009, 14:23 |
|
Динамический SQL четвертого типа
|
|||
---|---|---|---|
#18+
DECLARE my_proc DYNAMIC PROCEDURE CURSOR FOR SQLSA; Про разницу почитайте в хелпе (не верю что там нет - лично видел 10 лет назад). ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2009, 19:57 |
|
Динамический SQL четвертого типа
|
|||
---|---|---|---|
#18+
Anatoly Moskovsky DECLARE my_proc DYNAMIC PROCEDURE CURSOR FOR SQLSA; Про разницу почитайте в хелпе (не верю что там нет - лично видел 10 лет назад). ? Курсор тоже есть в четвертом типе, но он ведь применяется для пошаговой последовательной обработки записей с оператором FETCH ? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2009, 08:35 |
|
Динамический SQL четвертого типа
|
|||
---|---|---|---|
#18+
Единственное что нашел по данному вопросу: http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.dc37781_1150/html/psref/CCJBBCGF.htm Тут примеры только для Cursor с Select и Procedure с хранимой процедурой без лишних комментариев. Если я правильно понял, нужной функциональностью(Update и DELETE) SQL type 4 просто не обладает. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2009, 10:34 |
|
Динамический SQL четвертого типа
|
|||
---|---|---|---|
#18+
MB_SQL_CMЕсли я правильно понял, нужной функциональностью(Update и DELETE) SQL type 4 просто не обладает. Не правильно. Динамический SQL 4-го типа поддерживает операторы SQL (Select, Insert, Update и Delete). Сейчас не помню, по моему есть информация в книге Симона Галлагера "PowerBuider 6.0" ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2009, 22:14 |
|
Динамический SQL четвертого типа
|
|||
---|---|---|---|
#18+
MB_SQL_CM Нужно было сразу посмотреть Вашу ссылку. Так там всё четко написано, читайте внимательнее про SetDynamicParm и всё поймете. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2009, 22:19 |
|
Динамический SQL четвертого типа
|
|||
---|---|---|---|
#18+
maxATCMB_SQL_CMЕсли я правильно понял, нужной функциональностью(Update и DELETE) SQL type 4 просто не обладает. Не правильно. Динамический SQL 4-го типа поддерживает операторы SQL (Select, Insert, Update и Delete). Сейчас не помню, по моему есть информация в книге Симона Галлагера "PowerBuider 6.0" Вот сейчас совсем внимательно прочитал. PREPARE DynamicStagingArea FROM SQLStatement {USING TransactionObject} ; SQLStatement - A string containing a valid SQL SELECT statement Из этой книги я сперва информацию и брал. Там еще меньше написано, возможно в оригинале и не так. Потратил кучу времени. Не могли блин сразу написать что ничего кроме Select и процедуры не может. В книге об этом вообще ни слова, а из контекста складывается впечатление что все может. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2009, 15:40 |
|
Динамический SQL четвертого типа
|
|||
---|---|---|---|
#18+
А он и может ВСЁ! Только не из процедуры, а из курсора. Курсору делаешь open без фетчей - выполняется то, что ты хочешь. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2011, 20:15 |
|
Динамический SQL четвертого типа
|
|||
---|---|---|---|
#18+
Так все-таки - работает или нет динамический SQL 4 типа c SQL DML? Пытаюсь реализовать такой алготирм: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Выдает ошибку при вызове "OPEN DYNAMIC my_cursor": SQLSTATE = HY000 [ODBC Firebird Driver][Firebird]Dynamic SQL Error SQLErrorCode = -104 Token unknown - line 1, column 53 WHERE То же происходит и при попытке использования SQL Insert: Код: plaintext 1.
Использую БД Firebird, соединение из PB через ODBC драйвер... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2011, 21:22 |
|
Динамический SQL четвертого типа
|
|||
---|---|---|---|
#18+
Вынужден сообщить, что таки да - работает!!! Вопреки тому, что было написано выше (не пытаясь обидеть автора): Anatoly Moskovsky DECLARE my_proc DYNAMIC PROCEDURE CURSOR FOR SQLSA; Про разницу почитайте в хелпе (не верю что там нет - лично видел 10 лет назад). После того, как изменил код на тот что приведен ниже, все заработало!!! Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Не знаю, почему в данном случае получилось именно с динамической процедурой, хотя все пишут что это неправильно... Возможно это особенность Firebird или драйвера ODBC... Использую PB 11.5. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2011, 22:35 |
|
|
start [/forum/topic.php?fid=15&fpage=19&tid=1335693]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
40ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
others: | 10ms |
total: | 143ms |
0 / 0 |