0
avz07
22.07.13
✎
18:00
|
Доброго всем времени суток!
Обращаюсь с просьбой. Подскажите пожалуйста мне источники, где понятно расписана тема работы с базой данных SQL (как ее прочитать, записать). я так понял, что это работа с COM-объектами.
|
|
4
avz07
22.07.13
✎
18:38
|
задача у меня такая: есть обработка, выбирает по заданной
группы товары и дописывает их в БД. надо откорректировать ее так чтобы она проверяла существований в базе такой позиции, если есть то чтобы пропускала (ничего не писала), если нет - чтобы записывала такую ??позицию с товаром в базу.
запросы я уже разобрался как писать корректно, а с такой задачей в SQL столкнулся впервые.
вот код:
СКЛ = Новый COMObject ("SQLDMO.SQLServer");
СКЛ.Connect("10.133.100.3\sqlexpress","operator","operatorkpk1");
Запрос = Новый Запрос;
Запрос.Текст ="ВЫБРАТЬ
| ТоварыНаСкладахОстатки.Номенклатура,
| ТоварыНаСкладахОстатки.Номенклатура.Код КАК Код,
| ТоварыНаСкладахОстатки.Номенклатура.Наименование КАК тов
|ИЗ
| РегистрНакопления.ТоварыНаСкладах.Остатки(
| &НаДату,
| Номенклатура В ИЕРАРХИИ (&тов)
| И Склад = &Склад) КАК ТоварыНаСкладахОстатки
|
|СГРУППИРОВАТЬ ПО
| ТоварыНаСкладахОстатки.Номенклатура";
Запрос.УстановитьПараметр("НаДату", Дат);
Запрос.УстановитьПараметр("Склад", Справочники.Склады.НайтиПоКоду("55"));
Запрос.УстановитьПараметр("тов", Номенклатура);
Результат = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = Результат.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
ТН=СокрЛП(СтрЗаменить(ВыборкаДетальныеЗаписи.тов,""""," "));
ТН=СокрЛП(СтрЗаменить(ТН,"/","_"));
СтрокаSQL = "insert into tblPOS(POS_ID,POSType_ID,POS_Name,Status,kod_1c) Values ('"+СокрЛП(ВыборкаДетальныеЗаписи.код)+"','41629','"+лев(ТН,50)+"',2,'"+СокрЛП(ВыборкаДетальныеЗаписи.код)+"')";
RS = СКЛ.Databases("kpkKabareMisto1").ExecuteWithResults(СтрокаSQL);
КонецЦикла;
|
|
6
Ёпрст
гуру
23.07.13
✎
09:04
|
(4) перед insert, воткни запрос на селект с фильтром на эту запись, если запрос пустой - делай инсерт, иначе, либо ничего не делай, либо делай update..
А можешь и тупо сделать delete записей и потом insert
|
|