|
проблема с вставкой в sql server 2008 | ☑ | ||
---|---|---|---|---|
0
dron4ikkk
11.06.13
✎
09:31
|
Есть такой запрос:
Результат запроса..необходимо вставить в базу находящуюся в sql servere Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации.Наименование КАК Подразд, | РаботникиОрганизацийСрезПоследних.Сотрудник КАК Сотрудник, | РаботникиОрганизацийСрезПоследних.Должность.Наименование КАК Долж, | ВЫБОР | КОГДА СостояниеРаботниковОрганизацийСрезПоследних.ПериодЗавершения >= &ДатаОтчета | ИЛИ СостояниеРаботниковОрганизацийСрезПоследних.ПериодЗавершения = &НулеваяДата | ТОГДА СостояниеРаботниковОрганизацийСрезПоследних.Состояние | ИНАЧЕ СостояниеРаботниковОрганизацийСрезПоследних.СостояниеЗавершения | КОНЕЦ КАК Состояние | | ИЗ | РегистрСведений.РаботникиОрганизаций.СрезПоследних КАК РаботникиОрганизацийСрезПоследних | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостояниеРаботниковОрганизаций.СрезПоследних(&ДатаОтчета, ) КАК СостояниеРаботниковОрганизацийСрезПоследних | ПО (СостояниеРаботниковОрганизацийСрезПоследних.Сотрудник = РаботникиОрганизацийСрезПоследних.Сотрудник) | ГДЕ | (РаботникиОрганизацийСрезПоследних.Сотрудник.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиВОрганизации.ОсновноеМестоРаботы) | ИЛИ РаботникиОрганизацийСрезПоследних.Сотрудник.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиВОрганизации.Совместительство)) | И РаботникиОрганизацийСрезПоследних.Сотрудник.ДатаУвольнения = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0) | | УПОРЯДОЧИТЬ ПО | Подразд"; СтрокаСоединение1="Provider=SQLOLEDB;driver={sql server};server=OV9;UID=sa;PWD=12345678"; Соединение = Новый Массив(6); Connection = Новый COMОбъект("ADODB.Connection"); Catalog = Новый COMОбъект("ADOX.Catalog"); Command = Новый COMОбъект("ADODB.Command"); RecordSet = Новый COMОбъект("ADODB.RecordSet"); Запрос.УстановитьПараметр("ДатаОтчета", ДатаОтчета); Запрос.УстановитьПараметр("НулеваяДата", '00010101'); Результат = Запрос.Выполнить().Выбрать(); Пока Результат.Следующий() Цикл item = фабрикаXDTO.Создать(rowType); item.fio = Строка(Результат.Сотрудник); item.dolgnost = Строка(Результат.Долж); item.podrazdelenie = Строка(Результат.Подразд); item.status = Строка(Результат.Состояние); data.items.Добавить(item); Если Результат.Состояние = null Тогда Статус="Работает"; КонецЕсли; КонецЦикла; СтрокаЗапроса = "INSERT INTO [адинц].[dbo].[Allfio] (Fio, Dolgn, Podrazd, Status) Values( '"+item.fio+"','"+item.dolgnost+"','"+item.podrazdelenie+"','"+item.status+"','172.16.0.17','1C:ЗУП 8.2','db-5')"; не знаю..правильно ли..вообще...не уверен с настройками '172.16.0.17','1C:ЗУП 8.2','db-5')"; что здесь писать, если база 1с и база в sql server находится у меня на компе. |
|||
1
Sammo
модератор
11.06.13
✎
09:33
|
v8: 1c и sql
Дублирующая тема? |
|||
2
dron4ikkk
11.06.13
✎
09:42
|
(1) нет другая
|
|||
3
dron4ikkk
11.06.13
✎
10:45
|
выдает ошибку Обработка.Обработка2.Форма.Отчет.Форма(175)}: Ошибка при вызове метода контекста (Execute)
Command.Execute(); по причине: Произошла исключительная ситуация (ADODB.Command): Невозможно использование подключения для выполнения операции. Оно закрыто или не допускается в данном контексте. вот код: СтрокаЗапроса = "INSERT INTO [адинц].[dbo].[Allfio] (Fio, Dolgn, Podrazd, Status) Values( '"+item.fio+"','"+item.dolgnost+"','"+item.podrazdelenie+"','"+item.status+"')"; Command.CommandText = СтрокаЗапроса; Command.Execute(); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |