![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
путь к базе Firebird [D7, XP, 2003]
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
В этом случае протокол будет совсем другой (не тсп)
И не факт что он поддерживается сервером или клиентом