Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как работать с dbf? 
:(
    Опции темы
TaTaP
Дата 4.8.2003, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 86
Регистрация: 15.10.2002

Репутация: 1
Всего: 1



Никогда не занимался БД, да тут прижало, пришлось. Даже не БД, а так - таблица одна. Народ, кто работал с dbf в VC++, расскажите, как это сделать. Необходимо добавить\удалить запись, установить пароль, сменить структуру и т.д...

Это сообщение отредактировал(а) TaTaP - 4.8.2003, 11:37
PM MAIL   Вверх
Step
Дата 4.8.2003, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: 5
Всего: 25



ты алиас прописал или нет


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
TaTaP
Дата 5.8.2003, 01:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 86
Регистрация: 15.10.2002

Репутация: 1
Всего: 1



Step в смысле алиас? Алиас - это кто? Я же сказал - в БД знаю очень мало, если можно - подробнее... У меня задача - перенести код из дельфи в VC++. В дельфи для работы с dbf был компонент, наследник TDataSet, там все просто - открыть файл dbf, добавить\удалить запись - вот я и подумал, может есть и в VC++ что-то подобное...
PM MAIL   Вверх
DENNN
Дата 5.8.2003, 09:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 3878
Регистрация: 27.3.2002
Где: Москва

Репутация: 1
Всего: 43



На первых порах тебя ждет разочарование sad.gif
PM ICQ   Вверх
Step
Дата 5.8.2003, 09:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: 5
Всего: 25



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


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
TaTaP
Дата 5.8.2003, 11:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 86
Регистрация: 15.10.2002

Репутация: 1
Всего: 1



значит, придется все писать ручками, самому... Тогда вопрос вдогонку - где достать формат этих dbf, как создавать индексы (это фича, как я понял, для увеличения скорости поиска в таблице) и т.д.
PM MAIL   Вверх
DENNN
Дата 5.8.2003, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 3878
Регистрация: 27.3.2002
Где: Москва

Репутация: 1
Всего: 43



Цитата
где достать формат этих dbf, как создавать индексы

Ты определись, как ты работаешь с dbf: либо читаешь напрямую из файла, тогда тебе придется написать функции для чтения и анализа данных из таких файлов, либо классически именно подключаешься к как к Базе Данных, тогда можно воспользоваться SQL (в том числе и манипулировать индексами).

Второй путь предпочтительней, так как это более профессиональный подход, позволяет с легкостью добавлять в БД новую информацию и приложение становиться гибче, но второй способ может быть эффективней, если тебе необходимо просто читать информацию из файла (так быстрей, потому что не приходиться ининциализировать в программе различные примочки для работы с БД, но про SQL придеться забыть)
PM ICQ   Вверх
DENNN
Дата 5.8.2003, 11:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 3878
Регистрация: 27.3.2002
Где: Москва

Репутация: 1
Всего: 43



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

PM ICQ   Вверх
Step
Дата 5.8.2003, 11:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: 5
Всего: 25



TaTaP, лучше с алиасами разберись


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
maxim1000
Дата 5.8.2003, 11:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 17
Всего: 110



насколько я знаю, при работе с таблицами Paradox алиасы не используются


--------------------
qqq
PM WWW   Вверх
Step
Дата 5.8.2003, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: 5
Всего: 25



войди в панель управления и выбери ОДБС. Именно там настраиваються алиасы. Необходимо указать псевдоним, драйвер для работы с твоей бд, и указать путь к бд.


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
Step
Дата 5.8.2003, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: 5
Всего: 25



maxim1000, можно и без алиаса, но гораздо проще когда за тебя работу, драйвер делает.


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
Vyacheslav
Дата 5.8.2003, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

Репутация: 9
Всего: 59



Елки-палки. Я не работаю с Visual C++, но и то наслышан о RecordSet. А поскольку речь идет о dbf-файлах, нужно использовать CDaoRecordset(CDaoDatabase, CDaoTableDef и пр.) и соответсвующий ODBC-драйвер. Опять же можно поискать OLE DB Provider для формата dbf, чтобы работать не через ODBC, а через ADO


--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
Vyacheslav
Дата 5.8.2003, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

Репутация: 9
Всего: 59



Кстати у Advantage есть такой провайдер и если формат dbf клипперовский или фокспрошный, то можно попробовать с ним.


--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
TaTaP
Дата 6.8.2003, 02:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 86
Регистрация: 15.10.2002

Репутация: 1
Всего: 1



а как потом все это переносить на другой комп? У себя я настрою, а к клиенту принесу - у него все падать начнет...
PM MAIL   Вверх
Vyacheslav
Дата 6.8.2003, 08:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

Репутация: 9
Всего: 59



А так и придется. Что ODBC, что OLE DB Provider - если изначально не установлен, надо устанавливать. Для этого и существуют инсталляционные пакеты, чтобы грамотно устанавливать(переносить) и программу и сопутствующий софт.
И кстати, Paradox к dbf отношение не имеет. Но у самого dbf -формата куча версий : dBase III( idx -индексы), Clipper( ntx - индексы) , FoxPro (cdx), dBase IV ( mdx индексы). Есть еще DBase V и далее.
И в соответствии с этим заголовочные записи в dbf-файлах также могут отличаться. Так что лучше использовать драйвера, как я уже предлагал.



--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
Baa
Дата 8.8.2003, 02:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

Репутация: 8
Всего: 12



Цитата(Vyacheslav @ 5.8.2003, 12:37)
А поскольку речь идет о dbf-файлах, нужно использовать CDaoRecordset(CDaoDatabase, CDaoTableDef и пр.) и соответсвующий ODBC-драйвер.

Енту штуку использовать не рекомендую, советую использовать напрямую ADO.


--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
Baa
Дата 8.8.2003, 02:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

Репутация: 8
Всего: 12



Когда-то давно приходилось юзать под досом dbf, так что может где-то остался исходник проги, а еще есть у меня описание формата данных, но это, надо заметить, сущее извращение, проще, как уже было сказано, использовать уже готовые решения. Самым приемлимым является ADO. Как использовать? Зайди на www.codeguru.com


--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
pish_r
Дата 15.8.2003, 09:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 105
Регистрация: 27.2.2003

Репутация: нет
Всего: нет



Я когда-то в этом форуме задавал вопрос про класс для dbf.
Там же я оставил ссылку где валяется Codebase 6.0 для свободного скачивания.
Очень мощная вешь. Индексирование, чтение. поиск и без всяких АДО, ОДБС и т.п.
И главное, сух... хотел сказать- быстро!!!
--------------------
________________-=тУт быЛ pisH_r=-
PM MAIL   Вверх
pish_r
Дата 15.8.2003, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 105
Регистрация: 27.2.2003

Репутация: нет
Всего: нет



Codebase 6.0
Качай. Не пожалеешь.
--------------------
________________-=тУт быЛ pisH_r=-
PM MAIL   Вверх
Alex101
Дата 15.8.2003, 17:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 891
Регистрация: 8.4.2002
Где: Москва

Репутация: нет
Всего: 10



DAO не используй - матом будешь ругаться, тем более тебе возможности ADO за глаза хватит.


--------------------
С уважением, А. Фролов.
PM MAIL ICQ   Вверх
Step
Дата 15.8.2003, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: 5
Всего: 25



Цитата
DAO не используй - матом будешь ругаться,
погорячился...


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
Alex101
Дата 15.8.2003, 18:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 891
Регистрация: 8.4.2002
Где: Москва

Репутация: нет
Всего: 10



Цитата(Step @ 15.8.2003, 14:19)
погорячился...

Почему?
Для dbf ADO хватит за глаза.


--------------------
С уважением, А. Фролов.
PM MAIL ICQ   Вверх
HexoGenus
Дата 16.8.2003, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Экс. модератор
Сообщений: 110
Регистрация: 28.8.2002
Где: Ростов-на-Дону

Репутация: нет
Всего: нет



Хмммм... есть такая прога InstalShield (идет в комплекте с билдером иногда отдельно попадается), так вот она позволяет дистрибутивы делать из твоей проги, и в ней можно сразу настроить все параметры алиасов для клиентской машины на которую ты этот дистрибутив будешь ставить... правда я не уверен что речь идет о тех же алиасах... тут вроде речь про VC++ а эти алиасы кажется имеют отношение к BDE Administrator, он там разве есть ?
--------------------
Когда невозможно уже работать напряженнее, начни работать умнее.
PM MAIL WWW ICQ   Вверх
Step
Дата 18.8.2003, 08:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: 5
Всего: 25



Цитата
Почему?
Для dbf ADO хватит за глаза.

но причем сдесь мат к ДАО, тот тоже не плохо отработает...


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
Nastya
Дата 18.8.2003, 08:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 27.3.2002
Где: Мариуполь

Репутация: 5
Всего: 44



Да, наговорили таоварищи. Аж мозги кипят.
И так. С базами данных в VC++ несколькими способами вот основные из них
1. ADBC
2. DAO
3. OLE DB

В данном слеучае я бы выбрала 1.
Для этого тебе понадобтится тебя класса (вообще их много)
CDatabase - отвечающий за соедение с базой.
CRecordSet - для связи с конкретным набором данных (таблицей, запросом и т.д.).

Вот неплохие примеры, правда для Access, но думаю размберешься.
http://www.firststeps.ru/mfc/odbc/odbc1.html

ИХМО.



--------------------
Что бы понять рекурсию, надо понять рекурсию

"Профессионал - это человек сделавший все возможные ошибки в очень узкой области". Н.Бор
PM MAIL   Вверх
pish_r
Дата 18.8.2003, 09:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 105
Регистрация: 27.2.2003

Репутация: нет
Всего: нет



Люди, вы забываете о чем изначально шла речь.
Человеку не нужно работать с наворочеными базами данных. Ему обработать одну единственную табличку dbf
Для этого ему надо тягать за собой такую бандуру как ODBC или DAO?
Вы тут чтоль совсем заплесневели?
Достаточно найти какую либо либу (во каламбурчик smile.gif ) с прямым доступом к dbf и забыть обо всем.
Одна из самых мощных таких либ - Codebase. Позволяет делать с dbf все.
У меня есть еще вообще малюсенький класс для чтения dbf. Тоже очень удобно если нужно только читать. Нужен будет-пишите.
--------------------
________________-=тУт быЛ pisH_r=-
PM MAIL   Вверх
DENNN
Дата 18.8.2003, 10:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 3878
Регистрация: 27.3.2002
Где: Москва

Репутация: 1
Всего: 43



Цитата
Вы тут чтоль совсем заплесневели?
Достаточно найти какую либо либу (во каламбурчик ) с прямым доступом к dbf и забыть обо всем.

Согласен.
PM ICQ   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1357 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.