Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.11.2006, 18:55   #1
Freedom
Пользователь
 
Регистрация: 02.11.2006
Сообщений: 22
По умолчанию Paradox в локальной сети

Создал прогу с БД Paradox. Что мне нужно сделать, чтобы сделать её
сетевой (по локальной сети)? Будет ли работать нормально, если просто запускать её с одного сетевого диска?
P.S.:Сама БД небольшая, порядка 100 записей. Предполагаемое количество пользователей не более 15-20.
Freedom вне форума Ответить с цитированием
Старый 05.11.2006, 21:04   #2
SuperVisor
Павел Сергеевич
Форумчанин
 
Регистрация: 05.11.2006
Сообщений: 665
По умолчанию

для начала сделай пользовательский интерфейс (не ту прогу, которая просто меняет значения бд, а которая будет запрашивать соединение с сервером и загружать с него все значения) и серверный (который будет открывать порт для пользовательских интерфейсов и удаленно производить все зменения в бд), а вообще советую тебе обзавестись какой-нибудь туторой по работе с сетям (tcp, Udp, Ip, Ftp и т.д.).
Познавая других, мы познаем себя.
С'est la vie...
SuperVisor вне форума Ответить с цитированием
Старый 08.11.2006, 15:15   #3
Freedom
Пользователь
 
Регистрация: 02.11.2006
Сообщений: 22
По умолчанию

какраз проблема в том, что я уже создал прогу "которая просто меняет значения бд". создавать программу по новый: нет ни желания, ни возможности (по времени). я читал что если таким образом запустить программу (как описано выше), то она будет работать по сетевой архитектуре "файл-сервер". я понимаю что при использовании такого рода соединения, скорость будет низкой. но при моих размерах бд и колическтве пользователей, думаю что снижение будет незначительным. проблема в том, что я пока не могу протестировать его работоспобность в "сетевом" варианте, из за отсутсвия других пк. меня на данный момент интересует лишь вопрос: программа созданная для работы на локальном компьютере будет ли работать в локальной сети без всяких изменений???
Freedom вне форума Ответить с цитированием
Старый 08.11.2006, 15:31   #4
SuperVisor
Павел Сергеевич
Форумчанин
 
Регистрация: 05.11.2006
Сообщений: 665
По умолчанию

Работать - будет, но в самом начале программы (OnCreate) тебе нужно будет прописывать стандартный Aliace
Цитата:
with Session do
begin
ConfigMode := cmSession;
try
AddStandardAlias( 'Base',
ExtractFilePath(ParamStr(0))+'DATA\ ','PARADOX');
MyTable.Active:=True;
finally
ConfigMode := cmAll;
end;
end;
Что-то вроде этого...
И может быть еще одна проблема: ни разу (даже стыдно как-то) не запускал собственноручно написаную прогу, использующую БД на чужих компах, на которых нет ни компиляторов, ни программ с БД (крупных разумеется). Просто я где-то читал, что они могут возникать.
Познавая других, мы познаем себя.
С'est la vie...
SuperVisor вне форума Ответить с цитированием
Старый 09.11.2006, 11:56   #5
Freedom
Пользователь
 
Регистрация: 02.11.2006
Сообщений: 22
По умолчанию

Ещё раз спасибо! Может о Aliace'ах поговорим. Я так, немного наслышан о них. Что это типа "месторазмещение БД", типа можно его создать в BDE Administrator'e и т.д.. Но так нигде и не нашел нормального объяснения. Что же всётаки за этот Aliace и с чем его едят???
Freedom вне форума Ответить с цитированием
Старый 13.11.2006, 14:51   #6
nova-alex
Пользователь
 
Регистрация: 06.11.2006
Сообщений: 51
По умолчанию

Aliace-псевдоним базы данных. "Упрощает" доступ к базе, в том смысле, что не обязательно знать полный путь к файлам базы - его "знает" алиас. На примере TTable в свойстве DatabaseName указывается только этот алиас и в подхваченном списке свойства TableName выбирается файл таблицы базы. Алиасы можно создать в BDE-администраторе-Objects-New или Database Desktop-Tools-Alias manager.
nova-alex вне форума Ответить с цитированием
Старый 14.11.2006, 17:26   #7
Freedom
Пользователь
 
Регистрация: 02.11.2006
Сообщений: 22
По умолчанию

всегда ли при работе с бд, нужно использовать алиас? нужен ли он в сети?
Freedom вне форума Ответить с цитированием
Старый 14.11.2006, 20:48   #8
nova-alex
Пользователь
 
Регистрация: 06.11.2006
Сообщений: 51
По умолчанию

при изменении пути базы в алиасе изменения делаешь один раз и программа ч/з него подхватывает базу. если без него, то нужно предусмотреть в пользовательском режиме изменение и сохранение пути к файлу базы для каждого компонента, кот. пользует путь к базе.
в сетевом варианте необязательно применять алиас, у самого так работает.
nova-alex вне форума Ответить с цитированием
Старый 28.11.2006, 13:21   #9
Alexandrov
 
Аватар для Alexandrov
 
Регистрация: 28.11.2006
Сообщений: 4
По умолчанию

Ещё один советик:

procedure TForm1.Table1AfterOpen(DataSet: TDataSet);
begin
DBISetLockRetry(-1);
end;

Это позволяет "дождаться" освобождения таблицы от другой сессии, после чего произвести обмен данными. Исключает появление ошибки "Table is busy".
Пусть о себе мнит каждый, что хочет. /Овидий/
Alexandrov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чат для локальной сети KORN Софт 6 23.09.2010 20:57
Чат для локальной сети на 2 персоны) Патрон Работа с сетью в Delphi 4 11.03.2008 15:46
эмуляция локальной сети Vasya Свободное общение 2 26.10.2007 19:27
СУБД в локальной сети Chapay БД в Delphi 6 04.03.2007 02:35