kiruha писал(а) 25. Сентября 2008 :: 12:15:Оптимизированный по индексу(ДБФ) запрос выборки подчиненных документов для списка спДокумент
ОлеДБ = СоздатьОбъект("OLEDBData");
Рез=ОлеДБ.Соединение("
|Provider=VFPOLEDB.1;
// |Deleted=Yes;
|Null = Yes;
|Exclusive = No;
|SourceType = DBF;
|Data Source=" + КаталогИБ() + ";
|Mode=ReadWrite;
|Extended Properties="""";
|User ID="""";
|Password="""";
|Mask Password=False;
|Collating Sequence=MACHINE;
|DSN=""""");
ОлеДБКоманда = ОлеДБ.СоздатьКоманду();
ОлеДБКоманда.ВыполнитьИнструкцию("SET ANSI OFF");
ИмяТаблицы="";
ОлеДБКоманда.УложитьСписокОбъектов(спДокумент,ИмяТаблицы);
ОлеДБКоманда. УстановитьТекстовыйПараметр ("Группа",ИмяТаблицы);
ТекстЗапроса = "
|SELECT
| Жур.iddoc as [Док $Документ] ,
| Жур.IDDocDef as Док_вид
|
|FROM
| 1SCRDOC as Отбор
|
|INNER JOIN :Группа as ГруппаОтбора
| ON Отбор.mdid+Отбор.parentval+DTOS(Отбор.childdate)+Отбор.childtime+Отбор.childid
| =' 0'+'O1'+$ВидДокумента.СписаниеПланов+ГруппаОтбора.val
|
|LEFT JOIN 1SJOURN as Жур ON Жур.IDDOC=Отбор.CHILDID
|
|";
тзЗапроса = ОлеДБКоманда.ВыполнитьИнструкцию(ТекстЗапроса);
тзЗапроса.ВыбратьСтроку();
протестирован
Запустил торпеду в шлюпку. И как я все это распутаю?
За решение задачи огромное спасибо!
Но моя цель не тупое решение, а приобретение знаний.
Может поможешь как-нибудь доступнее реализовать решение или, что еще лучше, закомментить пример? Например не понятно что за дополнительные параметры в строке подключения а ВОТ ЭТО :
|INNER JOIN :Группа as ГруппаОтбора
| ON Отбор.mdid+Отбор.parentval+DTOS(Отбор.childdate)+Отбор.childtime+Отбор.childid
| =' 0'+'O1'+$ВидДокумента.СписаниеПланов+ГруппаОтбора.val?
вообще для меня что-то нечто.
У меня пока не много опыта работа в 1С, а в SQL вообще нет. Прошу помощи?