Переключение на Главную Страницу Страницы: 1 [2] 3 4  ОтправитьПечать
Очень популярная тема (более 25 ответов) Ошибка ICASE (число прочтений - 8943 )
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Ошибка ICASE
Ответ #15 - 08. Июня 2012 :: 07:34
Печать  
В плане ? А откуда ты свой 7d9642f7-25ea-4e01-8ea7-1d02e7cfd9f6 взял ?
Улыбка)

это же и есть твой список..
Я так обычно укладываю список в параметр:

Код
Выбрать все
|where ляля in (select val from :ВыбСписок)

..........
врСписок="";
Запрос.УложитьСписокОбъектов(СписокСМусором, врСписок);
Запрос.УстановитьТекстовыйПараметр("ВыбСписок", врСписок); 




  
Наверх
 
IP записан
 
DCKiller
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 70
Зарегистрирован: 12. Декабря 2011
Re: Ошибка ICASE
Ответ #16 - 08. Июня 2012 :: 07:39
Печать  
Ну я, собственно, так и сделал. Только он мне говорит: "Queries of this type are not supported."  Злой
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Ошибка ICASE
Ответ #17 - 08. Июня 2012 :: 07:43
Печать  
тут дело не в списке, тут дело в коррелированном подзапросе, точнее в условии
WHERE val = $ПродажиОбороты.Номенклатура
  
Наверх
 
IP записан
 
DCKiller
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 70
Зарегистрирован: 12. Декабря 2011
Re: Ошибка ICASE
Ответ #18 - 08. Июня 2012 :: 07:50
Печать  
Eprst писал(а) 08. Июня 2012 :: 07:43:
тут дело не в списке, тут дело в коррелированном подзапросе, точнее в условии
WHERE val = $ПродажиОбороты.Номенклатура


И? ЧТо не так с условием? Как тогда исхитриться?
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Ошибка ICASE
Ответ #19 - 08. Июня 2012 :: 07:57
Печать  
Да запросто Улыбка

Код
Выбрать все
ТекстЗапроса = "
|SELECT
|   Список.val,
|   IIF(Список.val='',$ПустойИД, :ГруппаТовара1) As [ГруппаТовара $Справочник.Номенклатура],
|     $ПродажиОбороты.Номенклатура As [Номенклатура $Справочник.Номенклатура]
|FROM
|     $Регистр.Продажи As ПродажиОбороты
|
|left join :ВыбСписок Список on Список.val = $ПродажиОбороты.Номенклатура
|
|";
врСписок="";
гЗапрос.УложитьСписокОбъектов(ВыбНоменклатура, врСписок,"Номенклатура");
гЗапрос.УстановитьТекстовыйПараметр("ВыбСписок", врСписок);
гЗапрос.ВыполнитьИнструкцию(ТекстЗапроса).ВыбратьСтроку(); 

  
Наверх
 
IP записан
 
DCKiller
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 70
Зарегистрирован: 12. Декабря 2011
Re: Ошибка ICASE
Ответ #20 - 08. Июня 2012 :: 09:21
Печать  
А ларчик просто открывался  Улыбка

Спасибо за подсказку!
  
Наверх
 
IP записан
 
DCKiller
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 70
Зарегистрирован: 12. Декабря 2011
Re: Ошибка ICASE
Ответ #21 - 12. Июня 2012 :: 14:36
Печать  
Кстати, хотел уточнить:насколько я слышал, есть какой-то драйвер, позволяющий работать с файловой БД  в монопольном режиме. Не подскажите, что это за штука, и как к ней подключаться, по аналогии с фоксом?
  
Наверх
 
IP записан
 
zk96
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 320
Местоположение: Киев
Зарегистрирован: 15. Ноября 2009
Пол: Мужской
Re: Ошибка ICASE
Ответ #22 - 12. Июня 2012 :: 21:44
Печать  
DCKiller писал(а) 12. Июня 2012 :: 14:36:
Кстати, хотел уточнить:насколько я слышал, есть какой-то драйвер, позволяющий работать с файловой БД  в монопольном режиме. Не подскажите, что это за штука, и как к ней подключаться, по аналогии с фоксом?

Внешная компонента SQLite.
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Ошибка ICASE
Ответ #23 - 13. Июня 2012 :: 05:10
Печать  
DCKiller писал(а) 12. Июня 2012 :: 14:36:
Кстати, хотел уточнить:насколько я слышал, есть какой-то драйвер, позволяющий работать с файловой БД  в монопольном режиме. Не подскажите, что это за штука, и как к ней подключаться, по аналогии с фоксом?


есть как минимум 2 решения для фокса
1. поставить вот этот провайдер от uzhast
http://uzhast.fatal.ru/vfpoledb/
2. использовать решение от hogik
http://infostart.ru/public/16268/

ЗЫ: можно конечно и 1sqlite использовать, только она не всегда подходит, впрочем, как и запрос на oledb
  
Наверх
 
IP записан
 
Kalen
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Ошибка ICASE
Ответ #24 - 13. Июня 2012 :: 06:14
Печать  
Eprst писал(а) 13. Июня 2012 :: 05:10:
ЗЫ: можно конечно и 1sqlite использовать, только она не всегда подходит, впрочем, как и запрос на oledb

А чем может не подходить 1sqlite?
  
Наверх
GTalkICQ  
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Ошибка ICASE
Ответ #25 - 13. Июня 2012 :: 06:28
Печать  
Kalen писал(а) 13. Июня 2012 :: 06:14:
А чем может не подходить 1sqlite?


1.запрос к внешней базе
2.медленнее (иногда в разы) фокса на больших выборках с использованием group by
3.не умеет делать update\insert\delete
  
Наверх
 
IP записан
 
mozer
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 324
Местоположение: Пермь
Зарегистрирован: 14. Января 2011
Пол: Мужской
Re: Ошибка ICASE
Ответ #26 - 14. Июня 2012 :: 06:21
Печать  
Похожая ошибка, не могу понять причину.

Код
Выбрать все
текстЗапроса = "
	|SELECT
	|	RTRIM(CAST(CAST(Контрагенты.CODE as INT) as CHAR)) Код,
	|	RTRIM(CAST(CAST(ГруппыКонтрагенты.CODE as INT) as CHAR)) КодГруппы,
	|	Контрагенты.ID [КонтрагентСсылка $Справочник.Контрагенты],
	|	RTRIM(Контрагенты.Descr) Наименование,
	|	IIF(Контрагенты.isfolder=2,0,1) as ЭтоГруппа,
	|	$ФизЛица.ДополнительныеСведения ДополнительныеСведения,
	|	$ФизЛица.Пол [Пол $Справочник.ОКИН],
	|	$ФизЛица.ДатаРождения ЗнаменательнаяДата,
	|	$ФизЛица.ДатаРождения ДатаРождения,
	|	$ФизЛица.ДатаРегистрации ДатаРегистрации,
	|	'' ФактИндекс,
	|	'' ФактГород,
	|	$ФизЛица.ФактАдрес ФактАдрес,
	|	RTRIM($Контрагенты.ЭлПочта) ЭлектроннаяПочта,
	|	$Сайты.АдресСайта СтраничкаВИнтернете,
	|	$ФизЛица.Телефоны Телефон,
	|	RTRIM($ФизЛица.ИНН) ИНН,
	|	$ФизЛица.ДокументУдЛичность Документ,
	|	'' ОКПО,
	|	'' ОКПД,
	|	'' ЮрИндекс,
	|	'' ЮрГород,
	|	$ФизЛица.ЮрАдрес ЮрАдрес
	|FROM
	|	$Справочник.Контрагенты Контрагенты
	|LEFT JOIN
	|	$Справочник.Контрагенты ГруппыКонтрагенты ON ГруппыКонтрагенты.ID = Контрагенты.ParentID
	|LEFT JOIN
	|	$Справочник.ФизЛица ФизЛица ON ФизЛица.ID = $Контрагенты.ЮрФизЛицо
	|LEFT JOIN
	|	$Справочник.Сайты Сайты ON Сайты.ID = $Контрагенты.Сайт
	|WHERE
	|	Контрагенты.ismark = 0
	|";
 



Выдает ошибку:
Цитата:
НаборЗаписей.ВыполнитьИнструкцию(текстЗапроса,итКлиенты);
{Обработка.сфЗагрузкаМагазина_4_9.Форма.Модуль(672)}: State 42000, native 102, message [Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near '='.
  
Наверх
 
IP записан
 
Dmitry The Wing
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 839
Местоположение: Где-то в Сибири
Зарегистрирован: 18. Августа 2009
Пол: Мужской
Re: Ошибка ICASE
Ответ #27 - 14. Июня 2012 :: 09:32
Печать  
mozer писал(а) 14. Июня 2012 :: 06:21:
Похожая ошибка, не могу понять причину.

Код
Выбрать все
ismark = 0 



Выдает ошибку:
Цитата:
НаборЗаписей.ВыполнитьИнструкцию(текстЗапроса,итКлиенты);
{Обработка.сфЗагрузкаМагазина_4_9.Форма.Модуль(672)}: State 42000, native 102, message [Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near '='.
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Ошибка ICASE
Ответ #28 - 14. Июня 2012 :: 09:44
Печать  
ошибки, как минимум:

ON ФизЛица.ID = $Контрагенты.ЮрФизЛицо --ЮрФизЛицо  тип <Справочник>, а не <Справочник.Вид>

Контрагенты.ismark = 0 --тут нужно с '*' сравнивать, там строка, а не число, где '*' - пометка на удаление

  
Наверх
 
IP записан
 
mozer
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 324
Местоположение: Пермь
Зарегистрирован: 14. Января 2011
Пол: Мужской
Re: Ошибка ICASE
Ответ #29 - 14. Июня 2012 :: 10:07
Печать  
Eprst писал(а) 14. Июня 2012 :: 09:44:
ошибки, как минимум:

ON ФизЛица.ID = $Контрагенты.ЮрФизЛицо --ЮрФизЛицо  тип <Справочник>, а не <Справочник.Вид>

Контрагенты.ismark = 0 --тут нужно с '*' сравнивать, там строка, а не число, где '*' - пометка на удаление


нет запрос рабочий, был пока не добавил IFF
База на SQL поэтому ismark = 0

Код
Выбрать все
текстЗапроса = "
	|SELECT
	|	RTRIM(CAST(CAST(Контрагенты.CODE as INT) as CHAR)) Код,
	|	RTRIM(CAST(CAST(ГруппыКонтрагенты.CODE as INT) as CHAR)) КодГруппы,
	|	Контрагенты.ID [КонтрагентСсылка $Справочник.Контрагенты],
	|	RTRIM(Контрагенты.Descr) Наименование,
	|	Контрагенты.isfolder ЭтоГруппа,
	|	$ФизЛица.ДополнительныеСведения ДополнительныеСведения,
	|	$ФизЛица.Пол [Пол $Справочник.ОКИН],
	|	$ФизЛица.ДатаРождения ЗнаменательнаяДата,
	|	$ФизЛица.ДатаРождения ДатаРождения,
	|	$ФизЛица.ДатаРегистрации ДатаРегистрации,
	|	'' ФактИндекс,
	|	'' ФактГород,
	|	$ФизЛица.ФактАдрес ФактАдрес,
	|	RTRIM($Контрагенты.ЭлПочта) ЭлектроннаяПочта,
	|	$Сайты.АдресСайта СтраничкаВИнтернете,
	|	$ФизЛица.Телефоны Телефон,
	|	RTRIM($ФизЛица.ИНН) ИНН,
	|	$ФизЛица.ДокументУдЛичность Документ,
	|	'' ОКПО,
	|	'' ОКПД,
	|	'' ЮрИндекс,
	|	'' ЮрГород,
	|	$ФизЛица.ЮрАдрес ЮрАдрес
	|FROM
	|	$Справочник.Контрагенты Контрагенты
	|LEFT JOIN
	|	$Справочник.Контрагенты ГруппыКонтрагенты ON ГруппыКонтрагенты.ID = Контрагенты.ParentID
	|LEFT JOIN
	|	$Справочник.ФизЛица ФизЛица ON ФизЛица.ID = $Контрагенты.ЮрФизЛицо
	|LEFT JOIN
	|	$Справочник.Сайты Сайты ON Сайты.ID = $Контрагенты.Сайт
	|WHERE
	|	Контрагенты.ismark = 0
	|";
 



Вот так работает без проблем, но мне нужно не 1 и 2, а 0 и 1

насчет справочник вид согласен, поправлю
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 [2] 3 4 
ОтправитьПечать