Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
Pilot_Uzb

БД и директории

20.11.2010, 10:47. Показов 1236. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток.
Не могу решить такую задачу:
Путь программы: D:\Программирование\Comm.exe
Путь БД: D\Программирование\DB\

При переносе папки "Программирование" на диск C: (да в принципе куда угодно) запрос к БД идет по старому пути.

Как програмно изменить путь к БД, чтобы программа обращалась к папке DB в каталоге, откуда запущен файл *.exe

Огромное спасибо за помощь!

P.S. Прошу сильно не пинать - первый опыт ))))
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.11.2010, 10:47
Ответы с готовыми решениями:

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

Вывести в консоль все файлы и директории, какие есть в текущей директории
вывести в консоль все файлы и директории какие есть в текущей директории. подскажите пожалуйста через какие функции это можно сделать?

Вывод всех файлов и поддиректорий в заданной директории (добавить в код ввод директории)
.586p .model flat, stdcall std_output_handle equ -11 std_input_handle equ -10 extern wsprintfA:near extern CharToOemA@8:near ...

7
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
20.11.2010, 10:51
Pilot_Uzb, а вы используете БДЕ для работы с базой?
0
Pilot_Uzb
20.11.2010, 10:52
Да. База данных Paradox7.
alshi
27.01.2011, 08:23
C++
1
2
3
4
5
6
7
8
9
10
11
12
void __fastcall TForm1::dbrab()
{
//определение текущей папки
//прописывание пути  в DataBase1
Database1->Connected=false;
String path1=GetCurrentDir()+"\\DB\\"; Database1->DatabaseName="rab";
Database1->DriverName="STANDARD";
Database1->Params->Values["PATH"]=path1;
Database1->Params->Values["ENABLE BCD"]="FALSE";
Database1->Params->Values["DEFAULT DRIVER"]="PARADOX";
Database1->Connected=true;
}
подключение в программе:

...
Table1->DatabaseName="rab";
...
61 / 49 / 6
Регистрация: 07.01.2010
Сообщений: 307
27.01.2011, 10:12
У тя проблема из-за того, что у тебя в Database->Explore создается псевдоним и этот псевдоним жестко привязан к пути базы данных. Я сам через это проходил и тебе советую сделать таблицы в Access'e и сделать сразу связи (если они есть). А обращение к БД делать через запросы. Это наиболее эффективней и быстрее. Тем более твою базу сейчас можно открыть с помощью обычного блокнота!
0
23 / 21 / 5
Регистрация: 25.08.2010
Сообщений: 93
27.01.2011, 11:27
я делаю так при работе с FireBird
C++
1
UniDB->Database     = ((IncludeTrailingPathDelimiter(ExtractFileDir(ParamStr(0)))) + "DataBase\\AutoMobile.fdb");
параметр ((IncludeTrailingPathDelimiter(ExtractFi leDir(ParamStr(0)))) находит путь откуда запущен exe и добавляет DataBase\\AutoMobile.fdb
0
61 / 49 / 6
Регистрация: 07.01.2010
Сообщений: 307
27.01.2011, 12:06
Ты только указываешь путь в БД - все верно. Но что бы работать с БД необходим псевдоним, но если ты его не поменяешь, то он будет у тебя "смотреть" в то место, где он был установлен изначально. Я же тебе написал переделай все под запросы. Да придется перелопатить всю прогу, но результат того стоит
Создаешь таблицы в Accesse, кидаешь на форму ADOConnection и ADOQuery, в ADOQuery пишешь запрос и все))).
При переносе БД будешь в запросе менять путь к БД)))
0
alshi
29.01.2011, 01:23
GetCurrentDir() - укаазывает путь откуда запущена программа
+"\\DB\\" - \DB\ путь к папке с базами данных относительно запускаемого файла
Database1->DatabaseName="rab" - создается псевдоним бд - rab

т.е. если структура:
\Программа\
\DB\ базаданных.db
программа.exe
нет разницы откуда будет запуск программа.exe
он в любом случае будет икать \DB\ базаданных.db относительно своего размещения и можно размещать \Программа\ в любое место.
100% проверенно.

void __fastcall TForm1::dbrab() ... размещаеш
или в __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) --(само содержимое)
или в .h файле и запуск п.п dbrab(); при старте приложения
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.01.2011, 01:23
Помогаю со студенческими работами здесь

Надо запретить доступ к директории, кроме одной папки, которая в этой директории находиться
// это директория, ее тоже желательно закрыть // доступ закрыт // доступ закрыт // доступ закрыт // доступ закрыт //...

Добавление Include-директории и Lib-директории в проект VS2010
Здравствуйте. У меня возникла следующая проблема: Решил поучится в использовании библиотек DirectX в MS Visual Studio 2010 DirectX...

Показать все Расширения в директории и суб директории.
надо Показать все Расширния в директории и суб директории вот только не знаю как зделать ( подскажитье пожалуйста )

Как указать Апачу, что вместо одной локальной директории надо обращаться к другой локальной директории?
Сиутация следующая. На Windows-компьютере запущен Апач. И он настроен на директорию c:\www Возможно ли сделать так, чтобы вместо...

Скрипт, который удаляет файлы из первой директории, если есть файлы с такими же именами во второй директории
Помоги, пожалуйста, написать скрипт, который удаляет файлы из первой директории, если есть файлы с такими же именами во второй директории. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru