Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / ADO запрос из 1С к MS SQL Server, ошибка, если в строке запроса есть оператор print / 9 сообщений из 9, страница 1 из 1
31.12.2009, 10:13:26
    #36394922
zagrr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO запрос из 1С к MS SQL Server, ошибка, если в строке запроса есть оператор print
Приветствую местное комьюнити.

Возникла следующая проблема.
Имеем:
среда разработки 1С
Необходимо
сделать запрос к MS SQL Server 2005 и вернуть в 1С результат запроса.

Проблема:
Если в тексте запроса есть print или есть вызов хранимой процедуры, которая содержит в своем коде print, то рекордсет не возвращается.

Простой пример.

Connection = СоздатьОбъект("ADODB.Connection");
СтрокаПодключения = "Provider=SQLOLEDB.1......
Connection .Open( СтрокаПодключения );

СтрокаЗапроса = "
|print '123'
|select '1'
|";
...
RecordSet = Connection.Execute(СтрокаЗапроса..)
..
Cообщить(RecordSet.Fields(0).Value);

При выполнении 1С ругается, в данном случае так:
ADODB.Recordset: Не удается найти объект в семействе, соответствующий требуемому имени или порядковому номеру.

Если print закомментировать, то отработает успешно, вернет 1
Вопрос: как победить?
...
Рейтинг: 0 / 0
03.01.2010, 19:44:42
    #36396310
zagrr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO запрос из 1С к MS SQL Server, ошибка, если в строке запроса есть оператор print
народ, ну помогите, есть же тут светлые головы)))
...
Рейтинг: 0 / 0
04.01.2010, 00:23:07
    #36396461
Nenorma
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO запрос из 1С к MS SQL Server, ошибка, если в строке запроса есть оператор print
31-го числа выкинул тему - а 2-го выпрашиваешь ответ. Ты какой-то не такой .... Новый год не про тебя ?? ))
...
Рейтинг: 0 / 0
04.01.2010, 00:29:07
    #36396466
Nenorma
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO запрос из 1С к MS SQL Server, ошибка, если в строке запроса есть оператор print
zagrrПриветствую местное комьюнити.


Проблема:
Если в тексте запроса есть print или есть вызов хранимой процедуры, которая содержит в своем коде print, то рекордсет не возвращается.

Простой пример.

Connection = СоздатьОбъект("ADODB.Connection");
СтрокаПодключения = "Provider=SQLOLEDB.1......
Connection .Open( СтрокаПодключения );

СтрокаЗапроса = "
|print '123'
|select '1'
|";
...
RecordSet = Connection.Execute(СтрокаЗапроса..)
..
Cообщить(RecordSet.Fields(0).Value);

При выполнении 1С ругается, в данном случае так:
ADODB.Recordset: Не удается найти объект в семействе, соответствующий требуемому имени или порядковому номеру.

Если print закомментировать, то отработает успешно, вернет 1
Вопрос: как победить?

Я сам не очень рублю - но по-моему сугубо личному мнению ошибка здесь в том, что 1с у нас одинаково воспринимает операторы как на русском "ПЕЧАТЬ" так и на английском "PRINT" - в последствии - после изьятия кода он пытается обработать этот принт как свой оператор - и его корежит. Как бороться если ошибка в этом незнаю в силу малых знаний ))))) Вобщем с Новым Годом!!!!
...
Рейтинг: 0 / 0
04.01.2010, 12:18:22
    #36396613
zagrr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO запрос из 1С к MS SQL Server, ошибка, если в строке запроса есть оператор print
Nenorma,
)))))))))))))
Вас тоже с Новым Годом.
...
Рейтинг: 0 / 0
04.01.2010, 19:18:58
    #36397075
OLEDB driver
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO запрос из 1С к MS SQL Server, ошибка, если в строке запроса есть оператор print
А что тут побеждать? Команда Print создает отдельный рекордсет, который наряду с результатом селекта передается сервером клиентскому приложению. 1C берет первый попавшийся - он оказывается не тем, что вы ожидаете. Выход один - закомментарить print.
...
Рейтинг: 0 / 0
04.01.2010, 22:41:50
    #36397275
NextRecordset
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO запрос из 1С к MS SQL Server, ошибка, если в строке запроса есть оператор print
OLEDB driver. Выход один - закомментарить print.
Set rs = rs.NextRecordset - не судьба сделать?
...
Рейтинг: 0 / 0
05.01.2010, 15:58:35
    #36397952
OLEDB driver
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO запрос из 1С к MS SQL Server, ошибка, если в строке запроса есть оператор print
NextRecordsetOLEDB driver. Выход один - закомментарить print.
Set rs = rs.NextRecordset - не судьба сделать?Я-то в дельфе так и делаю. А в 1С так можно сделать ?
...
Рейтинг: 0 / 0
06.01.2010, 17:54:47
    #36399233
zagrr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO запрос из 1С к MS SQL Server, ошибка, если в строке запроса есть оператор print
OLEDB driver, да....спс..это и требовалось....чет я забыл про NextRecordSet()
;)
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / ADO запрос из 1С к MS SQL Server, ошибка, если в строке запроса есть оператор print / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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