|
Помогите соединитьться с Oracle через OO4O | ☑ | ||
---|---|---|---|---|
0
Child_Men
26.09.14
✎
11:10
|
Работаю на платформе 8.3
На машине установлен клиент Oracle 9.2 Не удается соединиться с Oracle через Oracle Objects for OLE Для соединения использую код: Попытка ORAsession = Новый COMОбъект("OracleInProcServer.XOraSession"); ORAdb = ORAsession.OpenDatabase("ИмяБазы", "Логин/Пароль",0); Сообщить("подключение есть"); Исключение Сообщить("подключения нет"); Возврат; КонецПопытки; |
|||
1
Dmitry1c
26.09.14
✎
11:11
|
Сообщить(ОписаниеОшибки());
выведи |
|||
2
Dmitry1c
26.09.14
✎
11:11
|
(1) в ветви исключения
|
|||
3
Child_Men
26.09.14
✎
11:16
|
Выдает
{Форма.Форма1.Форма(55)}: Ошибка при вызове конструктора (COMОбъект): -2147221005(0x800401F3): Недопустимая строка с указанием класса |
|||
4
МихаилМ
26.09.14
✎
11:23
|
"InProcServer"
Вам ничего не говорит |
|||
5
Child_Men
26.09.14
✎
11:35
|
(4) Нет
|
|||
6
DES
26.09.14
✎
11:37
|
Установил пакет от ORACLE ?
|
|||
7
DES
26.09.14
✎
11:38
|
Oracle Data Access Components (ODAC) 11.2.0.3.0
|
|||
8
Child_Men
26.09.14
✎
11:41
|
(6) Да
|
|||
9
DES
26.09.14
✎
11:52
|
вот рабочий код на 7.7
Функция ПодключитьсяКБазеOralce(Base,Login,Pass) Перем РезультатПодключения; РезультатПодключения = 0; Попытка OraSession = СоздатьОбъект("OracleInProcServer.XOraSession"); Если Константа.Отладка=Да Тогда Сообщить("Подключаюсь к базе "+ Base + " как " + Login+"/"+Pass); КонецЕсли; OraDatabase = OraSession.OpenDatabase(Base,Login+"/"+Pass,); Если Константа.Отладка=Да Тогда Сообщить("Connected to: " + OraDatabase.Connect()+"@"+OraDatabase.DatabaseName()); Сообщить("OO4O Version: " + OraSession.OIPVersionNumber()); Сообщить("Oracle Version: " + OraDatabase.RDBMSVersion()); КонецЕсли; OraDatabase.Parameters.Add("num_N_PERSON_ID", 0, ORAPARAM_INPUT_OUTPUT);OraDatabase.Parameters("num_N_PERSON_ID").ServerType = ORATYPE_NUMBER; OraDatabase.Parameters.Add("num_N_DOC_ID", 0, ORAPARAM_OUTPUT);OraDatabase.Parameters("num_N_DOC_ID").ServerType = ORATYPE_NUMBER; OraDatabase.Parameters.Add("num_N_ACCOUNT_ID", 0, ORAPARAM_OUTPUT);OraDatabase.Parameters("num_N_ACCOUNT_ID").ServerType = ORATYPE_NUMBER; OraDatabase.Parameters.Add("vch_VC_ACCOUNT", 0, ORAPARAM_OUTPUT);OraDatabase.Parameters("vch_VC_ACCOUNT").ServerType = ORATYPE_NUMBER; OraDatabase.Parameters.Add("Info", "", ORAPARAM_OUTPUT);OraDatabase.Parameters("Info").ServerType = ORATYPE_VARCHAR2; OraDatabase.Parameters.Add("num_N_USER_ID", 0, ORAPARAM_INPUT);OraDatabase.Parameters("num_N_USER_ID").ServerType = ORATYPE_NUMBER; OraDatabase.Parameters.Add("vch_VC_TEL_NUMBER" , "", ORAPARAM_INPUT);OraDatabase.Parameters("vch_VC_TEL_NUMBER").ServerType = ORATYPE_VARCHAR2; OraDatabase.Parameters.Add("FORWHO_ACCOUNT_ID", 0, ORAPARAM_INPUT);OraDatabase.Parameters("FORWHO_ACCOUNT_ID").ServerType = ORATYPE_NUMBER; OraDatabase.Parameters.Add("num_N_ACCOUNT_ID_Payer", 0, ORAPARAM_INPUT);OraDatabase.Parameters("num_N_ACCOUNT_ID_Payer").ServerType = ORATYPE_NUMBER; OraDatabase.Parameters.Add("num_N_SUM", 0, ORAPARAM_INPUT);OraDatabase.Parameters("num_N_SUM").ServerType = ORATYPE_NUMBER; OraDatabase.Parameters.Add("dt_D_LOAD", 0, ORAPARAM_INPUT);OraDatabase.Parameters("dt_D_LOAD").ServerType = ORATYPE_DATE; OraDatabase.Parameters.Add("vch_VC_REM", 0, ORAPARAM_INPUT);OraDatabase.Parameters("vch_VC_REM").ServerType = ORATYPE_VARCHAR2; РезультатПодключения = 1; Исключение Попытка Сообщить(OraSession.LastServerErrText); Возврат OraSession.LastServerErr; Исключение Сообщить("Не установлен OO4O", "!!!"); КонецПопытки; КонецПопытки; Возврат РезультатПодключения; КонецФункции |
|||
10
Велимудр
26.09.14
✎
12:00
|
(9) вот бы еще описание переменных ORATYPE_NUMBER ... увидеть
|
|||
11
Jaap Vduul
26.09.14
✎
12:04
|
(3)Варианты:
- Не установлен ODAC с OO4O - Код из (0) выполняется в 64битном процессе - Не хватает прав на чтение соответсвующих веток реестра |
|||
12
Child_Men
26.09.14
✎
13:20
|
(11) Установлена 64-разрядная Windows 7
|
|||
13
DES
26.09.14
✎
14:42
|
(10) зачем?
это не имеет отношения к теме |
|||
14
DES
26.09.14
✎
14:44
|
ORASQL_DEFAULT = 0;
ORASQL_NO_AUTOBIND = 1; ORASQL_FAILEXEC = 2; ORASQL_NONBLK = 4; ORAPARAM_INPUT = 1; ORAPARAM_OUTPUT = 2; ORAPARAM_INPUT_OUTPUT = 3; ORATYPE_VARCHAR2 = 1; ORATYPE_NUMBER = 2; ORATYPE_SINT = 3; ORATYPE_FLOAT = 4; ORATYPE_VARCHAR = 9; ORATYPE_DATE = 12; ORATYPE_UINT = 68; ORATYPE_CHAR = 96; ORATYPE_CHARZ = 97; ORATYPE_BFLOAT = 100; ORATYPE_BDOUBLE = 101; ORATYPE_OBJECT = 108; ORATYPE_REF = 110; |
|||
15
DES
26.09.14
✎
14:45
|
(11) + ODAC установлен криво
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |