Russian Qt Forum

Qt => Базы данных => Тема начата: Jkc от Октябрь 17, 2007, 16:06



Название: Как подключиться к базе данных по локальной сети.
Отправлено: Jkc от Октябрь 17, 2007, 16:06
В офисе есть сеть, нужно что бы пользователь мог зайти на сервер где лежит база данных и запущен сервер и мог просматривать эту базу из своей программы. Хотелось что бы по нажатию на кнопку появлялась форма из которой пользователь мог бы добраться до файла на сервере.


Название: Re: Как подключиться к базе данных по локальной сети.
Отправлено: Kainit от Октябрь 17, 2007, 16:20
Поскольку неизвестно какой сервер, то разумным ответом будет "через ODBC"...

Если хочется чтобы появлялась форма - напиши, чтобы до файлов добираться - используй QFtp, например (на для этого ещё Ftp сервак придётся запускать на сервере), или вообще обычным браузером, там никто не запрещает открыть сетевую папку при наличии прав доступа. А вообще, расшарьте папку, и пусть все ходят.

В чём вопрос - совершенно непонятно. Хотите чтобы тут запостили готовый код? Вряд ли это произойдёт, тут кратко отвечают на проблемные вопросы, а в данной ситуции ни проблемы не видно, ни вопроса.


Название: Re: Как подключиться к базе данных по локальной сети.
Отправлено: pastor от Октябрь 17, 2007, 16:36
Согласен с Kainit. Совершенно бестолковая постановка воспроса...


Название: Re: Как подключиться к базе данных по локальной сети.
Отправлено: T800 от Октябрь 18, 2007, 22:33
Если вопрос в кроссплатформенности , то ODBC не пойдетю Нужно будет использовать обращения к SQL или FireBird (опен-сурс вариант InterBase), но для этого придется поднимать соответствующий сервер. Уточните задачу и суть проблемы.


Название: Re: Как подключиться к базе данных по локальной сети.
Отправлено: Jkc от Октябрь 19, 2007, 11:46
Вот пример конекта к моей базе который использует программа.
Так я могу подключиться к бд на своём компе локально с запущеным
сервером.


#define DB_ORDERS_DRIVER           "QIBASE"
#define DB_ORDERS_DBNAME          "D:\\\\PROJECT\\DATAFILE.FDB"
#define DB_ORDERS_USER       "SYSDBA"
#define DB_ORDERS_PASSWD          "masterkey"
#define DB_ORDERS_HOST        "localhost"


А как быть если мне нужно подключиться к базе на другой машине  с запущеным там сервером
по локальной сети? 

Пробовал так


#define DB_ORDERS_DRIVER           "QIBASE"
#define DB_ORDERS_DBNAME          "\\\\DATAFILES\\DATAFILE.FDB"  // путь к файлу
#define DB_ORDERS_USER       "SYSDBA"
#define DB_ORDERS_PASSWD          "masterkey"
#define DB_ORDERS_HOST       "10.10.15.45"                         // ip сервера


В общем с путями вариаций много было. Но нечего из этого не вышло.




Название: Re: Как подключиться к базе данных по локальной сети.
Отправлено: Пантер от Октябрь 19, 2007, 11:52
Вместо localhost я указываю имя машины, ip не пробовал, но должно работать.
Путь не нужно!!! На серваке прописываешь алиас для птицы типа base=c:\base.fdb и в своей софтине используешь алиас. У меня все отлично работает.


Название: Re: Как подключиться к базе данных по локальной сети.
Отправлено: Tonal от Октябрь 19, 2007, 15:33
Путь к базе должен быть локальный для той машины на которой запущен сервер.
Ну или алиас.


Название: Re: Как подключиться к базе данных по локальной сети.
Отправлено: Dodge от Октябрь 20, 2007, 01:38
Можт на сервере субд висит на одном порту, а драйвер куте по дефолту берет другой,можт стоит жжестко задать порт? о_0


Название: Re: Как подключиться к базе данных по локальной сети.
Отправлено: Tonal от Октябрь 20, 2007, 16:21
Jkc неверно задал путь, так что порт здесь не причём.
Ну а порт по умолчанию 3050.
Для сервера меняется в конфиге. Если человек туда полез, скорее всего он знает что делает. ;-)


Название: Re: Как подключиться к базе данных по локальной сети.
Отправлено: Dodge от Октябрь 21, 2007, 11:53
Если человек туда полез, скорее всего он знает что делает. ;-)
Не в нашей любимой стране  ;D


Название: Re: Как подключиться к базе данных по локальной сети.
Отправлено: Вячеслав от Октябрь 22, 2007, 13:23
isql в зубы и вперед ;) Или IBE (interbase expert) ....


Название: Re: Как подключиться к базе данных по локальной сети.
Отправлено: T800 от Октябрь 29, 2007, 05:42
Вопрос - автор намерен и далее использовать админский пароль по умолчанию для субд (SYSDBA, masterkey) и еще фиксировать его в исполнимом (!) коде? Или это для примера? Это огромная уязвимость проекта если предполагается что им пользуются "сторонние пользователи"....


Название: Re: Как подключиться к базе данных по локальной сети.
Отправлено: cooler_3105 от Февраль 20, 2009, 22:50
А есть возможность работать с удаленной БД, используя SQLite? Если да, то какой сервер надо запускать на машине, на которой лежит БД?


Название: Re: Как подключиться к базе данных по локальной сети.
Отправлено: BaltikS от Февраль 21, 2009, 00:04
по-моему проще SQLite не использовать......


Название: Re: Как подключиться к базе данных по локальной сети.
Отправлено: cooler_3105 от Февраль 21, 2009, 16:54
А что лучше использовать, если БД будет использоваться только в локальной сети? Какое ПО при этом надо будет ставить на сервер?


Название: Re: Как подключиться к базе данных по локальной сети.
Отправлено: Пантер от Февраль 21, 2009, 17:28
PostgreSQL, Firebird.