|
Сквозной запрос к таблице ORACLE, на выходе нет таблицы
|
|||
---|---|---|---|
#18+
Вот такой код, работает на нескольких машинках больше года, под разными операционками. Пришла сотрудница из декрета, дали ей машинку б/у, операционка XP Из панели ODBC тест к таблице проходит. Пробовали средствами доп. софта ORACLE открывать эту таблицу, открывает. Раньше работал с этой таблицей через удаленное представление, так вот оно работает на проблемной машинке, а сквозной запрос не работает. Просьба подсказать где засада. ora_num = SQLCONNECT('VisaBank', 'login', 'password') IF SQLGETPROP(ora_num, 'Asynchronous') = .T. =SQLSETPROP(ora_num, 'Asynchronous', .F.) ENDIF IF SQLGETPROP(ora_num, 'BatchMode') = .T. =SQLSETPROP(ora_num, 'BatchMode', .F.) ENDIF sel_settl_date = ’08.12.2011’ stroka_sql = "SELECT job_seq, job_sub_seq, bais_proc_dat, settl_date, branch_code, rtl_acct, bin_code, card, tran_type, tran_src, settl_type, db_amt, " stroka_sql = stroka_sql + "db_ccy, db_act, cr_amt, cr_ccy, crd_act, sb_amt_sign, abvr_name, city, term_id, entry_desc, b_accnt " stroka_sql = stroka_sql + " FROM zhuk.bais_at" stroka_sql = stroka_sql + " WHERE settl_date >= '&sel_settl_date'" stroka_sql = stroka_sql + " ORDER BY job_seq, job_sub_seq, bais_proc_dat, branch_code" = SQLEXEC(ora_num, stroka_sql, 'bais_at') DO WHILE SQLMORERESULTS(ora_num) < 2 ENDDO Выходная таблица bais_at не создается ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2011, 13:40 |
|
Сквозной запрос к таблице ORACLE, на выходе нет таблицы
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
SQLMoreResults() предназначена для получения следующих результатов хранимых процедур, если, например, внутри одного пакета выполняются несколько команд Select. Первый SQLExec() вернет результат выполнения первого Select, а SQLMoreResult() результат выполнения второго Select. Бесконечный цикл еще имеет смысл для асинхронного запроса, но ведь Вы специально отключаете этот режим и работает исключительно в синхронном режиме. Т.е. Вам всего-лишь надо определить значение, возвращаемое командой SQLExec(), а последующий бесконечный цикл уже не нужен. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2011, 14:50 |
|
Сквозной запрос к таблице ORACLE, на выходе нет таблицы
|
|||
---|---|---|---|
#18+
1. У тебя поле settl_date какого типа ? 2. Сперва отладь запрос в самом Оракле. Как минимум. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2011, 16:27 |
|
Сквозной запрос к таблице ORACLE, на выходе нет таблицы
|
|||
---|---|---|---|
#18+
SergeiZhuk Код: sql 1.
кавычки, амперсанды, конкатенация строк... не проще ли сделать дату датой (см. предыдущий пост) и использовать параметры (и text...endtext)? Код: sql 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2011, 17:30 |
|
Сквозной запрос к таблице ORACLE, на выходе нет таблицы
|
|||
---|---|---|---|
#18+
ВладимирМ[src] Бесконечный цикл еще имеет смысл для асинхронного запроса, но ведь Вы специально отключаете этот режим и работает исключительно в синхронном режиме. Т.е. Вам всего-лишь надо определить значение, возвращаемое командой SQLExec(), а последующий бесконечный цикл уже не нужен. Попробовал без конструкции DO WHILE SQLMORERESULTS(ora_num) < 2 ENDDO Работает, спасибо за подсказку ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2011, 11:33 |
|
Сквозной запрос к таблице ORACLE, на выходе нет таблицы
|
|||
---|---|---|---|
#18+
tanglirSergeiZhuk Код: sql 1.
кавычки, амперсанды, конкатенация строк... не проще ли сделать дату датой (см. предыдущий пост) и использовать параметры (и text...endtext)? Код: sql 1. 2. 3. 4. 5. 6. 7.
Какова реальная разница, в части выполнения запроса, а не оформления кода, между моей конструкцией stroka_sql = "SELECT job_seq, job_sub_seq, bais_proc_dat, settl_date, branch_code, rtl_acct, bin_code, card, tran_type, tran_src, settl_type, db_amt, " stroka_sql = stroka_sql + "db_ccy, db_act, cr_amt, cr_ccy, crd_act, sb_amt_sign, abvr_name, city, term_id, entry_desc, b_accnt " stroka_sql = stroka_sql + " FROM zhuk.bais_at" stroka_sql = stroka_sql + " WHERE settl_date >= '&sel_settl_date'" stroka_sql = stroka_sql + " ORDER BY job_seq, job_sub_seq, bais_proc_dat, branch_code" и предложенной выше вами вами? Пробовал вашу конструкцию, по скорости запроса все одинаково. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2011, 11:36 |
|
Сквозной запрос к таблице ORACLE, на выходе нет таблицы
|
|||
---|---|---|---|
#18+
P0031. У тебя поле settl_date какого типа ? 2. Сперва отладь запрос в самом Оракле. Как минимум. Оракл - это карточный процессинг, у меня вход туда разрешен только через калитку ODBC Своих программистов в этом управлении тоже нет, поэтому посотрудничать там не с кем. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2011, 11:49 |
|
Сквозной запрос к таблице ORACLE, на выходе нет таблицы
|
|||
---|---|---|---|
#18+
SergeiZhukОракл - это карточный процессинг,В первую очередь это СУБД, а решаемые ею задачи, в общем, и карточность процессинга, в частности, к обсуждаемому вопросу никоим боком не относятся. у меня вход туда разрешен только через калитку ODBCДумаете, у других есть какие-то тайные ходы?[quot]Отладить на самом сервере - означает "отладить с использованием стандратрных для этого сервера средст отладки запросов". То есть без использования фокса и прочих "прокладок", которые не всегда показывают все серверные сообщения. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2011, 12:31 |
|
Сквозной запрос к таблице ORACLE, на выходе нет таблицы
|
|||
---|---|---|---|
#18+
SergeiZhukКакова реальная разница, в части выполнения запроса , а не оформления кода, между моей конструкцией и предложенной выше вами вами?Если амперсанд в оракле - это обозначение параметра запроса, то никакой. Я всё-таки снова обращу ваше внимание на то, что стоило бы дату сделать датой - если вы будете передавать её как дату , то серверу не придётся конвертировать вашу строку согласно своим настройкам, которые могут непредсказуемо измениться и повлиять на которые у вас, как я понимаю, нет возможности. PS. Но согласитесь, мой код всё-таки читабельней, в т.ч. за счёт использования тега [ src ], которым вы упорно пренебрегаете. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2011, 15:17 |
|
|
start [/forum/topic.php?fid=41&msg=37579298&tid=1583926]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 255ms |
total: | 398ms |
0 / 0 |