powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / [игнор отключен] [закрыт для гостей] / 1С 7.7 и ADODB
3 сообщений из 3, страница 1 из 1
1С 7.7 и ADODB
    #38418969
Alex Zhulin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пытаюсь выполнить процедуру на 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
1С 7.7 и ADODB
    #38419050
Alex Zhulin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Понял в чем проблема :-)
В качестве строкового параметра передавал объектный тип из 1С.
После явного преобразования в строку все получилось
...
Рейтинг: 0 / 0
1С 7.7 и ADODB
    #38445390
Alex Zhulin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Наверное продолжу здесь про свои проблемы :-)
Вызываю, как описал выше, процедуру на 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
3 сообщений из 3, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / 1С 7.7 и ADODB
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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