SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 29.12.2008 06:05:31

Алексей
Участник
Зарегистрирован: 29.12.2008
Сообщений: 6

Как программно определить путь к базе

Сервер БД - MySQL 5
У меня есть (закрытое/чужое) приложение которое создало и юзает базу 'БД_Картинок' к самой БД у меня есть доступ, картинки хранятся в отдельной директории "C:\Program Files\MySQL\MySQL Server 5.0\data\БД_Картинок\" - сдесь лежат файлы JPG, в таблицах БД никаких путей к файлам нет. Пишу приложение на Delphi, если указываю локальный путь то картинки открываются, запускаю приложение на другом компе неоткрываюся. Как определить относительный путь к этим файлам жопеГ, чтобы с любого компа открывались?

Неактивен

 

#2 29.12.2008 08:07:04

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: Как программно определить путь к базе

Чтобы открывались с любого компа, картинки должны быть в каталоге, доступном для apache. То есть, например, если http://my.ser.ver/ соответствует каталогу c:\wwwroot, то положите картинки в c:\wwwroot\images\ и они будут доступны по адресу http://my.ser.ver/images/

Неактивен

 

#3 29.12.2008 08:47:32

Алексей
Участник
Зарегистрирован: 29.12.2008
Сообщений: 6

Re: Как программно определить путь к базе

Спасибо за ответ smile. А можно без веб сервера получить путь к БД? У меня нет веб сервера т.к. для моей задачи он и не нужен.
У меня:
1) Программа написанная на Дельфи
2) Сервер БД MySQL 5
3) Нужно получить относительный путь (DATADIR) чтобы я мог построить путь к JPEG файлу и отобразить в своей программе с любого ПК в локальной сети где будет запущено моё приложение.
Может есть SQL команда? Сейчас откопал команду SHOW  VARIABLES, сижу изучаю...

Неактивен

 

#4 29.12.2008 08:54:01

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: Как программно определить путь к базе

SHOW VARIABLES LIKE 'datadir';
SELECT @@datadir

Неактивен

 

#5 29.12.2008 09:33:32

Алексей
Участник
Зарегистрирован: 29.12.2008
Сообщений: 6

Re: Как программно определить путь к базе

Да этот SQL помог мне понять что я копаю не в том направлении, с помощью него можно получать путь к datadir  но он ведь не относительный. Видимо нужно копать в встроенных функциях и процедурах MySQL??? У  JPEG файлов имена заканчиваются номером id этой записи в таблице images, можно достать картинку из БД по ID из таблицы?

Неактивен

 

#6 29.12.2008 09:51:28

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: Как программно определить путь к базе

Судя по всему картинки не хранятся в БД, раз это отдельный файлы. В таком случае в БД должен быть путь к ним. Что значит относительный путь? Относительно чего?

Неактивен

 

#7 29.12.2008 10:04:56

Алексей
Участник
Зарегистрирован: 29.12.2008
Сообщений: 6

Re: Как программно определить путь к базе

Да Вы правы картинки хранятся в папке C:\Program Files\MySQL\MySQL Server 5.0\data\БД_Картинок\  но в БД нет никаких путей к ним, единственное что я обнаружил это схожесть номера ID записи в таблице images и окончание имени JPG файла.  т.е. запись с ID=1 соответствует имени файла 00001.jpg

Неактивен

 

#8 29.12.2008 10:05:47

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: Как программно определить путь к базе

Соответствия номера и имени файла достаточно, чтобы сформировать путь внутри приложения

Неактивен

 

#9 29.12.2008 10:15:13

Алексей
Участник
Зарегистрирован: 29.12.2008
Сообщений: 6

Re: Как программно определить путь к базе

Конечно достаточно но формируется локальный путь, а мне нужно относительный, относительно сервера БД. Например: myServer:3306\\data\\БД_картинок\00001.jpg. Может есть комманда? smile

Неактивен

 

#10 29.12.2008 10:34:53

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: Как программно определить путь к базе

Сервер БД не отдает файлы по сети, так что приведенный Вами путь не имеет смысла.

Неактивен

 

#11 29.12.2008 14:18:36

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: Как программно определить путь к базе

Кстати, человеку, писавшему (закрытую/чужую) программу, стоит оторвать руки (или другие
органы набора программ) за хранение JPEG отдельными файлами в каталоге данных MySQL.
Если, конечно, там действительно лежат файлы JPEG smile

Неактивен

 

#12 06.01.2009 06:00:47

Алексей
Участник
Зарегистрирован: 29.12.2008
Сообщений: 6

Re: Как программно определить путь к базе

Отвечаю на свой вопрос картинку(любой другой файл) из бд я получаю так: select load_file(''./БД_картинок/00001.jpg'') as img  smile

Неактивен

 

#13 15.01.2009 10:34:08

Lem0nti
Гуру
Откуда: Северная Пальмира
Зарегистрирован: 08.11.2007
Сообщений: 98

Re: Как программно определить путь к базе

Касательно пути... Может быть вы имеете ввиду это?:
\\<имя удалённого компа или его ИПшник>\<полный путь до картинки на том компьютере, только двоеточие заменено на $>\00001.jpg

Сам путь к хранилищу данных можно узнать так:
show variables where variable_name='datadir'

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson