Гость
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Отладка view с вложенными select-колонками / 25 сообщений из 25, страница 1 из 1
17.01.2017, 06:42
    #39385804
veretragna
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отладка view с вложенными select-колонками
Добрый день. Меньше слов, больше дела.
Помогите отладить схему создаваемого view, чтобы в колонках отображались правильные цифры.
Вот к примеру, по задумке в столбце sGopher в первой строке должно светиться 1, а светится 4, то есть, "WHERE Our_Bool = 1" просто игнорируется. В столбце sGold оно должно посчитать сумму Gold только в тех строках, где Our_Bool = 1, а по факту - считает по всем строкам, опять же условия игнорируются.
В столбце sOur всегда считает правильно, вот это меня вводит просто в ступор - наверное, там просто нет условий, чтобы их игнорировать.

Пример базы - во вложениях, DDL для создания VIEW - вот.
Заранее спасибо.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
CREATE VIEW IF NOT EXISTS 'View_Summary' AS
SELECT Date, CAST (ID_Godville AS text) AS ID_Godville, 
MapNumber, 
Property, 
Bosses, 
Bonus, 
Comment,
(SELECT SUM (Our_Bool)) AS sOur, 
(SELECT SUM (Gopher) WHERE Our_Bool = 1) AS sGopher, 
(SELECT SUM (Gold) WHERE Our_Bool = 1) AS sGold, 
(SELECT COUNT (God_Hero) WHERE Our_Bool = 0 AND Alive_Bool = 0) AS sBuratines, 
(SELECT SUM (God_Hero) WHERE Our_Bool = 1 AND Alive_Bool = 0) AS sLoss
FROM Log_Summary t1
INNER JOIN Log_Players t2 ON t1.ID_Internal = t2.ID_Internal
GROUP BY t1.ID_Internal;
...
Рейтинг: 0 / 0
17.01.2017, 09:41
    #39385857
pit_alex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отладка view с вложенными select-колонками
veretragna,


Код: sql
1.
(SELECT SUM (Gopher) WHERE Our_Bool = 1)



а это вообще документированная конструкция?
...
Рейтинг: 0 / 0
17.01.2017, 09:44
    #39385859
pit_alex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отладка view с вложенными select-колонками
pit_alex,

Код: sql
1.
2.
3.
,SUM (Case WHEN t2.Our_Bool = 1 then t2.Gopher
      else 0
      end)  AS sGopher



Может как то так?
...
Рейтинг: 0 / 0
17.01.2017, 18:22
    #39386312
veretragna
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отладка view с вложенными select-колонками
pit_alex,

Вообще эту конструкцию
Код: sql
1.
(SELECT SUM (Gopher) WHERE Our_Bool = 1)

я видел в туториалах на просторах, правда, в другом контексте. Она точно работает, если сделать вот так: (вырезка из изначальной схемы)
Код: sql
1.
2.
CREATE VIEW View_Summary AS SELECT ID_Internal, Date, cast(ID_Godville AS TEXT),
(SELECT cast(total(Our_Bool) AS INTEGER) from Log_Players where ID_Internal = Log_Summary.ID_Internal) as sOur;


Но в таком варианте оно слишком медленно работает, и чем больше база, тем медленнее работает.
Поэтому я решил переделать запрос и использовать INNER JOIN, так работает почти мгновенно, но с такими приколами.

Ваш вариант может сработать, если выйдет, отпишусь.
...
Рейтинг: 0 / 0
17.01.2017, 21:00
    #39386417
veretragna
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отладка view с вложенными select-колонками
Заработало.
Правда, без толку - все равно, чем больше база, тем медленнее работает выборка. Может, и с этим поможете?
Этот view используется для построения списка в виртуальном listview в десктопном приложении.

Вот такой view получился:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
CREATE VIEW IF NOT EXISTS 'View_Summary' AS
SELECT t1.ID_Internal, Date, CAST (ID_Godville AS text) AS ID_Godville,
MapNumber, 
Property, 
sum(Our_Bool) AS sOur, 
sum(Case WHEN t2.Our_Bool = 1 then t2.Gopher else 0 end) AS sGopher, 
sum(Case WHEN t2.Our_Bool = 1 then t2.Gold else 0 end) AS sGold, 
sum(Case WHEN (t2.Our_Bool = 0 AND t2.Alive_Bool = 0) then 1 else 0 end) AS sBuratines, 
Bosses, 
sum(Case WHEN (t2.Our_Bool = 1 AND t2.Alive_Bool = 0) then 1 else 0 end) AS sLoss, 
Bonus, 
Comment
FROM Log_Summary t1
INNER JOIN Log_Players t2 ON t1.ID_Internal = t2.ID_Internal
GROUP BY t1.ID_Internal;




Так вот. Для извлечения данных в список используется такая конструкция:
Код: sql
1.
2.
SELECT Date, ID_Godville, MapNumber, Property, sOur, sGopher, sGold, sBuratines, Bosses, sLoss, Bonus, Comment 
FROM 'View_Summary' ORDER BY " & $DirSort & " LIMIT " & $Limit & " OFFSET " & $Offset & ";"



"ORDER BY", сдается мне, и замедляет сортировку на больших базах. Можно ли как-то оптимизировать выборку на скорость?
...
Рейтинг: 0 / 0
17.01.2017, 22:28
    #39386453
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отладка view с вложенными select-колонками
veretragna"ORDER BY", сдается мне, и замедляет сортировку на больших базах. Можно ли как-то оптимизировать выборку на скорость?Конечно можно! Убери ее нафиг и никогда больше не используй ORDER BY.
Сортировать надо на клиенте, а не в sql.
...
Рейтинг: 0 / 0
17.01.2017, 23:31
    #39386488
veretragna
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отладка view с вложенными select-колонками
White Owl, слабо представляю себе, как это сделать в клиенте. Виртуальный listview, около 100к записей, которые надо отсортировать по любой из колонок. Варианта два: или грузить это все в память и сортировать там, или нафиг сортировку вообще
...
Рейтинг: 0 / 0
17.01.2017, 23:35
    #39386490
veretragna
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отладка view с вложенными select-колонками
Сортировка виртуального listview - это вообще задачка не из легких, и усугубляется тем, что ЯП скриптовой.
...
Рейтинг: 0 / 0
18.01.2017, 00:41
    #39386517
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отладка view с вложенными select-колонками
veretragnaWhite Owl, слабо представляю себе, как это сделать в клиенте. Виртуальный listview, около 100к записей, которые надо отсортировать по любой из колонок. Варианта два: или грузить это все в память и сортировать там, или нафиг сортировку вообщеДа, грузить в память.
Нет, не надо грузить в память 100К записей, нет на свете человека который сможет прочить 100К строк на экране.
Человек способен осознать максимум пару десятков строк. Для б о льших объемов - агрегаты и аналитика.
...
Рейтинг: 0 / 0
18.01.2017, 02:22
    #39386545
veretragna
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отладка view с вложенными select-колонками
White Owl, приведите, будьте добры, пример, который выведет на экран 20 строчек: элементы с индексом от 10000 до 10020, отсортированных по sGold в общей массе. Виртуальный listview выдает вместе с сообщением WM_NOTIFY LVN_ODCACHEHINT только начальный и конечный индекс элементов, для которых надо извлечь данные. Колонку сортировки держим в уме, получая его от события WM_NOTIFY LVN_COLUMNCLICK.
"Для больших объемов - агрегаты и аналитика." - это слишком расплывчатая рекомендация.
...
Рейтинг: 0 / 0
18.01.2017, 19:09
    #39387121
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отладка view с вложенными select-колонками
veretragnaWhite Owl, приведите, будьте добры, пример, который выведет на экран 20 строчек: элементы с индексом от 10000 до 10020,
Код: sql
1.
select * from table where PK>=10000 and PK<=10020




veretragna отсортированных по sGold в общей массе.Это задача для listview.

veretragna Виртуальный listview выдает вместе с сообщением WM_NOTIFY LVN_ODCACHEHINT только начальный и конечный индекс элементов, для которых надо извлечь данные. Колонку сортировки держим в уме, получая его от события WM_NOTIFY LVN_COLUMNCLICK.Что это за "виртуальный listview"? Да еще и выдающий системные виндовые события???
Ты вообще на каком языке пишешь клиента? С каким фреймворком?
В общем, читать тут: https://en.wikipedia.org/wiki/Model–view–presenter
Данные читаются из БД на уровне модели, сортируются на уровне представления.

veretragna "Для больших объемов - агрегаты и аналитика." - это слишком расплывчатая рекомендация.Будет конкретный вопрос о том, что нужно от большого объема - дам более конкретный совет.
...
Рейтинг: 0 / 0
18.01.2017, 20:34
    #39387162
veretragna
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отладка view с вложенными select-колонками
White Owl, что такое virtual listview (из MSDN) .
То, что Вы говорите - это задача listview только тогда, если сам listview умеет сортировать данные. Listview в виртуальном режиме ничего не сортирует, а только отправляет родительскому окну сообщение LVN_ODCACHEHINT с адресом начального и конечного элемента, которые надо извлечь в память, и LVN_GETDISPINFOW, если элемент надо отрисовать. Все остальное - забота самой программы, а не контроля.
Насчет языка: да какая разница? Приложение десктопное под винду, язык скриптовой, GUI нарисован на чистом WinAPI.

авторБудет конкретный вопрос о том, что нужно от большого объема - дам более конкретный совет.

Задача описана в ходе треда. Есть у нас view:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
CREATE VIEW IF NOT EXISTS 'View_Summary' AS
SELECT t1.ID_Internal, Date, CAST (ID_Godville AS text) AS ID_Godville,
MapNumber, 
Property, 
sum(Our_Bool) AS sOur, 
sum(Case WHEN t2.Our_Bool = 1 then t2.Gopher else 0 end) AS sGopher, 
sum(Case WHEN t2.Our_Bool = 1 then t2.Gold else 0 end) AS sGold, 
sum(Case WHEN (t2.Our_Bool = 0 AND t2.Alive_Bool = 0) then 1 else 0 end) AS sBuratines, 
Bosses, 
sum(Case WHEN (t2.Our_Bool = 1 AND t2.Alive_Bool = 0) then 1 else 0 end) AS sLoss, 
Bonus, 
Comment
FROM Log_Summary t1
INNER JOIN Log_Players t2 ON t1.ID_Internal = t2.ID_Internal
GROUP BY t1.ID_Internal;



В результате может быть от нескольких тысяч до 100 тысяч строк.
Нужно извлечь, например, 20 строк с индексом от 10000 до 10020 с учетом сортировки. Но с такой формой VIEW чем больше база, тем медленнее работает выборка. Как добиться скорости?
...
Рейтинг: 0 / 0
18.01.2017, 20:36
    #39387164
veretragna
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отладка view с вложенными select-колонками
Если Вам удобнее выражать мысли в С++, я легко пойму.
...
Рейтинг: 0 / 0
18.01.2017, 20:40
    #39387167
veretragna
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отладка view с вложенными select-колонками
К слову, в результате активного гугления узнал, что во взрослых БД эта задача решается созданием индекса на VIEW. SQLite, к сожалению, не позволяет индексировать VIEW. Как вариант - можно пожертвовать памятью и создать вместо VIEW третью полностью индексированную таблицу, но база разрастется, естественно.
...
Рейтинг: 0 / 0
19.01.2017, 08:28
    #39387325
pit_alex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отладка view с вложенными select-колонками
veretragna,

White Owl прав, вам необходимо ограничить запрос условием, так как 100К записей пользователю не нужно.
Создавать третью таблицу это конечно да но тогда придется замарачиваться с триггерами для постоянного обновления данных в этой таблице
...
Рейтинг: 0 / 0
19.01.2017, 10:44
    #39387425
PPA
PPA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отладка view с вложенными select-колонками
White OwlveretragnaWhite Owl, приведите, будьте добры, пример, который выведет на экран 20 строчек: элементы с индексом от 10000 до 10020,
Код: sql
1.
select * from table where PK>=10000 and PK<=10020




Этот запрос неверный и естественно он будет работать быстро.

Для клиента стоит задача сначала отсортировать все 100к по полю X
и уже потом вырезать страницу на 20 записей.
...
Рейтинг: 0 / 0
19.01.2017, 12:02
    #39387511
pit_alex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отладка view с вложенными select-колонками
PPA,

а почему нельзя сразу взять 20 записей если известен критерий для поля X?
...
Рейтинг: 0 / 0
19.01.2017, 13:14
    #39387578
PPA
PPA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отладка view с вложенными select-колонками
pit_alex,

Пользователю нужна сортировка выборки в 100к по атрибуту (которому он кликнул)
и только потом локация на нужную страницу.

для реализации на клиенте - нужен полный фетч всех данных
на сервере это требует вложенного order by такого вида:

select rownum as n,.* from (
....
order by x
)
where n>=10000 and n<=10020

частные случаи возможно и можно оптимизировать
но в общем случае....

расскажи если знаешь как это сделать - интересно посмотреть на решение
...
Рейтинг: 0 / 0
19.01.2017, 15:18
    #39387716
pit_alex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отладка view с вложенными select-колонками
PPA,

Если задача взять определенное количество записей с..по из отсортированного списка, тогда конечно без ORDER BY никак.
Можно уйти от View, создать индексы и работать с самим запросом из приложения.
...
Рейтинг: 0 / 0
19.01.2017, 19:10
    #39387916
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отладка view с вложенными select-колонками
veretragnaТо, что Вы говорите - это задача listview только тогда, если сам listview умеет сортировать данные.Не верно. View - ничего не сортирует и ничего не хранит. Оно только отображает то, что ему отдал presenter.
Грубо говоря: Model - читает из базы данные и хранит все данные в памяти при нужде подчитывая из базы или записывая обратно, Presenter - решает какие строки у Model запрашивать, а View - только рисует на экране то что выдает Presenter.

veretragna Listview в виртуальном режиме ничего не сортирует, а только отправляет родительскому окну сообщение LVN_ODCACHEHINT с адресом начального и конечного элемента, которые надо извлечь в память, и LVN_GETDISPINFOW, если элемент надо отрисовать. Все остальное - забота самой программы, а не контроля.Ну вообще-то это и есть "контроль". MVP это вариация MVC...

veretragnaНасчет языка: да какая разница? Приложение десктопное под винду, язык скриптовой, GUI нарисован на чистом WinAPI.Вот в чистом WinAPI и проблема - он сам по себе достаточно замороченный и многобуквенный. Вмешивать туда еще и работу с БД.... Можно конечно, но это уже явно не задача для форумных постов. Это задача для полноценного рабочего дня (длинной в несколько месяцев минимум).
Поэтому, я тебе очень сильно рекомендую забить на WinAPI и перейти на что-нибудь достаточно выскоуровневое чтобы не париться с ручной обработкой WM сигналов.

veretragnaВ результате может быть от нескольких тысяч до 100 тысяч строк.
Нужно извлечь, например, 20 строк с индексом от 10000 до 10020 с учетом сортировки. Но с такой формой VIEW чем больше база, тем медленнее работает выборка. Как добиться скорости?Ну я уже говорил что "извлечь 100 тысяч строк" это бессмысленно. Никто не будет читать эти 100 строк, ни с экрана, ни с бумаги. Человек на самом деле хочет или сумму, или среднее, или количество...
Чтобы извлечь "20 строк с индексом от 10000 до 10020 с учетом сортировки", тебе нужно решить два вопроса:
1) По какому критерию ты сортируешь? У тебя в таблице какое-то поле есть? Или формула по нескольким полям?
2) Ты знаешь чем "нужные" 20 строк отличаются от "не нужных"? По какому условию, перебирая отсортированную таблицу ты решаешь "пока не интересно, пока не интересно.... о! Вот эти строки уже интересны. А дальше опять не интересно".
Вот как только ты смог ответить на эти два простых вопроса, то у тебя сразу появляется запрос вида:
Код: sql
1.
select * from table where someFunction(fields)>=lowerBound and someFunction(fields)<=upperBound


И никаких сортировок не нужно.
Model формирует подобный запрос на основе GUI формы с кнопочками и переключателями и вытягивает данные из БД, Presenter решает в каком порядке отдавать данные на просмотр, а View уже рисует на экране.
...
Рейтинг: 0 / 0
19.01.2017, 19:12
    #39387917
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отладка view с вложенными select-колонками
pit_alexPPA,

Если задача взять определенное количество записей с..по из отсортированного списка, тогда конечно без ORDER BY никак.
Можно уйти от View, создать индексы и работать с самим запросом из приложения.Ну с чего это вдруг "никак". ORDER BY он всегда по какому-то полю таблицы делается (или комбинации полей). Ну и что тебя останавливает просто добавить в запрос критерий "от и до" по этому самому полю?
...
Рейтинг: 0 / 0
19.01.2017, 22:30
    #39387976
PPA
PPA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отладка view с вложенными select-колонками
White Owl Ну и что тебя останавливает просто добавить в запрос критерий "от и до" по этому самому полю?

Проблема в том что иногда нужно оценить эти "от" и "до" и они заранее не известны.

Никогда не открывали в GUI большую таблицу первый раз?
при старте она содержит 100К записей и ты начинаешь разбираться c этим "мусором"

Чтобы узнать доступные значения в колонке x можно сделать операции
1. group by/ distinct + отметить галками интересные значения (так работает популярная функция фильтрации в экселе)
2. order by по x + дать возможность быстро полистать "простыню" страниц.

Вероятно стоит задача реализовать в GUI второй вариант.
...
Рейтинг: 0 / 0
19.01.2017, 23:13
    #39387995
veretragna
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отладка view с вложенными select-колонками
White OwlПоэтому, я тебе очень сильно рекомендую забить на WinAPI и перейти на что-нибудь достаточно выскоуровневое чтобы не париться с ручной обработкой WM сигналов.
До этого отлично справлялся, работаю годами, привык. Но допустим, я перешел на высокоуровневую обертку типа wxWidgets. Как это мне поможет работать с виртуальным режимом listview? Обычный режим listview не подходит, потому что в обычном режиме отрисовка 7000 элементов (маленькая тестовая база) одним махом занимает 3 секунды на слабеньком ноутбуке типа моего переносного. А если записей 100к или 1кк? Только виртуальный режим позволяет держать в списке от 10к элементов и не упасть по скорости.

White OwlЧтобы извлечь "20 строк с индексом от 10000 до 10020 с учетом сортировки", тебе нужно решить два вопроса:
1) По какому критерию ты сортируешь? У тебя в таблице какое-то поле есть? Или формула по нескольким полям?
2) Ты знаешь чем "нужные" 20 строк отличаются от "не нужных"? По какому условию, перебирая отсортированную таблицу ты решаешь "пока не интересно, пока не интересно.... о! Вот эти строки уже интересны. А дальше опять не интересно".
Вот как только ты смог ответить на эти два простых вопроса, то у тебя сразу появляется запрос вида:
Код: sql
1.
select * from table where someFunction(fields)>=lowerBound and someFunction(fields)<=upperBound


И никаких сортировок не нужно.
Мне нужно, чтобы в любой момент времени я мог посмотреть , например, 20 записей с максимальным или минимальным sGold, sGopher, sLoss или других значений в любой колонке. Для того сортировка и делается, PPA совершенно правильно говорит.
White Owl, почему вы всячески увиливаете от прямо заданного вопроса: как добиться скорости? Не нужны мне Model-View-Presenter на маленьком проекте всего в 150кб чисто моего кода, хватит их сюда пихать по теме и без темы. Они не решают проблему скорости, а просто описывают модель связи разных компонентов программы. Не знаете - так и скажите.

Думаю, средствами SQLite данная задача неразрешима, если задействовать View. Лучше всего выглядит выход с третьей таблицей и триггерами на автообновление этой таблицы.
...
Рейтинг: 0 / 0
20.01.2017, 21:05
    #39388723
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отладка view с вложенными select-колонками
PPAWhite Owl Ну и что тебя останавливает просто добавить в запрос критерий "от и до" по этому самому полю?
Проблема в том что иногда нужно оценить эти "от" и "до" и они заранее не известны.Не правда. Они всегда заранее известны хотя бы в духе "записи за вчера или неделю назад".
Не надо путать разработчика и юзера. Юзер почти никогда не может объяснить разработчику что ему нужно, но в своих данных юзер ориентируется очень хорошо.

PPA2. order by по x + дать возможность быстро полистать "простыню" страниц.И в чем смысл для юзера в таком листании? Ну вот представь себе бухгалетра, который получает на экран 100К платежек и она начинает эти 100К листать. Зачем она это делает? Твои варианты?
...
Рейтинг: 0 / 0
20.01.2017, 21:34
    #39388746
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отладка view с вложенными select-колонками
veretragnaДо этого отлично справлялся, работаю годами, привык. Но допустим, я перешел на высокоуровневую обертку типа wxWidgets. Как это мне поможет работать с виртуальным режимом listview? Обычный режим listview не подходит, потому что в обычном режиме отрисовка 7000 элементов (маленькая тестовая база) одним махом занимает 3 секунды на слабеньком ноутбуке типа моего переносного. А если записей 100к или 1кк? Только виртуальный режим позволяет держать в списке от 10к элементов и не упасть по скорости.Вот как раз по этому, я и советую перейти на что-то выскоуровневое, потому что там это "упасть по скорости отрисовки из-за объема" уже решено.
Использовать системный виджет от виндов это конечно круто и хардкорно, но в 2017-ом году - это не оправдано экономически. Любую программу можно написать на ассемблере, но нужно ли быть настолько крутым?


veretragnaМне нужно, чтобы в любой момент времени я мог посмотреть , например, 20 записей с максимальным или минимальным sGold, sGopher, sLoss или других значений в любой колонке.Ну это пожалуй единственный случай когда ORDER BY (в паре с индексом) может помочь:
Код: sql
1.
select * from table order by sGold desc limit 20




veretragnaWhite Owl, почему вы всячески увиливаете от прямо заданного вопроса: как добиться скорости? Не нужны мне Model-View-Presenter на маленьком проекте всего в 150кб чисто моего кода, хватит их сюда пихать по теме и без темы. Они не решают проблему скорости, а просто описывают модель связи разных компонентов программы. Не знаете - так и скажите.
Если ты не веришь в решение, это не означает что оно не верное.
И вообще, тебе не кажется что оценивать скорость работы с данными по объему кода слегка странновато? Итоговое время обработки данных зависит не от объема твоего кода, а от объема данных с которыми твой код работает и алгоритмов по которым твой код работает.
...
Рейтинг: 0 / 0
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Отладка view с вложенными select-колонками / 25 сообщений из 25, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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