powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Ошибка парсера Sqlite в Андроид
6 сообщений из 6, страница 1 из 1
Ошибка парсера Sqlite в Андроид
    #38077386
Lisichkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помогите!

У одного из пользователей моей программы возникает ошибка парсера Sqlite.
Из обсуждения я понял, что у пользователя "древний" Андроид 2.1, SQL он не знает, модифицировать на о бум SQL запрос я не хочу..
Ошибка:
Exception: java.lang.RuntimeException
Message: android.database.sqlite.SQLiteException: no such column: p.source: , while compiling: select p2.Value, p2.source ....

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
begin tran

CREATE TABLE [Preferences] (
  [_id] INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, 
  [name] VARCHAR(60) NOT NULL, 
  [type] VARCHAR(60) NOT NULL, 
  [source] VARCHAR(60), 
  [value] TEXT)

select p2.Value, p2.source
from ( 
select p.source, min(p2._id) _id from preferences p
left join preferences p2 on p.source=p2.source
  and p2.name='USSD'
where p.source<>'BB8E4B2633CEFF894B8E43E25E1C484D'
group by p.source) p
inner join preferences p2 on p.source=p2.source
  and p2.name='QueryName'
order by p._id
 
rollback
...
Рейтинг: 0 / 0
Ошибка парсера Sqlite в Андроид
    #38077820
Lisichkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
После общения с пользователем и прогонов на его телефоне тестовых программ, ошибка сузилась:

no such column: p.source: , while compiling
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
select *
from ( 
select p.source, min(p2._id) [_id] from preferences p
left join preferences p2 on p.source=p2.source
  and p2.name='USSD'
where p.source<>'BB8E4B2633CEFF894B8E43E25E1C484D'
group by p.source) pn
inner join preferences pn2 on pn.source=pn2.source
  and pn2.name='QueryName'



Да, что интересно, запрос:
Код: sql
1.
2.
3.
4.
5.
6.
7.
select *
from ( 
select p.source, min(p2._id) [_id] from preferences p
left join preferences p2 on p.source=p2.source
  and p2.name='USSD'
where p.source<>'BB8E4B2633CEFF894B8E43E25E1C484D'
group by p.source) pn


Выполняется без ошибок!
...
Рейтинг: 0 / 0
Ошибка парсера Sqlite в Андроид
    #38077824
Lisichkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Описался, ошибка no such column: pn.source: , while compiling
...
Рейтинг: 0 / 0
Ошибка парсера Sqlite в Андроид
    #38078425
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сходу могу предложить только добавить AS.
Код: sql
1.
select ... from (sub-select) AS alias

На сегодняшней версии SQLite это слово не обязательно, но ... все может быть.
Ну и конечно возможно, что та древняя версия просто не позволяет делать виртуальные таблицы, а скобки игнорирует? Тогда придется переписывать запрос без виртуальных таблиц.
...
Рейтинг: 0 / 0
Ошибка парсера Sqlite в Андроид
    #38079183
Lisichkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сам себе отвечаю:
После долгих опытов с SQL запросом заработал следующий вариант:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
select p2.Value, p2.source
from ( 
select p.source s, min(p2._id) _id from preferences p
left join preferences p2 on p.source=p2.source
  and p2.name='USSD'
where p.source<>'BB8E4B2633CEFF894B8E43E25E1C484D'
group by p.source) p
inner join preferences p2 on p.s=p2.source
  and p2.name='QueryName'
order by p._id



Т.е. Добавил алиас для столбца p.source и все заработало....
Что разве в ранних сборках sqlite.dll было подобное ограничение ?! :\
...
Рейтинг: 0 / 0
Ошибка парсера Sqlite в Андроид
    #38080067
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LisichkinЧто разве в ранних сборках sqlite.dll было подобное ограничение ?! :\Баги могут быть везде.

Прочитай это: http://www.sql.ru/faq/faq_topic.aspx?fid=202
И пользуйся кнопкой "Предварительный просмотр".
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Ошибка парсера Sqlite в Андроид
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]