Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Пн июн 18, 2018 10:55 pm

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 56 сообщений ]  На страницу 1 2 3 4 След.
Автор Сообщение
 Заголовок сообщения: порт SQLite 1.0
СообщениеДобавлено: Вс окт 26, 2008 7:44 pm 
Не в сети

Зарегистрирован: Ср июн 04, 2008 10:16 pm
Сообщения: 174
Не очень успешная пока что попытка портировать SQLite 1.0.
SQLite выбрана потому, что основная часть зависимых от платформы/ОС функций там вынесена в отдельный модуль, кроме того, используется мало функций стандартной библиотеки языка C.
Текущая версия работает как "калькулятор": оператор SELECT + выражение (например, select max(1+3,5/7.5))
Есть работа с целыми, вещественными числами и строками;
Работают функции:
min, max, length, abs, substr, random, last_insert_rowid, like, nullif.

Не работает (падает) создание таблиц (остальные функции работы с таблицами
по этой причине проверить не удалось).

Однако работают begin transaction, commit, rollback :)

Внимание - прога создает мусорные файлы (временные файлы БД и логи) на рамдиске.


Вложения:
Комментарий к файлу: собственно программа
sqlite_kos-0.0.7z [85.19 КБ]
149 скачиваний
Комментарий к файлу: исходники
sqlite_kos-src-0.0.7z [246.02 КБ]
146 скачиваний
Вернуться к началу
 Заголовок сообщения: Re: порт SQLite 1.0
СообщениеДобавлено: Вт окт 28, 2008 11:24 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Чт мар 29, 2007 3:02 am
Сообщения: 249
barsuk
Делаешь великое дело... это очередной краеугольный камень в постройке системы...:) буду тестировать, и посажу свой проект на SQL... ;)

_________________
*****:
;дух машины, мой бубен сильнее твоей тупости

*****:


Вернуться к началу
 Заголовок сообщения: Re: порт SQLite 1.0
СообщениеДобавлено: Вт окт 28, 2008 11:37 pm 
Не в сети

Зарегистрирован: Ср июн 04, 2008 10:16 pm
Сообщения: 174
Спасибо :)
Надеюсь, скоро будет что тестировать - пока глюк с созданием таблиц не ловится...


Вернуться к началу
 Заголовок сообщения: Re: порт SQLite 1.0
СообщениеДобавлено: Ср окт 29, 2008 1:04 am 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Пн ноя 28, 2005 8:00 pm
Сообщения: 1601
Компилятор Visual C++? Попробуй добавить ему опцию командной строки /Gs0x100000 (при компиляции через build.bat эту опцию нужно добавить в параметр CPP_PROJ из hello.mak).

_________________
Ушёл к умным, знающим и культурным людям.


Вернуться к началу
 Заголовок сообщения: Re: порт SQLite 1.0
СообщениеДобавлено: Ср окт 29, 2008 1:15 am 
Не в сети

Зарегистрирован: Ср июн 04, 2008 10:16 pm
Сообщения: 174
diamond, огромное спасибо! Я сам не скоро догадался бы до этого. :) Теперь create table не падает (хотя я не могу понять, как это могло быть связано с опцией /Gs).


Вернуться к началу
 Заголовок сообщения: Re: порт SQLite 1.0
СообщениеДобавлено: Ср окт 29, 2008 10:02 am 
Не в сети
Аватара пользователя

Зарегистрирован: Пн апр 16, 2007 6:38 pm
Сообщения: 1222
а "мусорные" файлы можно ли в папку вроде "/sqllite" кидать?

_________________
И мы уже давно не пешки,
Мы пули, мы орлы, и решки!
Война ютит бинарный код,
Умри, или иди вперед!


Вернуться к началу
 Заголовок сообщения: Re: порт SQLite 1.0
СообщениеДобавлено: Ср окт 29, 2008 12:52 pm 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Пн ноя 28, 2005 8:00 pm
Сообщения: 1601
barsuk писал(а):
(хотя я не могу понять, как это могло быть связано с опцией /Gs)

Если вкратце - управление стеком в Windows и Kolibri различается: в Kolibri стек представляет собой обычную область памяти, а в Windows иногда нужны дополнительные махинации. VC, будучи компилятором под Windows, вставляет дополнительный код в функции с размером локальных переменных больше страницы (0x1000 байт = 4К) - вызовы специальной библиотечной функции _chkstk, которая в kos_func.c почему-то реализована как пустая, но должна выделять соответствующее пространство в стеке, уменьшая esp. Соответственно после вызова этой функции стек летит со всеми вытекающими последствиями. Ясно, что очень немногие функции нуждаются в более 4К локальных переменных, но одна такая здесь есть, и она вызывается при create table.
Ключ /Gs изменяет предел с 0x1000 байт на заведомо большое значение, подавляя вставку вызовов _chkstk.

_________________
Ушёл к умным, знающим и культурным людям.


Вернуться к началу
 Заголовок сообщения: Re: порт SQLite 1.0
СообщениеДобавлено: Ср окт 29, 2008 7:48 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Чт мар 01, 2007 4:16 pm
Сообщения: 426
Интересно как.
В FP RTL есть подобная функция, но я не понял её смысла, пошел проверять правильно ли я её реализовал. Проблем пока не было.
Спасибо за информацию.

..bw


Вернуться к началу
 Заголовок сообщения: Re: порт SQLite 1.0
СообщениеДобавлено: Чт окт 30, 2008 12:25 am 
Не в сети

Зарегистрирован: Ср июн 04, 2008 10:16 pm
Сообщения: 174
Gluk писал(а):
а "мусорные" файлы можно ли в папку вроде "/sqllite" кидать?

Принято. Хотя новая версия умеет удалять ненужные файлы, все файлы, которые создает программа, теперь находятся в папке sqlite на рамдиске. Если папки нет, ее нужно создать.

Эта версия уже умеет создавать таблицы (например: create table table_name (id integer, value text)). Можно удалять таблицы и вставлять и извлекать значения. К сожалению, еще полно багов:
1) добавление нового ряда замещает предыдущий,
2) но если есть первичный ключ, можно добавить только 1 ряд,
3) иногда ранее созданные таблицы куда-то исчезают,
4) иногда сбивается парсер выражений и начинает выдавать syntax error на все подряд.
Эти баги известны, я их исправляю. Найдете еще - пишите :)


Вложения:
sqlite_kos-0.1a.7z [96.99 КБ]
139 скачиваний
Вернуться к началу
 Заголовок сообщения: Re: порт SQLite 1.0
СообщениеДобавлено: Чт окт 30, 2008 12:58 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн апр 16, 2007 6:38 pm
Сообщения: 1222
а эти файлы много места занимают? а то рамдиск во многих дистрибутивах забит полностью де-факто..//у меня пока нет возможности самому посмотреть

_________________
И мы уже давно не пешки,
Мы пули, мы орлы, и решки!
Война ютит бинарный код,
Умри, или иди вперед!


Вернуться к началу
 Заголовок сообщения: Re: порт SQLite 1.0
СообщениеДобавлено: Чт окт 30, 2008 1:01 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн апр 16, 2007 6:38 pm
Сообщения: 1222
да и не только мусор, сама база данных ведь может быть довольно большой..

_________________
И мы уже давно не пешки,
Мы пули, мы орлы, и решки!
Война ютит бинарный код,
Умри, или иди вперед!


Вернуться к началу
 Заголовок сообщения: Re: порт SQLite 1.0
СообщениеДобавлено: Чт окт 30, 2008 5:20 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Чт мар 01, 2007 7:57 pm
Сообщения: 835
ну так можно всё это размещать на разделе FAT винта...

_________________
Всех выше те, кто доброе творят,
И за дела добра не ждут наград,
Всем жертвуют для страждущих людей,
Не думая о выгоде своей.


Вернуться к началу
 Заголовок сообщения: Re: порт SQLite 1.0
СообщениеДобавлено: Пт окт 31, 2008 1:02 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн апр 16, 2007 6:38 pm
Сообщения: 1222
как я понял, в этом порте - нельзя.. хотябы уж диск задавать бы, а не полный путь.. // думаю, это выходит за пределы портирования программы // или хотябы путь "/sqlite"относительно исполнимого файла программы..

_________________
И мы уже давно не пешки,
Мы пули, мы орлы, и решки!
Война ютит бинарный код,
Умри, или иди вперед!


Вернуться к началу
 Заголовок сообщения: Re: порт SQLite 1.0
СообщениеДобавлено: Пт окт 31, 2008 6:50 pm 
Не в сети

Зарегистрирован: Ср июн 04, 2008 10:16 pm
Сообщения: 174
Gluk писал(а):
путь "/sqlite"относительно исполнимого файла программы

Хорошая мысль. Сделаю так. В будущем, разумеется, место размещения файлов БД будет настраиваться.


Вернуться к началу
 Заголовок сообщения: Re: порт SQLite 1.0
СообщениеДобавлено: Пт окт 31, 2008 9:05 pm 
Не в сети

Зарегистрирован: Ср июн 04, 2008 10:16 pm
Сообщения: 174
Найденные баги, по-видимому, исправлены. В архиве кроме самой проги еще файл test - это файл БД, который нужно поместить на рамдиск в папку sqlite, после чего можно будет юзать пример таблицы (называется user2).
С путем пока не разобрался (в VC для этого, как и для параметров, нужен бубен и немного времени).


Вложения:
sqlite_kos-0.1b.7z [91.62 КБ]
141 скачивание
Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 56 сообщений ]  На страницу 1 2 3 4 След.

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB