Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Почему по коду не ищет? (число прочтений - 2192 )
Andrey (sttt)
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 49
Зарегистрирован: 10. Января 2009
Пол: Мужской
Почему по коду не ищет?
04. Марта 2015 :: 15:02
Печать  
Почему по коду не ищет?
Версия 1sqlite 1.0.2.6 (3.7.10)
База ДБФ.
Вроде простой запрос:

Код
Выбрать все
ПарамЗапрос = глБаза.НовыйЗапрос();
ПарамЗапрос.ВыполнитьЗапрос("PRAGMA journal_mode = WAL");
ПарамЗапрос.ВыполнитьЗапрос("analyze Справочник_Товары");

ТекстЗапроса = "
		|select
		|	sprp.id as [Товар $Справочник.Товары]
		|from
		|	Справочник_Товары as sprp
		|where
		|	sprp.code = :КодТовара
		//|limit 10
		|";

ПарамЗапрос.Подставлять("КодТовара", ЧислоКодТовара);
Результат = ПарамЗапрос.ВыполнитьЗапрос(ТекстЗапроса); 

  
Наверх
 
IP записан
 
Andrey (sttt)
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 49
Зарегистрирован: 10. Января 2009
Пол: Мужской
Re: Почему по коду не ищет?
Ответ #1 - 04. Марта 2015 :: 15:54
Печать  
Нашел ответ на форуме:

если Метаданные.Справочник(Вид).ТипКода = "Числовой" тогда
    запрос.Подставлять(":ВнешКод", Формат(Число(Код), "Ч" + Метаданные.Справочник(Вид).ДлинаКода));
иначе
    запрос.Подставлять(":ВнешКод", Строка(Код));
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Почему по коду не ищет?
Ответ #2 - 05. Марта 2015 :: 06:00
Печать  
проще like использовать или trim
  
Наверх
 
IP записан
 
Andrey (sttt)
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 49
Зарегистрирован: 10. Января 2009
Пол: Мужской
Re: Почему по коду не ищет?
Ответ #3 - 05. Марта 2015 :: 08:21
Печать  
на производительность не повлияет?
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Почему по коду не ищет?
Ответ #4 - 05. Марта 2015 :: 08:39
Печать  
Проверь..

И это, писать ПарамЗапрос.ВыполнитьЗапрос("analyze Справочник_Товары");
не надо, давно уже есть автоподключение таблиц, пиши проще:

Код
Выбрать все
ТекстЗапроса = "
		|select
		|	sprp.id as [Товар :Справочник.Товары]
		|from
		|	[Справочник.Товары] as sprp 

  
Наверх
 
IP записан
 
Andrey (sttt)
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 49
Зарегистрирован: 10. Января 2009
Пол: Мужской
Re: Почему по коду не ищет?
Ответ #5 - 05. Марта 2015 :: 12:08
Печать  
проверил, жутко тормозит.
и спасибо)
  
Наверх
 
IP записан
 
Andrey (sttt)
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 49
Зарегистрирован: 10. Января 2009
Пол: Мужской
Re: Почему по коду не ищет?
Ответ #6 - 05. Марта 2015 :: 12:24
Печать  
Eprst писал(а) 05. Марта 2015 :: 08:39:
Проверь..

ПарамЗапрос.ВыполнитьЗапрос("analyze Справочник_Товары");
автоподключение таблиц


и это вроде, как не автоподключение, а:


The ANALYZE command gathers statistics about tables and indices and stores the collected information in internal tables of the database where the query optimizer can access the information and use it to help make better query planning choices. If no arguments are given, all attached databases are analyzed. If a database name is given as the argument, then all tables and indices in that one database are analyzed. If the argument is a table name, then only that table and the indices associated with that table are analyzed. If the argument is an index name, then only that one index is analyzed.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать