Гость
Форумы / [игнор отключен] [закрыт для гостей] / 1С 7.7 и ADODB / 3 сообщений из 3, страница 1 из 1
07.10.2013, 14:53
    #38418969
Alex Zhulin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1С 7.7 и ADODB
Пытаюсь выполнить процедуру на MSSQL сервере, создав подключение через ADODB и передавая параметры:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
    
    Connection = CreateObject("ADODB.Connection");
    ConnectionString = "driver={SQL Server};"+"server="+СокрЛП(Server)+";"+"uid="+СокрЛП
                  (Login)+"; "+"pwd="+СокрЛП(Password)+";"+"Database="+СокрЛП(Database);
    Connection.ConnectionTimeOut = 600;
    Connection.CommandTimeout = 300; 
        
    Connection.Open(ConnectionString);



Подключение создается.
Далее создаю ADODB.Command

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
    
    NewRecord = CreateObject("ADODB.Command");
    NewRecord.ActiveConnection = Connection;


    strQuery = "import_infocraft_load_client"; 
    NewRecord.CommandText = strQuery;
    NewRecord.CommandType = 4;



Пытаюсь передать параметры

Код: sql
1.
2.
3.
4.
    
    //prm1 = NewRecord.CreateParameter("@family_name", КонстантаАДО("advarchar"), ТипПараметраАДО("adParamInput"), 100, family_name);  

    prm1 = NewRecord.CreateParameter("@family_name", 129, 1, 100, family_name);  



На этом месте получаю ошибку

prm1 = NewRecord.CreateParameter("@family_name", 129, 1, 100, family_name);
{\\UPR-INFO\1C_BASE_TEST\149\EXTFORMS\TEST_MSSQL_CONNECTION.ERT(87)}: Плохой тип переменной

Все типы, соответствующие строке, уже попробовал.
В чем может быть проблема?
Спасибо.
...
Рейтинг: 0 / 0
07.10.2013, 15:41
    #38419050
Alex Zhulin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1С 7.7 и ADODB
Понял в чем проблема :-)
В качестве строкового параметра передавал объектный тип из 1С.
После явного преобразования в строку все получилось
...
Рейтинг: 0 / 0
29.10.2013, 16:23
    #38445390
Alex Zhulin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1С 7.7 и ADODB
Наверное продолжу здесь про свои проблемы :-)
Вызываю, как описал выше, процедуру на SQL сервере. При возникновении exception на стороне процедуры SQL сервера ADO DB всегда возвращает ошибку


Не загружен лицевой счет (1114901708) (АБДУЛЛИНА Г.И.)Microsoft OLE DB Provider for ODBC Drivers: [Microsoft][ODBC SQL Server Driver][SQL Server] Процедура или функция "import_infocraft_load_all" ожидает параметр "@family_name", который не был указан .

Хотя в реальности, при выполнении данной процедуры в SQL Management Studio возвращается exception вида

Сообщение 50000, уровень 14, состояние 1, процедура import_infocraft_load_all, строка 104
Не удается вставить повторяющуюся строку ключа в объект "dbo.pes_account_numbers" с уникальным индексом "i_account_number". Повторяющееся значение ключа: (1114901708, 1).


Как заставить возвращать ADO DB exception, которые отдает SQL Server?
...
Рейтинг: 0 / 0
Форумы / [игнор отключен] [закрыт для гостей] / 1С 7.7 и ADODB / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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