![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
TaTaP |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 86 Регистрация: 15.10.2002 Репутация: 1 Всего: 1 |
Никогда не занимался БД, да тут прижало, пришлось. Даже не БД, а так - таблица одна. Народ, кто работал с dbf в VC++, расскажите, как это сделать. Необходимо добавить\удалить запись, установить пароль, сменить структуру и т.д...
Это сообщение отредактировал(а) TaTaP - 4.8.2003, 11:37 |
|||
|
||||
Step |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
ты алиас прописал или нет
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
TaTaP |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 86 Регистрация: 15.10.2002 Репутация: 1 Всего: 1 |
Step в смысле алиас? Алиас - это кто? Я же сказал - в БД знаю очень мало, если можно - подробнее... У меня задача - перенести код из дельфи в VC++. В дельфи для работы с dbf был компонент, наследник TDataSet, там все просто - открыть файл dbf, добавить\удалить запись - вот я и подумал, может есть и в VC++ что-то подобное...
|
|||
|
||||
DENNN |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
На первых порах тебя ждет разочарование
![]() |
|||
|
||||
Step |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
алиас, это псевдоним бд, обычно работа с бд идет через него, можно воспользоваться другими технологиями позволяющие работать без алиаса....
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
TaTaP |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 86 Регистрация: 15.10.2002 Репутация: 1 Всего: 1 |
значит, придется все писать ручками, самому... Тогда вопрос вдогонку - где достать формат этих dbf, как создавать индексы (это фича, как я понял, для увеличения скорости поиска в таблице) и т.д.
|
|||
|
||||
DENNN |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
Ты определись, как ты работаешь с dbf: либо читаешь напрямую из файла, тогда тебе придется написать функции для чтения и анализа данных из таких файлов, либо классически именно подключаешься к как к Базе Данных, тогда можно воспользоваться SQL (в том числе и манипулировать индексами). Второй путь предпочтительней, так как это более профессиональный подход, позволяет с легкостью добавлять в БД новую информацию и приложение становиться гибче, но второй способ может быть эффективней, если тебе необходимо просто читать информацию из файла (так быстрей, потому что не приходиться ининциализировать в программе различные примочки для работы с БД, но про SQL придеться забыть) |
|||
|
||||
DENNN |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
К сведению, файлы dbf могут быть двух разных форматов Paradox либо FoxPro. Различие выясняется при чтении заголовка файла.
|
|||
|
||||
Step |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
TaTaP, лучше с алиасами разберись
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 17 Всего: 110 |
насколько я знаю, при работе с таблицами Paradox алиасы не используются
-------------------- qqq |
|||
|
||||
Step |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
войди в панель управления и выбери ОДБС. Именно там настраиваються алиасы. Необходимо указать псевдоним, драйвер для работы с твоей бд, и указать путь к бд.
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
Step |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
maxim1000, можно и без алиаса, но гораздо проще когда за тебя работу, драйвер делает.
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
Vyacheslav |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 9 Всего: 59 |
Елки-палки. Я не работаю с Visual C++, но и то наслышан о RecordSet. А поскольку речь идет о dbf-файлах, нужно использовать CDaoRecordset(CDaoDatabase, CDaoTableDef и пр.) и соответсвующий ODBC-драйвер. Опять же можно поискать OLE DB Provider для формата dbf, чтобы работать не через ODBC, а через ADO
-------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
Vyacheslav |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 9 Всего: 59 |
Кстати у Advantage есть такой провайдер и если формат dbf клипперовский или фокспрошный, то можно попробовать с ним.
-------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
TaTaP |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 86 Регистрация: 15.10.2002 Репутация: 1 Всего: 1 |
а как потом все это переносить на другой комп? У себя я настрою, а к клиенту принесу - у него все падать начнет...
|
|||
|
||||
Vyacheslav |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 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-файлах также могут отличаться. Так что лучше использовать драйвера, как я уже предлагал. -------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
Baa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2639 Регистрация: 12.4.2002 Где: Москва Репутация: 8 Всего: 12 |
Енту штуку использовать не рекомендую, советую использовать напрямую ADO. -------------------- "Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande |
|||
|
||||
Baa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 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 |
|||
|
||||
pish_r |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 27.2.2003 Репутация: нет Всего: нет |
Я когда-то в этом форуме задавал вопрос про класс для dbf.
Там же я оставил ссылку где валяется Codebase 6.0 для свободного скачивания. Очень мощная вешь. Индексирование, чтение. поиск и без всяких АДО, ОДБС и т.п. И главное, сух... хотел сказать- быстро!!! --------------------
________________-=тУт быЛ pisH_r=- |
|||
|
||||
pish_r |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 27.2.2003 Репутация: нет Всего: нет |
--------------------
________________-=тУт быЛ pisH_r=- |
|||
|
||||
Alex101 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 891 Регистрация: 8.4.2002 Где: Москва Репутация: нет Всего: 10 |
DAO не используй - матом будешь ругаться, тем более тебе возможности ADO за глаза хватит.
-------------------- С уважением, А. Фролов. |
|||
|
||||
Step |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
Alex101 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 891 Регистрация: 8.4.2002 Где: Москва Репутация: нет Всего: 10 |
Почему? Для dbf ADO хватит за глаза. -------------------- С уважением, А. Фролов. |
|||
|
||||
HexoGenus |
|
|||
![]() Шустрый ![]() Профиль Группа: Экс. модератор Сообщений: 110 Регистрация: 28.8.2002 Где: Ростов-на-Дону Репутация: нет Всего: нет |
Хмммм... есть такая прога InstalShield (идет в комплекте с билдером иногда отдельно попадается), так вот она позволяет дистрибутивы делать из твоей проги, и в ней можно сразу настроить все параметры алиасов для клиентской машины на которую ты этот дистрибутив будешь ставить... правда я не уверен что речь идет о тех же алиасах... тут вроде речь про VC++ а эти алиасы кажется имеют отношение к BDE Administrator, он там разве есть ?
--------------------
Когда невозможно уже работать напряженнее, начни работать умнее. |
|||
|
||||
Step |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
но причем сдесь мат к ДАО, тот тоже не плохо отработает... -------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
Nastya |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 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 ИХМО. -------------------- Что бы понять рекурсию, надо понять рекурсию "Профессионал - это человек сделавший все возможные ошибки в очень узкой области". Н.Бор |
|||
|
||||
pish_r |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 27.2.2003 Репутация: нет Всего: нет |
Люди, вы забываете о чем изначально шла речь.
Человеку не нужно работать с наворочеными базами данных. Ему обработать одну единственную табличку dbf Для этого ему надо тягать за собой такую бандуру как ODBC или DAO? Вы тут чтоль совсем заплесневели? Достаточно найти какую либо либу (во каламбурчик ![]() Одна из самых мощных таких либ - Codebase. Позволяет делать с dbf все. У меня есть еще вообще малюсенький класс для чтения dbf. Тоже очень удобно если нужно только читать. Нужен будет-пишите. --------------------
________________-=тУт быЛ pisH_r=- |
|||
|
||||
DENNN |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
Согласен. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |