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

База данных в "Мои Документы"

14.10.2012, 23:35. Показов 1459. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть трабл в задаче.
Суть такова:

При запуске программы проверить есть ли файл БД(*.mdb) в папке "Мои Документы"/"UserDB", если такового нету - создать DefaultDB.mbd, со всего лишь одной таблицей "DefaultTable" (key, data).

Порядок действий таковой:
1. Проверить наличие папки "UserDB" в "Мои документы". Если нету - создать и папку и файл соответственно!

2. Если же папка есть проверить наличие файлов БД(*.mdb). если отсутствуют - создать DefaultDB.mbd, со всего лишь одной таблицей "DefaultTable"(key, data).

3. Если файлы есть проверить проверить соответствует ли БД нужной в программе.
3.1. Есть ли три таблицы Input(date, sum, comment); Output(date,sum,commnet), Details(date,sum); если ни одной из них нет, предложить преобразовать файл БД в требуемый и по согласию удалить все имеющиеся там таблицы и создать три те которые нужно. (тот же вариант если есть только некоторые из этих двух таблиц.)

Использовать необходимо ADO.

Прошу помочь кто чем может. Ссылками, кусками кода, простым объяснением почему я идиотъ и т.д.

P.S. Предусмотреть вариант того что используемая ОС может быть Win 98, Win XP, Win 7, (x32, x64). (заранее неизвестно!)
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.10.2012, 23:35
Ответы с готовыми решениями:

Мои документы
У меня возникает проблема с открытием файла который хранится в Моих документах обращение к моим документам происходит в таком вот виде ...

Мои документы
Добрый вечер! Как мне в Label1 возвести адрес к папке мои документы?

Пропали все документы из корня папки "Мои документы"
Здравствуйте! Возникла указанная в теме проблема. В инете нашла ссылку на данный форум , на похожую тему, перешла по ссылке в ней в Правила...

12
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
15.10.2012, 09:30
Цитата Сообщение от deadstrike Посмотреть сообщение
1. Проверить наличие папки "UserDB" в "Мои документы". Если нету - создать и папку и файл соответственно!
C++
1
 FileExist()

Цитата Сообщение от deadstrike Посмотреть сообщение
2. Если же папка есть проверить наличие файлов БД(*.mdb). если отсутствуют - создать DefaultDB.mbd, со всего лишь одной таблицей "DefaultTable"(key, data).
SQL
1
CREATE TABLE


Сделай первых 2 пункта, а 3 пункт потом я подскажу
0
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
15.10.2012, 16:40
Sasha, можно поинтересоваться каким образом команда
SQL
1
CREATE TABLE
делает вот это:
Цитата Сообщение от deadstrike Посмотреть сообщение
2. ... создать DefaultDB.mbd
?
1
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
15.10.2012, 16:57
Цитата Сообщение от The_Immortal Посмотреть сообщение
Sasha, можно поинтересоваться каким образом команда
делает вот это:

?
Упс затупил конечно не этой командой эта команда для создания таблицы/
Cоздать базу вот Какую БД выбрать?
2
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
15.10.2012, 17:05
deadstrike,

Цитата Сообщение от deadstrike Посмотреть сообщение
создать DefaultDB.mbd
Еще как вариант использовать специализированный класс: TAccessApplication.

C++
1
2
3
4
5
    String dbFile = "c:\\DefaultDB.mdb";
 
    AccessApplication1->Connect();
    AccessApplication1->NewCurrentDatabase(dbFile.c_str());
    AccessApplication1->Disconnect();
1
0 / 0 / 2
Регистрация: 14.05.2012
Сообщений: 28
15.10.2012, 17:23  [ТС]
Цитата Сообщение от The_Immortal Посмотреть сообщение

C++
1
2
3
4
5
    String dbFile = "c:\\DefaultDB.mdb";
 
    AccessApplication1->Connect();
    AccessApplication1->NewCurrentDatabase(dbFile.c_str());
    AccessApplication1->Disconnect();
Цитата Сообщение от Sasha Посмотреть сообщение
Упс затупил конечно не этой командой эта команда для создания таблицы/
Cоздать базу вот Какую БД выбрать?
Это конечно спасибо и + вам. Но самое ВАЖНОЕ - файл должен создаваться в "Мои документы" заранее неведомой ОСи (см. выше).
Как распознать папку "Мои документы" не зная ОСи?
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
15.10.2012, 17:35
Цитата Сообщение от deadstrike Посмотреть сообщение
Как распознать папку "Мои документы" не зная ОСи?
Да путь прописать на эту папку и всё
0
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
15.10.2012, 17:40
deadstrike,
Цитата Сообщение от deadstrike Посмотреть сообщение
Как распознать папку "Мои документы" не зная ОСи?
Для
Цитата Сообщение от deadstrike Посмотреть сообщение
Win 98, Win XP
проверять путь "C:\Documents and Settings\...".

Для
Цитата Сообщение от deadstrike Посмотреть сообщение
Win 7
проверять путь "C:\Users\...".

Т.е. либо идентифицировать ОС и потом уже проверять конкретный путь (1 из 2), либо втупую сразу 2 путей проверять

Ну а вообще по уму, наверное, есть макрос какой-нибудь универсальный Что-нибудь типа %HOMEPATH%, %USERPROFILE%

P.S. А имя юзера, под которым сидишь, тоже можно узнать: GetUserName
0
0 / 0 / 2
Регистрация: 14.05.2012
Сообщений: 28
15.10.2012, 17:41  [ТС]
win 7 - C:\Users\UserName\Documents (Хотя у меня вообще E:\...)
win XP - C:\Documents and Settings\... и т.д.
Ось и имя пользователя не знаю.
Может я туплю и есть какая-то спец. переменная для этого - но увы не обучен... (самоучка.)
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
15.10.2012, 17:44
Да надо действительно определить какая ОС, потом определить системный диск, а уж потом на этом системном диске искать путь согласно ОС к папке мои документы
1
0 / 0 / 2
Регистрация: 14.05.2012
Сообщений: 28
15.10.2012, 18:36  [ТС]
То есть проще никак?
Ну и на том спасибо. Хоть порядок действий знаю.
Остался только пункт 3.
Все остальное погуглю разберусь...
0
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
15.10.2012, 19:47
deadstrike,
Цитата Сообщение от deadstrike Посмотреть сообщение
То есть проще никак?
Можно все найти в реестре. Например так в переменную MyDocsPath получаем путь до папки "Мои документы":

C++
1
2
3
4
5
6
7
8
    TRegistry *reg = new TRegistry();
    reg->RootKey = HKEY_CURRENT_USER;
    reg->OpenKeyReadOnly("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders");
    AnsiString MyDocsPath;
    MyDocsPath = reg->ReadString("Personal");
    ShowMessage(MyDocsPath);
    reg->CloseKey();
    delete reg;
Справедливо и для XP и для Win7.
1
872 / 448 / 35
Регистрация: 25.10.2011
Сообщений: 910
16.10.2012, 01:07
Лучший ответ Сообщение было отмечено как решение

Решение

Уже ведь писали про системные пути, зачем узнавать версию ОС? А пользовать? А диск?
Проще использовать стандартные методы и получится что-то вроде:
C++
1
2
char MyDocumentPath[255];
SHGetSpecialFolderPath(0,MyDocumentPath,CSIDL_PERSONAL,true);
Только не забываем подключить:
C++
1
#include "shlobj.h"
4
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.10.2012, 01:07
Помогаю со студенческими работами здесь

окошко "мои документы"
после каждой загрузки винды любуюсь открытым окошком "мои документы".. как побороть?

Windows 7 и мои документы
Здравствуйте! Проблема вот в чём: Решил переместить папку Мои Документы с системного диска С на диск D. На диске С/пользователи/имя...

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

Windows 7 мои документы
Всем Привет,случайно мои документы переместил в папку пользователя и теперь не могу вернуть обратно,все сохраняется в папке user где...

Windows 7 и Мои Документы
Еще одна проблема с Windows 7. На Windows XP можно было с легкостью куда угодно перекинуть папку Мои Документы. Я обычно перекидывал ее...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru