Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

путь к базе Firebird [D7, XP, 2003]


Страницы:   1 2

d@nger ©   (2009-10-16 09:12:00) 

Здравствуйте! Недавно начал изучать FireBird. Хочу сделать при первом запуске приложения, чтобы программа просила указать путь к базе firebird, но путь к БД Firebird указывается в следующем формате "server:D:\base\base.fdb", а opendialog выдает путь "\\server\base\base.fdb". как можно привести получаемый путь к формату Firebird. В ручную обрабатывать путь что то не очень хочется... :(


d@nger   (2009-10-16 12:14:00) [1]

вобщем все... я разобрался... мое решение при регистрации базы просто сделать поле
Имя сервера:
Путь к БД относительно сервера:

затем эти 2 значения соединить и вуаля... все будет работать... и даже папку с базой расшаривать не надо...

спасибо всем....


RWolf   (2009-10-16 12:10:00) [2]

не надо перезапускать; достаточно вписать строчку
myalias = d:\base\base.fdb
в aliases.conf, алиас доступен сразу же.


turbouser   (2009-10-16 12:09:00) [3]

Как именно

> d@nger   (16.10.09 11:37) [16]

> не получилось..

?


d@nger   (2009-10-16 12:09:00) [4]


> скопипастил, запустил — работает.

может быть нужно firebird перезапустить? у меня кстати версия 2.1.3


RWolf   (2009-10-16 12:09:00) [5]

это тот же способ.


RWolf   (2009-10-16 12:09:00) [6]

это тот же способ.


d@nger   (2009-10-16 12:08:00) [7]

обнаружил еще один способ подключения к БД
если кликнуть 2 раза по компоненту IBDatabase, и в редакторе указать Connections: Remote, Server : Servername, Протокол TCP, и путь к БД относительно сервера, то при нажатии на кнопку TEST подключение есть..., НО я не нашел как эти параметры указать программным путем... как это сделать?


RWolf   (2009-10-16 12:06:00) [8]


> пробовал так  
> не получилось..

скопипастил, запустил — работает.


turbouser   (2009-10-16 12:05:00) [9]

server:myalias


d@nger   (2009-10-16 11:47:00) [10]

вот текст файла aliases.conf


#
# List of known database aliases
# ------------------------------
#
# Examples:
myalias = d:\base\base.fdb

#
вроде все правильно


RWolf   (2009-10-16 11:41:00) [11]

всё правильно; я бы поискал ошибку в aliases.conf.


d@nger   (2009-10-16 11:37:00) [12]

Не расшаривая базу можно подключить через алиас. Я прописал в файле aliases.conf на сервере путь к БД... теперь как мне прописать в Делфи подключение к этому алиасу?
пробовал так

 IBDatabase1.Params.Clear;
 IBDatabase1.LoginPrompt:=False;
 IBDatabase1.DatabaseName:='server:myalias';
 IBDatabase1.Params.Add('user_name=SYSDBA);
 IBDatabase1.Params.Add('password=masterkey');
 IBDatabase1.Params.Add('lc_ctype=WIN1252');
 IBDatabase1.Connected:=True;

не получилось..


Медвежонок Пятачок   (2009-10-16 10:53:00) [13]

то есть априори считается, что юзер, не знающий где лежит файл данных, все же знает имена всех дисков.
ну или перебирает их все в надежде попасть


Рамиль   (2009-10-16 10:51:00) [14]

Вах.
Ну как еще написать то?
ConSt := '\\server\C$\Base\base.fdb';
Delete(ConSt, 1, 2);
ConSt[Pos('\', ConSt)] := ':';
ConSt[Pos('$', ConSt)] := ':';
fbDB.DatabaseName := ConSt;

А доступ, что бы получить этот путь с помошью OpenDialog.


Медвежонок Пятачок   (2009-10-16 10:49:00) [15]

Так я же код привел, который делает строку нормальной.

1. Две палки спереди - протокол уже не tcp
2. Подставление имени диска с баксом перед именем шары - это гадание на кофейной гуще. Файл может лежать глубоко в дереве папок а имя шары ни о чем не говорит. Оно и не обязано совпадать с именем физической папки.


Медвежонок Пятачок   (2009-10-16 10:46:00) [16]

Не будет доступа к ресурсам C$, D$ и т. д.

А он вообще зачем?
Процесс клиента никак не использует этот путь. Просто тупо передает еe серверу и все.


Рамиль   (2009-10-16 10:41:00) [17]


> В этом случае протокол будет совсем другой (не тсп)

Так я же код привел, который делает строку нормальной.

> зачем?

Не будет доступа к ресурсам C$, D$ и т. д.


Медвежонок Пятачок   (2009-10-16 10:39:00) [18]

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


Медвежонок Пятачок   (2009-10-16 10:34:00) [19]

Пользователь должен быть админом на машине с базами.

зачем?


Медвежонок Пятачок   (2009-10-16 10:33:00) [20]

т. е. сторока должна иметь вид \\server\X$\Base\base.fdb

В этом случае протокол будет совсем другой (не тсп)
И не факт что он поддерживается сервером или клиентом


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо