Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Scimore Embedded DB, ошибка при выполнении запроса, Кол-во параметров после where 
V
    Опции темы
sawtooth
Дата 30.7.2009, 05:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 4.8.2008

Репутация: нет
Всего: нет



Проблема следующая. Подобный запрос формируется автоматически средствами C#:
Код

select * from table1 where (id=1 or id=3 or id = 4 or id = 7 or ... or id = xx);

Однако при количестве условий после where более ~30 БД при запросе возвращает ошибку 
"[1053289699][OS:Unhandled error][REASON:Access violation]"
Позже обнаружил, что приложение ScimoreDB Manager, идущее в комплекте с БД на аналогичный запрос выдает ошибку аналогичную.

Если кто сталкивался, подскажите пожалуйста, как подобного избежать? Может посоветуете другую бесплатную встраиваемую БД, с поддержкой .net (или хотя бы COM).
PM MAIL   Вверх
Gluttton
Дата 30.7.2009, 07:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начинающий
***


Профиль
Группа: Завсегдатай
Сообщений: 1170
Регистрация: 28.8.2008
Где: Феодосия

Репутация: 24
Всего: 54



Цитата

Однако при количестве условий после where более ~30 БД при запросе возвращает ошибку 


В качестве эксперимента можно заменить цепочку из "or" на "in", т.е.:
Код

select * from table1 where (id in(1, 3, 4, 7, ..., xx));


Но в любом случае эте не будет панацеей, а лишь позволит изменить "~30" на "~60" smile, судя по всему проблема в том, что размер запроса превышает максимальный размер разрешенный СУБД.

Цитата

Может посоветуете другую бесплатную встраиваемую БД, с поддержкой .net (или хотя бы COM).


Firebird, среди прочего имеет embedded версию, бесплатен и имеет .NET-драйвер. 


--------------------
Слава Україні!
PM MAIL   Вверх
sawtooth
Дата 31.7.2009, 02:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 4.8.2008

Репутация: нет
Всего: нет



Подобная панацея не прошла (вопрос решился внедрением временных таблиц). Как потом оказалось плюс ко всему - у Scimore ограничение на длину запроса в 1024 символа - это уж точно никуда не годится.
Попробую Firebird, спасибо за совет! Надеюсь что таких нелепых проблем не возникнет.

Это сообщение отредактировал(а) sawtooth - 31.7.2009, 02:39
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Составление SQL-запросов | Следующая тема »


 




[ Время генерации скрипта: 0.1221 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.