Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Горячая тема (более 10 ответов) Простой вопрос (число прочтений - 5371 )
Dan777
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 6
Зарегистрирован: 17. Марта 2008
Простой вопрос
17. Марта 2008 :: 07:21
Печать  
Делаю все по учебнику, запрос простейший:

Процедура ТестРегистраОстатковВиртТабл()
     Recordset  = СоздатьОбъект("ODBCRecordset");
    Recordset.УстБД(БазаSQL)   ;
     ТекстЗапросаSQL = "
     |SELECT
     |  *
     |FROM   
               |  $РегистрОстатки.МестаХранения (:НачДата,,
     |                                                            МестоХранения = :ВыбМестаХранения,
     |                               (МПЗ),(Количество)) as Рег"; 
     Recordset.УстановитьТекстовыйПараметр("НачДата", НачДата);
     Recordset.УстановитьТекстовыйПараметр("ВыбМестаХранения", ВыбМестаХранения);
     //ЗапросSQL.УстановитьТекстовыйПараметр("КонДата", КонДата);
     
     ТЗ = Recordset.ВыполнитьИнструкцию(ТекстЗапросаSQL);
               Сообщить("ТЗ.КоличествоСтрок()="+ТЗ.КоличествоСтрок());
     Сообщить("ТЗ.КоличествоКолонок()="+ТЗ.КоличествоКолонок());
     Для сч=1 По ТЗ.КоличествоКолонок() Цикл
           заголовок="";Тип="";
           ТЗ.ПолучитьПараметрыКолонки(сч, Тип, ,, заголовок, , ,);
           Сообщить("Тип="+Тип);
           Сообщить("заголовок="+заголовок);
     КонецЦикла;            
     
     //ТЗ.ВыбратьСтроки();
     //Пока ТЗ.ПолучитьСтроку()=1 Цикл 
     //      Стр = ;
     //      Сообщить(Стр);
     //КонецЦикла;      
КонецПроцедуры


Выдает ошибку State 42000, native 102, message [Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near '20071101'.

Что это может значить? И где можно прочитать про синтаксис виртуальных внешних таблиц (так по идее понятно что нач. дата, кон. дата, условие, измерения,ресурсы) - но как-то не особо работает
  
Наверх
 
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Простой вопрос
Ответ #1 - 17. Марта 2008 :: 07:23
Печать  
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
Dan777
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 6
Зарегистрирован: 17. Марта 2008
Re: Простой вопрос
Ответ #2 - 17. Марта 2008 :: 07:53
Печать  
Цитата:


Читаем по указанной ссылке ссылке:

$РегистрОстатки.<ИмяРегистра>([<ГраницаРасчета>][,        <Соединение>][,        <Условие>][,        <Измерение>][,<Ресурс>]
) [as <Алиас>]

Пишем запрос:
ТекстЗапросаSQL = "
     |SELECT
     |  *
     |FROM   
     |  $РегистрОстатки.МестаХранения (:ВыбДата // дата 01.11.2007
     |                                                            ,МестоХранения = :ВыбМестоХранения
     |                               ,МПЗ            // измерение
     |                               ,Количество) as Рег";      // ресурс
     Recordset.УстановитьТекстовыйПараметр("ВыбДата", ВыбДата);  // дата 01.11.2007
     Recordset.УстановитьТекстовыйПараметр("ВыбМестоХранения", ВыбМестоХранения); 

результат:  State 42000, native 102, message [Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near '20071101'.



Вообще убираем дату:
ТекстЗапросаSQL = "
     |SELECT
     |  *
     |FROM   
     |  $РегистрОстатки.МестаХранения (
     |                                                            ,МестоХранения = :ВыбМестоХранения
     |                               ,МПЗ            // измерение
     |                               ,Количество) as Рег";      // ресурс
     Recordset.УстановитьТекстовыйПараметр("ВыбМестоХранения", ВыбМестоХранения); 

Результат: State 42000, native 102, message [Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near ','.


Неправильное описание вирт. таблиц в учебнике или в чем может быть дело?
  
Наверх
 
IP записан
 
Dan777
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 6
Зарегистрирован: 17. Марта 2008
Re: Простой вопрос
Ответ #3 - 17. Марта 2008 :: 08:01
Печать  
Более того:

ТекстЗапросаSQL = " 
     |SELECT 
     |  * 
     |FROM    
     |  $РегистрОстатки.МестаХранения ()";


Результат: State 42000, native 102, message [Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near ')'.
Нифиганепонятно.
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Простой вопрос
Ответ #4 - 17. Марта 2008 :: 08:20
Печать  
Dan777 писал(а) 17. Марта 2008 :: 08:01:
Нифиганепонятно.

из документации
Виртуальные таблицы поддерживаются только для SQL формата ИБ.

написал не по теме
  

1&&2&&3
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Простой вопрос
Ответ #5 - 17. Марта 2008 :: 08:21
Печать  
+ на всякий случай
Цитата:
Виртуальные значения поддерживаются только для SQL формата ИБ.

написал не по теме
  

1&&2&&3
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Простой вопрос
Ответ #6 - 17. Марта 2008 :: 08:24
Печать  
Dan777 писал(а) 17. Марта 2008 :: 08:01:
Нифиганепонятно.

убери пробел
Цитата:
.МестаХранения (
  

1&&2&&3
Наверх
 
IP записан
 
Dan777
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 6
Зарегистрирован: 17. Марта 2008
Re: Простой вопрос
Ответ #7 - 17. Марта 2008 :: 08:24
Печать  
из документации
Цитата:
Виртуальные таблицы поддерживаются только для SQL формата ИБ.
[/quote]

Ценное замечание  Улыбка ну естественно только для SQL формата.

Теперь о том в чем было дело (даже хочется ругнуться матом):
вместо

$РегистрОстатки.МестаХранения ()";
оказывается следует писать
$РегистрОстатки.МестаХранения()";
т.е. то что у них анализирует строку запроса чувствительно к пробелу между названием регистра и скобкой

  
Наверх
 
IP записан
 
ADirks
1c++ developer
1c++ moderator
Отсутствует


А нужны ли мы нам?

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Простой вопрос
Ответ #8 - 17. Марта 2008 :: 08:26
Печать  
Вместо  $РегистрОстатки.МестаХранения ( напиши $РегистрОстатки.МестаХранения(.  Пробел там всю малину портит.

PS. поправил бы уже кто-нить эту фигню...  попробовал было сам разобраться и поправить, но чё-то не нашёл даже с какой стороны зайти  Печаль
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Простой вопрос
Ответ #9 - 17. Марта 2008 :: 08:30
Печать  
ADirks писал(а) 17. Марта 2008 :: 08:26:
PS. поправил бы уже кто-нить эту фигню...

интересно а при вызовет процедур/функций ты пробел тоже ставишь перед скобкой?
  

1&&2&&3
Наверх
 
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: Простой вопрос
Ответ #10 - 17. Марта 2008 :: 08:32
Печать  
trad писал(а) 17. Марта 2008 :: 08:30:
ADirks писал(а) 17. Марта 2008 :: 08:26:
PS. поправил бы уже кто-нить эту фигню...

интересно а при вызовет процедур/функций ты пробел тоже ставишь перед скобкой?


В 1С это не является ошибкой.
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Простой вопрос
Ответ #11 - 17. Марта 2008 :: 08:34
Печать  
ладно молчу-молчу
заносит чето меня седня
  

1&&2&&3
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Простой вопрос
Ответ #12 - 17. Марта 2008 :: 08:35
Печать  
Может просто доку поправить чтоб оттуда никто не копировал ошибку?
  
Наверх
ICQ  
IP записан
 
Dan777
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 6
Зарегистрирован: 17. Марта 2008
Re: Простой вопрос
Ответ #13 - 17. Марта 2008 :: 08:44
Печать  
Nick писал(а) 17. Марта 2008 :: 08:35:
Может просто доку поправить чтоб оттуда никто не копировал ошибку?



В доке без пробела, похоже это я его туда нечаяно засунул ...
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Простой вопрос
Ответ #14 - 17. Марта 2008 :: 08:54
Печать  
Dan777 писал(а) 17. Марта 2008 :: 08:44:
Nick писал(а) 17. Марта 2008 :: 08:35:
Может просто доку поправить чтоб оттуда никто не копировал ошибку?



В доке без пробела, похоже это я его туда нечаяно засунул ...


Значит не ты первый. Очень странно как такую ошибку могут повторять разные люди Озадачен
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать