Имя: Пароль:
1C
 
Помогите с прямым запросом
0 Бамагите
 
02.10.09
14:40
База = СоздатьОбъект("OLEDBData");
   
Соединение = "Provider=VFPOLEDB.1;Data Source=" + КаталогИБ() + ";Mode=ReadWrite;Collating Sequence=MACHINE";
Рез = База.Соединение(Соединение);    
Запрос = База.СоздатьКоманду();    
   
ТекстЗапроса = "
|SELECT
|    Спр.Code as Код,
|    Спр.Descr as Наименование
|FROM
|    $Справочник.Номенклатура as Спр
|WHERE    
|    ( $Спр.Наименование LIKE '%EV-DO%' )
|OR
|    ( $Спр.Наименование LIKE '%антен%' )
|OR
|    ( $Спр.Наименование LIKE '%радиомодуль%' )
|OR
|    ( $Спр.Наименование LIKE '%AnyData%' )
|OR
|    ( $Спр.Наименование LIKE '%CDMA%' )
|GROUP BY
|    $Спр;
|";
   
ТЗ = Запрос.ВыполнитьИнструкцию( ТекстЗапроса );

ТЗ = Запрос.ВыполнитьИнструкцию( ТекстЗапроса );
Грит: Meta name parser error: поле таблицы не найдено "$Спр.Наименование"

сто неправильно делаю?
1 ТелепатБот
 
гуру
02.10.09
14:40
2 ДенисЧ
 
02.10.09
14:41
Спр.Descr  используй

У тебя же оно в начале написано...
3 Бамагите
 
02.10.09
14:42
(2) ошибка в GROUP?
4 Sadovnikov
 
02.10.09
14:43
(0) И вот тут допиши:
|GROUP BY
|    $Спр;
5 Sadovnikov
 
02.10.09
14:44
ТекстЗапроса = "
|SELECT
|    Спр.Code as Код,
|    Спр.Descr as Наименование
|FROM
|    $Справочник.Номенклатура as Спр
|WHERE    
|    ( $Спр.Descr LIKE '%EV-DO%' )
|OR
|    ( Спр.Descr LIKE '%антен%' )
|OR
|    ( Спр.Descr LIKE '%радиомодуль%' )
|OR
|    ( Спр.Descr LIKE '%AnyData%' )
|OR
|    ( Спр.Descr LIKE '%CDMA%' )
|GROUP BY
|    Спр.Descr, Спр.Code;
|";
6 ДенисЧ
 
02.10.09
14:45
(3) Ошибка в DNA
7 Mikeware
 
02.10.09
14:47
нету $Спр.Наименование, есть Спр.Descr
группировка тут нафиг не нужна.
И тебе точно не нужны сами элементы? Только код и наименование?
8 Бамагите
 
02.10.09
14:48
(7) было бы здорово если получить сами элементы и по ним сгруппировать, а то наименования бывают совпадают
9 Sadovnikov
 
02.10.09
14:49
(8) Напиши, чего добиться-то хочешь? Зачем этот запрос?
10 Бамагите
 
02.10.09
14:50
(9) хочу из номенклатуры выбрать элементы, в наименованиях которых встречаются указанные слова
11 Mikeware
 
02.10.09
14:51
ТекстЗапроса = "
|SELECT
|    Спр.id [Справочник $Справочник.Номенклатура],
|    Спр.Code as Код,
|    Спр.Descr as Наименование
|FROM
|    $Справочник.Номенклатура as Спр
|WHERE    
|    ( $Спр.Descr LIKE '%EV-DO%' )
|OR
|    ( Спр.Descr LIKE '%антен%' )
|OR
|    ( Спр.Descr LIKE '%радиомодуль%' )
|OR
|    ( Спр.Descr LIKE '%AnyData%' )
|OR
|    ( Спр.Descr LIKE '%CDMA%' )
|order BY
|    Спр.Descr, Спр.Code;
|";
12 Sadovnikov
 
02.10.09
14:52
(10)
ТекстЗапроса = "
|SELECT
|    Спр.ID [Элемент $Справочник.Номенклатура]
|FROM
|    $Справочник.Номенклатура as Спр
|WHERE    
|    ( $Спр.Descr LIKE '%EV-DO%' )
|OR
|    ( Спр.Descr LIKE '%антен%' )
|OR
|    ( Спр.Descr LIKE '%радиомодуль%' )
|OR
|    ( Спр.Descr LIKE '%AnyData%' )
|OR
|    ( Спр.Descr LIKE '%CDMA%' )
13 Бамагите
 
02.10.09
14:56
(11)(12)
ТекстЗапроса = "
|SELECT
|    Спр.ID [Элемент $Справочник.Номенклатура],
|    Спр.Code as Код,
|    Спр.Descr as Наименование
|FROM
|    $Справочник.Номенклатура as Спр
|WHERE    
|    ( $Спр.Descr LIKE '%EV-DO%' )
|OR
|    ( Спр.Descr LIKE '%антен%' )
|OR
|    ( Спр.Descr LIKE '%радиомодуль%' )
|OR
|    ( Спр.Descr LIKE '%AnyData%' )
|OR
|    ( Спр.Descr LIKE '%CDMA%' )
|";

Meta name parser error: поле таблицы не найдено "$Спр.Descr"
14 Sadovnikov
 
02.10.09
14:57
(13) Ну чуток-то сам подумай. Вместо
( $Спр.Descr LIKE '%EV-DO%' )
должно быть
( Спр.Descr LIKE '%EV-DO%' )
15 ДенисЧ
 
02.10.09
14:59
мдя...

gdb dna
16 Бамагите
 
02.10.09
15:03
(14) спасибо, это я тоже уже заметил
(11) FAILED! ICommandText::Execute(): SQL: Column 'ЭЛЕМЕНТ_1C_TYPE_СПРАВОЧНИК_НОМЕНКЛАТУРА' is not found.
без конструкции Спр.ID [Элемент $Справочник.Номенклатура] все работает
17 Sadovnikov
 
02.10.09
15:03
(16) Нету, значит, у тебя в базе справочника с названием Номенклатура.
18 Бамагите
 
02.10.09
15:04
(17) типовая бухия
19 Бамагите
 
02.10.09
15:06
вообще я делал по аналогии вот с этим кодом
ТекстЗапроса = "
|SELECT
|    Спр.Code as Код,
|    Спр.Descr as Наименование    
|FROM
|    $Справочник.Контрагенты as Спр
|WHERE    
|    $Спр.ИНН LIKE '%" + СтрИНН + "%'";

этот код отрабатывается на ура
20 Ёпрст
 
гуру
02.10.09
15:08
(17) есть .. просто as нужон, це же дбф...
:)
21 Sadovnikov
 
02.10.09
15:09
(20) Во блин. Как хорошо, что с dbf-ом не приходится работать :)
22 Бамагите
 
02.10.09
15:11
Sadovnikov, Mikeware мужики спасибо.
ДенисЧ завязывали бы вы, батенька, свой рейтинг поднимать пустыми комментариями в тематических ветках.

извините что сразу не сказал про ДБФ
Спр.ID as [Элемент $Справочник.Номенклатура] так будет правильно?
23 ДенисЧ
 
02.10.09
15:11
(22) Мне рейтинг поднимать не нужно, у меня его и так выше крыши.. Могу поделиться :-)
24 Sadovnikov
 
02.10.09
15:12
(22) Ёпрсту спабо скажи :)
Про dbf сразу видно было - ты же строку подключения в (0) показал. Вот только я не знал про такие тонкости под dbf-ом.
25 Бамагите
 
02.10.09
15:14
(23) Так нам уже известно как вы его накрутили себе :)

Епрст спасибо!
26 Ёпрст
 
гуру
02.10.09
15:16
(23) приму рейтинг на яндекс деньги, нумер дать?
:))
27 Злопчинский
 
02.10.09
15:18
кто где и когда будет проводить мастер-классы по прямым запросам? можно и незабесплатно...??
28 Sadovnikov
 
02.10.09
15:19
(27) "Миста - лучший отладчик!" :(
29 Sadovnikov
 
02.10.09
15:20
(27) Пример ТП посмотрел?
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший