Russian Qt Forum
Ноябрь 23, 2024, 19:58
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Базы данных
>
Выбор СУБД
Страниц:
1
2
[
3
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Выбор СУБД (Прочитано 26631 раз)
ритт
Гость
Re: Выбор СУБД
«
Ответ #30 :
Октябрь 24, 2008, 15:04 »
нашёл где говорилось про расширенный SQLite:
http://www.hwaci.com/sw/sqlite/prosupport.html
возможно что-то изменилось, а может быть я просто запамятовал - при включённом шифровании предсказывается падение производительности примерно вдвое...
данное расширение доступно только за единоразовую выплату 2килобаксов, но имеется небольшая вероятность договориться о скидке с автором напрямую...
Записан
xintrea
Супер активный житель
Offline
Сообщений: 754
Re: Выбор СУБД
«
Ответ #31 :
Октябрь 25, 2008, 22:23 »
Вставлю свои пять копеек.
В любом случае, какую бы базу ты не выбрал, рекомендую внутри своей программы сделать промежуточный класс/набор функций, который будет вначале как минимум тупо перетранслировать SQL запросы в саму SQL систему и обратно. И все SQL запросы в программе писать не напрямую, используя API выбраной SQL системы, а через вот такой промежуточный класс. Ну, и стараться не пользоваться уникальными для конкретной SQL системы запросами, только стандартными.
Таким образом, ты всегда сможешь лехко перейти с одной БД на другую, подправив только промежуточные функции. Плюс, у тебя будет точка управления SQL запросами. А замедления работы из-за такой реализации, практически не будет. Можешь кстати посмотреть, как Котеров сделал свой DbSimple (
dklab.ru
), на сях делать что-то подобное не обязательно, просто посмотри прототипы его абстрагирующих функций. Именно такой вид будет удобно использовать для своих промежуточных функций.
Записан
Собираю информацию по крупицам
http://webhamster.ru
Rcus
Гость
Re: Выбор СУБД
«
Ответ #32 :
Октябрь 25, 2008, 23:09 »
Смысл создавать еще один слой совместимости если об этом уже позаботились создатели QT включив в состав модуль QtSql.
А вот с возможностью перехода не все так просто. СУБД выбирают по разным критериям, например легкая интеграция в домен MSSQL, скорость обработки данных Oracle, возможности по работе с нестандартными типами PostgreSQL. Но процедурные расширения языка у всех субд разные (есть стандарт SQL/PSM, но появился он относительно поздно), так что легкого перехода в любом случае не будет.
Записан
xintrea
Супер активный житель
Offline
Сообщений: 754
Re: Выбор СУБД
«
Ответ #33 :
Октябрь 26, 2008, 12:34 »
Цитата: Rcus от Октябрь 25, 2008, 23:09
Смысл создавать еще один слой совместимости если об этом уже позаботились создатели QT включив в состав модуль QtSql.
Ну модуль этот поддерживает не все базы данных, о которых говорилось здесь.
IBM DB2
Borland InterBase Driver
MySQL Driver
Oracle Call Interface Driver
ODBC Driver (includes Microsoft SQL Server)
PostgreSQL Driver
SQLite version 3 or above
SQLite version 2
Sybase Adaptive Server
Например, FireBird в списке нету, хотя, наверно через ODBC его можно использовать. Под виндой. А под линухом что делать, если разработчик хочет кросплатформенности?
Но я вообще-то говорю о другом. QtSql - это по большей части модуль абстракции SQL запросов. А я говорю про точку управления, через которую проходят все действия с SQL запросами. Можно конечно унаследоваться от QSqlDatabase, QSqlQuery и т.д., пожалуйста, но точку управления нужно иметь свою, которую легко менять и адаптировать к изменяющимся условиям.
Записан
Собираю информацию по крупицам
http://webhamster.ru
ритт
Гость
Re: Выбор СУБД
«
Ответ #34 :
Октябрь 26, 2008, 13:01 »
фб - это то же ибэйз. и в доках даже имеются указания как собирать с птичкой.
наследоваться от QSqlDatabase, QSqlQuery бесполезно, т.к. это всего лишь обёртки, в частности не имеющие даже ни одного виртуального метода.
у меня есть класс - собрат QSqlTableModelPrivate, но предназначенный не для выборки/хранения, а для подготовки/выполнения бд-независимых запросов к таблице...можно его считать "точкой управления"? или "точка" должна ещё знать всякие ширпотребные СП/СФ, особенности GROUP BY и т.п.?
Записан
xintrea
Супер активный житель
Offline
Сообщений: 754
Re: Выбор СУБД
«
Ответ #35 :
Октябрь 26, 2008, 14:13 »
Я приведу пример из практики, правда немного из другой области, но суть остается та же. Делаем мы системы для интерактивных киосков. И вот с производства приходит заявка - сделать возможность настройки киосковых программ так, чтоб все изображение было кверхногами. Там какая-то залипуха с корпусами и новыми мониторами, в обычном положении они не влазят, а в перевернутом - влезают.
У одного товарища программа была вся сделана через один рендер. Он быстро переделал переворот экрана.
У меня было несколько рендеров - рендер трехмерки, рендер шрифтов, рендер спрайтов, и в каждом рендере свои установки для OpenGL матриц и причие специфичные настройки GL контекста. Но я тоже быстро переделал переворот экрана и задумался, а не доделать ли все до конца, и сделать один рендер?
А у другого товарища весь вывод графики размыт по коду и сделан прямыми OpenGL командами, работа шла с абсолютными координатами. Он долбался долго, то один элемент у него не там появится, то другой, то что-то повернуто не так, то исчезает с экрана. Уже хотели ему советовать оставить как есть, только рендерить в память, потом захватывать картинку в текстуру и выдавать перевернутой. Но оказалось что такое решение заметно тормозит. В конце концов перец вроде сделал что нужно, но код превратился вааще в кашу.
Вот от такого развития событий (только с SQL-командами) я и предостерегаю автора топика. Без точек управления проект расползётся так, что модифицировать и развивать его будет большой проблемой.
Записан
Собираю информацию по крупицам
http://webhamster.ru
ритт
Гость
Re: Выбор СУБД
«
Ответ #36 :
Октябрь 26, 2008, 15:13 »
из данного поста делаю вывод, что мой вспомогательный класс вполне можно назвать "точкой управления"
я же позиционирую его как "хэлпер" - обёртку над QSqlDriver, позволяющую заменить десятки строк кода на пару строк и получить на выходе абсолютно тот же результат...
пример выше неадекватен в случае скл, т.к. в кутэ имеется QSqlDriver, который содержит ряд методов для построения бд-независимых запросов и манипулации данными - строить все запросы через эти методы - и не придётся ползать по коду и, к примеру, квотить имена таблиц/полей по правилам какой-то другой бд...
правда, есть серьёзный минус в QSqlDriver - напроч отсутствует возможность работы с СП/ЮДФ и т.п. посредством стандартных методов
- в таких случаях всё-равно придётся писать "голые" запросы и править их потом в случае необходимости...
Записан
Admin
Administrator
Джедай : наставник для всех
Offline
Сообщений: 1988
Re: Выбор СУБД
«
Ответ #37 :
Октябрь 30, 2008, 12:07 »
нашел тут в тему про 2000 баксовый драйвер sqlite
Цитировать
_**://www.nulled.ws/showthread.php?t=37558
Сабж: есть приложение которое работает с файлом базы данных. 95% что база данных SQLLite. База зашифрованна (в зашифрованном архиве) и вскрыть его (архив) не получается. В самом архиве по коственным данным база не шифруется. Приложение работает с несколькими такими базами и при работе с каждой из них оно загружает всю базу в оперативку. Это костаенные данные но вероятность их около 95% тоже. Нужно как то сделать дамп из оперативки всей области памяти занятой процессом этого приложения.
Знает ли кто-нибудь софт под это дело? Единственное что я знаю это что можно делать полный аварийный дамп памяти и в принцепе пердставляю как это сделать. Но если таким образом делать дамп процесса со всеми базами которые мне нужны то к финалу есть вероятность что комп сдохнет от моих аварийных завершений его работы
Записан
Страниц:
1
2
[
3
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...