Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Запрос к 1SUPDTS (число прочтений - 1680 )
Анатолий
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 25
Зарегистрирован: 18. Сентября 2008
Запрос к 1SUPDTS
28. Марта 2014 :: 12:18
Печать  
Дано:
база DBF
необходимо  в 1SUPDTS.DBF (УРИБ) удалить записи по известному виду документа, при это дата документов должна быть в указанном периоде и также имеется список значений с документами, которые удалять не надо.
Стандартный XBASE не открывает DBF-ку на запись.
Пытаюсь решить задачу с помощью ODBCDatabase и ODBCRecordSet.
Пока пытаюсь просто вывести список документов нужного вида из апдейтс.

Код
Выбрать все
	DB = СоздатьОбъект("ODBCDatabase");
	DB.Соединение("DRIVER=Microsoft Visual FoxPro ="+КаталогИБ());
	//ДС.ПрисоединитьИБ(КаталогИБ());
	ТЗ = СоздатьОбъект("ТаблицаЗначений");;
	МД = СоздатьОбъект("MetaDataWork");
	RS = СоздатьОбъект("ODBCRecordSet");
	RS.УстБД(DB);
	RS.Отладка(1);
	Запрос = "
	|select
	|dbo.sp_tohex(УРБД.TypeID) + УРБД.ObjID as [Док $Документ]
	|from
	|  _1supdts as УРБД
	|where
	|  УРБД.TypeID = """+ _IdToStr(МД.ИдДокумента("ДоговорЗайма")) + """
	|group by
	|  УРБД.TypeID, УРБД.ObjID
	|";
 	Если RS.Открыть(Запрос,,) = 0 Тогда
		Сообщить(RS.ПолучитьОписаниеОшибки (),"");
		Возврат;
	КонецЕсли;
	RS.ПолучитьРезультатыВ_ТЗ(ТЗ,1);
	RS.Закрыть();
	ТЗ.ВыбратьСтроку();  

     

Описание ошибки:
select
dbo.sp_tohex(УРБД.TypeID) + УРБД.ObjID as [Док_1c_type_Документ]
from
 _1supdts as УРБД
where
 УРБД.TypeID = "    2U"
group by
 УРБД.TypeID, УРБД.ObjID
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Запрос к 1SUPDTS
Ответ #1 - 31. Марта 2014 :: 09:32
Печать  
Код
Выбрать все
Процедура Сформировать()
	Соединение = "Provider=VFPOLEDB.1;Data Source=" + КаталогИБ() + ";Exclusive=Yes;Mode=ReadWrite;Collating Sequence=MACHINE";
	ДБ = СоздатьОбъект("OLEDBData");
	Результат = ДБ.Соединение(Соединение);
	Запрос = ДБ.СоздатьКоманду();
	Запрос.Выполнить("EXECSCRIPT('SET ANSI OFF')");
	Запрос.Выполнить("EXECSCRIPT('SET REFRESH TO 0,-1')");
	Запрос.Выполнить("Exec('SET TABLEVALIDATE TO 0')");
	Запрос = ДБ.СоздатьКоманду();

	ТекстЗапроса =
	"select   *,objid as [Док $Документ.ДоговорЗайма]
	|from 1supdts
	|where TypeID = $ВидДокумента.ДоговорЗайма";
	ТЗ = Запрос.ВыполнитьИнструкцию(ТекстЗапроса);
	ТЗ.ВыбратьСтроку();
КонецПроцедуры 


  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать