Название: Клиент-серверное приложение с БД Отправлено: qwyllum от Апрель 09, 2013, 11:15 С-но вопрос. Научился делать десктопное приложение, которое читает данные с SQLite и выводит их в таблицу TableView. Теперь передо мной следующая задача - сделать приложение клиент-серверным. Отсюда вопросы:
1. Как передавать данные клиенту, которые сервер читает с БД 2. Как их выводить в таблицу - model связана с БД. В случае клиент-серверного приложения, model не может напрямую конектится с БД, данные должен передавать сервер. Если честно, не знаю, как это реализовать. Буду признателен, если кто поможет. Название: Re: Клиент-серверное приложение с БД Отправлено: alex312 от Апрель 09, 2013, 11:18 C-но ответ. Научи свое приложение подключатся в mysql - и фсе . Это уже будет клиент-серверное приложение. :)
Название: Re: Клиент-серверное приложение с БД Отправлено: qwyllum от Апрель 09, 2013, 12:27 C-но ответ. Научи свое приложение подключатся в mysql - и фсе . Это уже будет клиент-серверное приложение. :) так мое приложение умеет подключаться к SQLite) просто БД с сервером может быть на одном компьютере, а клиент - на другом. И клиентов может быть несколькоНазвание: Re: Клиент-серверное приложение с БД Отправлено: Bepec от Апрель 09, 2013, 12:30 Ну таки разрабатывайте протокол, или же переходите на серверную БД.
Название: Re: Клиент-серверное приложение с БД Отправлено: qwyllum от Апрель 09, 2013, 14:50 Ну таки разрабатывайте протокол, или же переходите на серверную БД. Ну, допустим, я разработал простейший протокол, который будет передавать данные записи от сервера к клиенту. Теперь вопрос - QTableView работает с моделью. Модель и база на сервере, QTableView на клиенте. Следовательно, тут я вижу такие варианты:1. Копировать переменную класса QSqlQueryModel и пересылать ее по сети полностью. На клиенте из ее копии формировать таблицу, которую и требуется отобразить. 2. Передавать список параметров, которые надо либо выводить на клиенте, либо записывать в БД на сервере. С записью вроде понятно. А с выводом... ну, допустим, я получил 4 строковых параметра, как мне запихнуть их в QTableView? Название: Re: Клиент-серверное приложение с БД Отправлено: Bepec от Апрель 09, 2013, 14:59 Я думаю вам не так надо думать :D
Копирование QSqlQueryModel дело неблагодарное. Там жеж умные указатели и прочая. Я вижу пару выходов: 1) работать с самопальной моделькой, которая будет запрашивать данные с сервера (т.е. видно 30 строк - она 30 запросит.) Нужно больше? запросит следующие 30 али ещё сколько. Т.е. посылаем запрос на сервер, получаем готовую строку. Редактируем? уходит запрос. +: возможное быстродействие -: самому писать модельку, эт дело тоже неблагодарное :D 2) развернуть серверную БД и тупо использовать стандартные модели. +: без особых понтов получаем полный функционал. -: возможен взлом и прочая порча гадости :D Пусть и чисто теоритически -: вам надо освоить серверную бд :D Название: Re: Клиент-серверное приложение с БД Отправлено: KrupaKarlo от Апрель 09, 2013, 19:51 Я думаю вам не так надо думать :D Копирование QSqlQueryModel дело неблагодарное. Там жеж умные указатели и прочая. Я вижу пару выходов: 1) работать с самопальной моделькой, которая будет запрашивать данные с сервера (т.е. видно 30 строк - она 30 запросит.) Нужно больше? запросит следующие 30 али ещё сколько. Т.е. посылаем запрос на сервер, получаем готовую строку. Редактируем? уходит запрос. +: возможное быстродействие -: самому писать модельку, эт дело тоже неблагодарное :D 2) развернуть серверную БД и тупо использовать стандартные модели. +: без особых понтов получаем полный функционал. -: возможен взлом и прочая порча гадости :D Пусть и чисто теоритически -: вам надо освоить серверную бд :D это я б сказал клиент сервер на уровне детсада. я хз как такое можно предлагать. Вообще модельки кутешные для БД, которые работют с ней в гуй потоке это мрак полный. тут на самом деле куча вопросов, к примеру. 1. Делать ли на сервере
2. Выбор протокола или городить свой велосипед или пользоваться готовыми к примеру google protobuf Но блин только в лабораторной работе в университете можно делать запросы к БД из гуй потока Название: Re: Клиент-серверное приложение с БД Отправлено: Bepec от Апрель 09, 2013, 20:30 Уровень детсада = уровню вашего понимания языка. У кого-то это детсад на полгорода, у другого на 1 место и без нянечки.
Не надо такой категоричности. Запрос к БД занимает довольно мало времени в локали. Так что для локали это зе бест и никаких потоков ненадо. К тому же рассматривается пока концепция. А куда чего совать - это дальше по разработке. PS и большая просьба, не цитируйте большие сообщения. Это лишь загрязняет тему. А я итак пойму о чём вы говорили :D PPS чес-слово, а где вы в моём сообщении увидели что запросы выполняются в гуи потоке? :D update: да, забыл добавить, запрос одной строки к локальной базе занимает около 0,002 мс :D Название: Re: Клиент-серверное приложение с БД Отправлено: KrupaKarlo от Апрель 09, 2013, 20:44 больше не буду цитировать. И да мой уровень понимания ниже среднего увы
Название: Re: Клиент-серверное приложение с БД Отправлено: Странник от Апрель 09, 2013, 22:39 зачем городить велосипед и использовать SQLite в сетевом многопользовательском приложении? Оо
смените СУБД на MySQL, PostgresSQL или Firebird. они бесплатны и поддерживаются Qt, так что всей работы - перенести базу, приведя в соответствие типы данных. |