Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Type Mismatch / 8 сообщений из 8, страница 1 из 1
26.04.2007, 18:01
    #34490792
Тал
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Type Mismatch
Существует хранимая процедура с такой шапкой:
CREATE OR REPLACE PROCEDURE SCORE_ATM_RGB
(P_PACT_ID IN VARCHAR2, P_CON_ID IN VARCHAR2, P_SCORERESULT_ID OUT VARCHAR2)


Из сторонней программы (Oracle Siebel CRM) через ADODB происходит ее вызов (VB):

<....>
Set conn = CreateObject("ADODB.Connection")
conn.Open connStr

Set oCmd = CreateObject("ADODB.Command")

With oCmd

Set .ActiveConnection = conn
.CommandText = "{call siebel.SCORE_ATM_RGB(?, ?, ?)}"
.Parameters.Append .CreateParameter("P_PACT_ID", 200, 1, 45, Script.GetParameter ("AgrId"))
.Parameters.Append .CreateParameter("P_CON_ID", 200, 1, 45,"")
.Parameters.Append .CreateParameter("P_SCORERESULT_ID", 200, 2, 10)
.Execute

End With

<...>


Далее, происходит следующее присвоение:

strScoreResId = Trim(oCmd("P_SCORERESULT_ID"))

(переменная strScoreResId объявлена как Dim strScoreResId as String )

На этом присваивании возникает ошибка
Scripting language error 13 occurred at line 46 in procedure 'Question_Enter' of SmartScriptQuestion [SPK_IncommingCall.Scoring]:
Type mismatch


БД ORACLE 8

Подскажите, плз, с чем это может быть связано
...
Рейтинг: 0 / 0
26.04.2007, 18:45
    #34490925
Magnus23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Type Mismatch
Все просто, вот такой синтаксис
oCmd("P_SCORERESULT_ID") возвращает не значение параметра а сам парамтр т.е. обьект типа Parameter и естественно он не может быт« приведен к типу String.

Нужно использовать Trim$(oCmd("P_SCORERESULT_ID").Value)


Magnus
...
Рейтинг: 0 / 0
26.04.2007, 18:59
    #34490952
Magnus23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Type Mismatch
Хм.. прошу прощения, поспешил. В данном случае должно читаться свойство по умолчанию параметра, которым и является Value.

В самой хранимке результаты правильных форматов?


Magnus
...
Рейтинг: 0 / 0
26.04.2007, 20:53
    #34491128
Тал
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Type Mismatch
Да, в процедуре всё верно.
...
Рейтинг: 0 / 0
26.04.2007, 21:10
    #34491145
Magnus23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Type Mismatch
Весьма странно.
A если обьявить переменную как Variant что она содержит?


Magnus
...
Рейтинг: 0 / 0
28.04.2007, 09:11
    #34494480
Тал
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Type Mismatch
Нашёл источник проблемы. Оказывается, P_SCORERESULT_ID была NULL и его не получалось преобразовать в строку. Спасибо за участие.
...
Рейтинг: 0 / 0
28.04.2007, 10:23
    #34494684
Шкураев Владимир
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Type Mismatch
С зибелем работаешь?
...
Рейтинг: 0 / 0
28.04.2007, 14:58
    #34495748
Тал
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Type Mismatch
Да
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Type Mismatch / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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