Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Модификаия локальной БД в сетевую (help)


Автор: NordWolf 17.8.2007, 13:11
Ситуация следующая. У меня существует локальная БД, написанная на С++ Bulder 6 (с ним же установлен компоннент INTERBASE, который идёт на диске) с двумя таблицами в формате PARADOX (anketa.db & glavn.db).  Используемые мною компоненты:  DataSource, Table, DBGrid и DBEdit (в качестве отображающего определённое поле таблицы). В базу можно добавлять новые компонент, именять их данные и пр. Вопрос в следующем: Как мне сделать так, чтобы данные для таблиц загружались через сеть (с определённлого сервера в интернете, допустим), которые я мог бы модифицировать и отослать на тот же сервер? 
Буду очень балгодарен, если поможите...

Автор: jonie 17.8.2007, 19:05
БД это хранилище данных. Оно НЕ может быть написано на языке С++.
Цитата

Вопрос в следующем: Как мне сделать так, чтобы данные для таблиц загружались через сеть (с определённлого сервера в интернете, допустим), которые я мог бы модифицировать и отослать на тот же сервер? 
в общем случае я бы поступил так : просто сделал серверную часть (прогу что есть чуток переделать-то собственно) и клиенскую, где можно что-то редактировать... собстна все).

А вообще есть сетевые СУБД...может стоит перевестив се на них?...
--
ЗЫ: а INTERBASE че не сетевая? (не работал с ней, только слышал)...

в общем на работе я делал так (у меня правда изначально было в задании сеть)...
я сделал сверер , что отдавал данные через SOAP протокол, и клиентов под это дело написал. собсна на том и закончил ). Почему SOAP? потому что кросплатформенность играла значительную роль.... сервер делал всю грязную работу, клиенты только просматривали) ну и модифицировали при необходимости. 
В сервере я пологаю можно было бы оргнизовать очередь для клиенских запросов на запись\модификацию... (т.е. чтобы не было множественного открытия БД, т.к. у тебя она как ты гришь локальная, при множественной работе с сервером)....ну и както с репликаций данных вопрос решать надо тоже...

Автор: ksili 18.8.2007, 07:34
Interbase - сетевая БД.
NordWolf, найди в документации Interbase как прописать её сетевой путь. Насколько я понял у тебя есть исходники всего проекта. Пропишешь в компоненте IBDatabase (может ещё в каких-то других) новый путь к этой базе вместо старого. Перекомпилируй. И всё.
Наверно надо будет на той машине установить сервер Interbase.

Автор: NordWolf 19.8.2007, 00:05
2jonie - ничё не понял ) сможешь описать пошагово?

2ksili - То есть  добавить в среде с++ компонент IBDatabase прописать в нём путь к интербейсовской базе и всё? Кстати, получается нужно переделать формат парадокс в интербейс? Как это сделать? Создавать заново?

Автор: Vitalishe 19.8.2007, 03:09
Блин,нет.
По умолчанию он есть в BCB - IBDatabase, но для его работы InterBase нужен.

1. Установить на сервер InterBase (какой там у тебя) допустим 7.0;
2. Настроить его для работы с БД;
3. В своём проекте, созданном в BCB, добавить компонент IBDatabase и связать его с компонентами, отвечающими за отображение данных (IBTable, IB Query);
4. Посмотреть FAQS по IBComponents;
5. Собрать "строку подключения" - назовем это так, для коннекта к базе данных на удалённой машине;
5. Попробовать стартануть соединение к БД;
6. if (false) Посмотреть FAQS;
7. Настроить тип транзакций, курсора и т.д.
8. если не смог - Гугл в помощь;

Автор: ksili 20.8.2007, 05:12
Цитата(NordWolf @  19.8.2007,  05:05 Найти цитируемый пост)
Кстати, получается нужно переделать формат парадокс в интербейс?

Так у тебя какая база? Парадокс или Интербэйз? Судя по используемым компонентам парадокс, но тогда к чему ты написал
Цитата(NordWolf @  17.8.2007,  18:11 Найти цитируемый пост)
установлен компоннент INTERBASE
?

Если парадокс, то придётся переделать в INTERBASE. Но я думаю тут ничего сложного не будет. А потом всё делаешь примерно как написал Vitalishe, 

Автор: Vitalishe 20.8.2007, 10:26

ТО NordWolf 

Цитата(ksili @  20.8.2007,  05:12 Найти цитируемый пост)
Если парадокс, то придётся переделать в INTERBASE.


Для перекодеровки базы - воспользуйся либо Database DeskTOp, либо аналогичной утилитойsmileпо-моему даже аccess подойдет... тока уточни с точносстью полей - не все варианты держит парадокс и не все интербейс...

Автор: ksili 20.8.2007, 10:36
А что, Database Desktop знает формат InterBase? не знал. Хотя я с InterBase'ом никогда и не работал...
Я бы просто сделал приложение,на которое кинул бы компоненты для парадокса + компоненты для InterBase. И через него бы всё скопировал. Правда наверно связи пришлось бы вручную потом доделывать...

А правда, как из парадокса по-быстрому и без косяков в InterBase перегнать базу?

Автор: Fazil6 20.8.2007, 13:09
Цитата(ksili @  20.8.2007,  10:36 Найти цитируемый пост)
А правда, как из парадокса по-быстрому и без косяков в InterBase перегнать базу?

в борланде есть утилита datapump для таких целей

Автор: NordWolf 20.8.2007, 14:02
Fazil6 - Нашёл. ЗАпустил, Выбрал базу, жмём Next. Запрос - на какую базу поменять. Я так понимаю на IBLocal? После этого у меня будет локальная версия моей базы в формате InterBase? Кстати, версия IB 6.5

2Vitalishe
Цитата

Для перекодеровки базы - воспользуйся либо Database DeskTOp, либо аналогичной утилитойпо-моему даже аccess подойдет... тока уточни с точносстью полей - не все варианты держит парадокс и не все интербейс...

Помниться что-то делал подобное, но он не сохранял в формате IB. Писал ошибку какую-то.

Вообще я только дистрибутив InterBase установил котоый вместе с ВС++ 6 шёл. В нём никогда не работал и как его настраивать тоже не знаю, но фак с сайта скачал, почитаю. Думаю успею разобраться за неделю (срок).
Да, пользуясь случаем, так сказать - ни у кого нету книги "МИР INTERBASE"? А то на форуме ссылки уже старые.

Автор: Fazil6 20.8.2007, 14:12
Цитата(NordWolf @  20.8.2007,  14:02 Найти цитируемый пост)
Да, пользуясь случаем, так сказать - ни у кого нету книги "МИР INTERBASE"? А то на форуме ссылки уже старые.

нету у меня электрической, но хочу заметить, что по IB/FB есть намного лучше книга автора Х.Бори и называется она "Firebird. Руководство разработчика баз данных"

Автор: NordWolf 21.8.2007, 13:44
А чем InterBase от Firebird отличается?

Автор: ksili 21.8.2007, 13:55
NordWolf, ну ты даёшь. Для такого вопроса нужно создать отдельную тему. И задать его вот здесь http://forum.vingrad.ru/Interbase-database.html
Да и почитать там же можно на эту тему.

В двух словах: Firebird - наследник Interbase

Автор: NordWolf 24.8.2007, 14:54
Понял... а где можно почитать про использование утилиты Datapump?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)