powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Informix [игнор отключен] [закрыт для гостей] / Routine (ps_todayvoucher0) can not be resolved. ODBC State = S1000.
16 сообщений из 16, страница 1 из 1
Routine (ps_todayvoucher0) can not be resolved. ODBC State = S1000.
    #35730537
defocus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем !

Дано : Есть приложение писанное на дельфях и работающее на виндах через ODBC с базой Informix 7.31.UC7 под SCO OpenServer 5.0.7. Исходников нет.

Задача : Перенести базу под линукс.

Поставил Informix 9.40.UC6 под линукс. Сделал текстовый дамп/лоад . Пытаюсь работать этим приложением с базой уже на линуксе. Многое работает, но при попытке вызвать некоторые менюшки выпадает окно с ошибкой :

[Informix][Informix ODBC Driver][Informix]Routine (ps_todayvoucher0) can not be resolved. ODBC State = S1000.


Сама процедура такова:
Код: plaintext
1.
2.
3.
4.
5.
CREATE PROCEDURE "informix".ps_todayvoucher0(psVoucherDef char( 6 ))

  update ctrlUpdateInfo set TimeRead=current
    where UserNumber in (select UserNum from tmpUserNum) and (Table_ID='voucher');
end procedure
;

Пробовал ставить разные ODBC дрова - 2.60 , 2.70 , 2.81TC3 (идут в дистрибе с 9.40.UC6) - безрезультатно.

Помогите чем сможете люди добрые ;))
...
Рейтинг: 0 / 0
Routine (ps_todayvoucher0) can not be resolved. ODBC State = S1000.
    #35730568
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
прав у пользователя может нету.

На старом сервере тоже informix владелец процедуры был?

google: NODEFDAC
...
Рейтинг: 0 / 0
Routine (ps_todayvoucher0) can not be resolved. ODBC State = S1000.
    #35730580
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defocusСделал текстовый дамп/лоад .
Поясните подробнеее - что вы сделали и как.
defocus Пробовал ставить разные ODBC дрова - 2.60 , 2.70 , 2.81TC3 (идут в дистрибе с 9.40.UC6) - безрезультатно.
Попробуйте установить такую же версию ODBC , которая работала ранее с 7.31
Но мне, почему то, кажется, что проблема не в драйвере...
Другие процедуры работают ?
...
Рейтинг: 0 / 0
Routine (ps_todayvoucher0) can not be resolved. ODBC State = S1000.
    #35730583
defocus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да.
Права есть. Захожу под informix.
...
Рейтинг: 0 / 0
Routine (ps_todayvoucher0) can not be resolved. ODBC State = S1000.
    #35730603
Ikir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
слова - can not be resolved скорее говорят о том, что в приложении вызов процедуры делается с явным указанием владельца, а сейчас владельцы не совпадают.
В ODBC можно указать trace и посмотреть какой вызов идет.
...
Рейтинг: 0 / 0
Routine (ps_todayvoucher0) can not be resolved. ODBC State = S1000.
    #35730611
defocus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделал текстовый дамп/лоад из под informix :
На OpenServer :
dbexport database_name -o /backup/dump
На Linux :
dbimport database_name -d maindbs -i /backup/dump

ODBC : С любой из перечисленных версий не работает. На OpenServer работает с любой из перечисленных.

Другие процедуры работают.
...
Рейтинг: 0 / 0
Routine (ps_todayvoucher0) can not be resolved. ODBC State = S1000.
    #35730627
defocus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lkirВ ODBC можно указать trace и посмотреть какой вызов идет.
Сорри за тупость, а как это сделать ?
...
Рейтинг: 0 / 0
Routine (ps_todayvoucher0) can not be resolved. ODBC State = S1000.
    #35730636
defocus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lkirслова - can not be resolved скорее говорят о том, что в приложении вызов процедуры делается с явным указанием владельца, а сейчас владельцы не совпадают.
Вот из dbexport.out :
Код: plaintext
grant  execute on "informix".ps_todayvoucher0 to "public" as "informix";
...
Рейтинг: 0 / 0
Routine (ps_todayvoucher0) can not be resolved. ODBC State = S1000.
    #35730639
Ikir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defocuslkirВ ODBC можно указать trace и посмотреть какой вызов идет.
Сорри за тупость, а как это сделать ?

Запустить ODBC Data Source Administrator - там есть вкладка Tracing.
...
Рейтинг: 0 / 0
Routine (ps_todayvoucher0) can not be resolved. ODBC State = S1000.
    #35730649
defocus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Журавлев Денисgoogle: NODEFDAC
Попробую завтра. Спасибо.
...
Рейтинг: 0 / 0
Routine (ps_todayvoucher0) can not be resolved. ODBC State = S1000.
    #35730655
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defocus,

А зачем там параметр psVoucherDef char(6) внутри нигде не используется. Может у вас две процедуры с одинаковым именем?
...
Рейтинг: 0 / 0
Routine (ps_todayvoucher0) can not be resolved. ODBC State = S1000.
    #35730657
defocus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ikir, Попробую завтра потрэйсить, спасибо !
...
Рейтинг: 0 / 0
Routine (ps_todayvoucher0) can not be resolved. ODBC State = S1000.
    #35730677
defocus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Журавлев Денисdefocus,

А зачем там параметр psVoucherDef char(6) внутри нигде не используется. Может у вас две процедуры с одинаковым именем?

Чесно говоря не знаю зачем ;( я в этом не силен, но двух процедур с одинаковым именем нет.
...
Рейтинг: 0 / 0
Routine (ps_todayvoucher0) can not be resolved. ODBC State = S1000.
    #35731512
Фотография Тан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defocusЖуравлев Денисdefocus,

А зачем там параметр psVoucherDef char(6) внутри нигде не используется. Может у вас две процедуры с одинаковым именем?

Чесно говоря не знаю зачем ;( я в этом не силен, но двух процедур с одинаковым именем нет.
в версии 9.40.UC6 процедуры идентифицируются именем и типом параметров
наверное, приложение передает параметры несоответствующих типов
ODBC Tracing поможет посмотреть какие
и потом можно создать еще одну процедуру с тем же названием с нужными типами параметров
...
Рейтинг: 0 / 0
Routine (ps_todayvoucher0) can not be resolved. ODBC State = S1000.
    #35731562
Фотография Daugava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
+100 к мнению Тан. Забыл вчера отписаться, проблема наверняка именно в этом.
...
Рейтинг: 0 / 0
Routine (ps_todayvoucher0) can not be resolved. ODBC State = S1000.
    #35756590
defocus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потрэйсил ODBC :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
PROG           11fc-f00        EXIT  SQLAllocStmt  with return code  0  (SQL_SUCCESS)
                HDBC                020A1868
                HSTMT *             0x0221EC60 ( 0x020a2690)

PROG           11fc-f00        ENTER SQLPrepare
                HSTMT               020A2690
                UCHAR *             0x0221B734 [      - 3 ] "EXECUTE PROCEDURE ps_TodayVoucher0()\ d\ a\ 0"
                SDWORD                    - 3 

PROG           11fc-f00        EXIT  SQLPrepare  with return code - 1  (SQL_ERROR)
                HSTMT               020A2690
                UCHAR *             0x0221B734 [      - 3 ] "EXECUTE PROCEDURE ps_TodayVoucher0()\ d\ a\ 0"
                SDWORD                    - 3 

                DIAG [S1000] [Informix][Informix ODBC Driver][Informix]Routine (ps_todayvoucher0) can not be resolved.  (- 674 )

Ну натурально ! Вызов ps_TodayVoucher0() с пустым аргументом. Так что для меня самый безопасный вариант - завести еще одну функцию ps_TodayVoucher0() с пустым аргументом

ОООООГРОМНОЕЕЕЕЕЕЕЕЕ СПАСИБО ВСЕМ !!!
:)
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Informix [игнор отключен] [закрыт для гостей] / Routine (ps_todayvoucher0) can not be resolved. ODBC State = S1000.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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