Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.06.2009, 10:27   #1
SlavaSH
Форумчанин
 
Регистрация: 12.08.2008
Сообщений: 174
По умолчанию Проблема при открытии базы при помощи ADO

Пытаюсь открыть базу данных при помощи ADO, но выскакивает ошибка
Microsoft][Драйвер ODBC dBase] Индекс не найден.

Строка соединения:

Код:
SELECT FNAME FROM "TVOLUME.dbf" where UID = :VOLID
Файл базы прилагается.

Нужно подключить именно эту базу!!!
Вложения
Тип файла: rar Database.rar (507 байт, 20 просмотров)
SlavaSH вне форума Ответить с цитированием
Старый 29.06.2009, 13:48   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от SlavaSH Посмотреть сообщение
Пытаюсь открыть базу данных при помощи ADO, но выскакивает ошибка
Нужно подключить именно эту базу!!!
1) файлы с расширением DBF - это dBase файлы.
Данный файл, например, имеет формат Visual FoxPro
Поэтому, для работы с подобными файлами через ADO я крайне рекомендую использовать Microsoft OLE DB Provider for Visual FoxPro
Этот бесплатный провайдер прийдётся установить на той машине, где планируется работа с таблицами.

2) прикрепляю пример с подключением Вашей БД.
(для работы потребуется установленнный провайдер)
Вложения
Тип файла: rar AdoExample.rar (256.1 Кб, 30 просмотров)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.06.2009, 14:11   #3
SlavaSH
Форумчанин
 
Регистрация: 12.08.2008
Сообщений: 174
По умолчанию

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

типа как для работы с программой, использующей BDE надо устанавливать BDE. А здесь как?
SlavaSH вне форума Ответить с цитированием
Старый 29.06.2009, 14:59   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

потребуется. Для работы приложения потребуется устанавливать Microsoft OLE DB provider for Visual FoxPro.
Только не надо это сравнивать с BDE - это две большие разницы!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.06.2009, 15:23   #5
SlavaSH
Форумчанин
 
Регистрация: 12.08.2008
Сообщений: 174
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
потребуется. Для работы приложения потребуется устанавливать Microsoft OLE DB provider for Visual FoxPro.
Только не надо это сравнивать с BDE - это две большие разницы!
плохо! надо как-то обойти....
к тому же почему-то неправильно экспортировались данные в базу данных Access. Он нифига не понимает русский язык.

Вот так вот выглядит Дмитрий:
Дмитdий
Сами попробуйте угадать что это:
Eубань-Yкскл_зив

И в конце он мне нафига-то пробелы ставит, хотя их там не было...

В общем жутко мне не нравится этот провайдер (((
SlavaSH вне форума Ответить с цитированием
Старый 29.06.2009, 16:00   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

При чём здесь провайдер!? Если файлы неправильные!
у вас в загоовке DBF файла стоит идиотская кодовая таблица. Либо поставьте её правильную, либо сотрите нафиг совсем.
Кодовая таблица задаётся одним байтом по смещению 29 (0x1D). У Вас там стоит код 03 - это кодовая страница 1252 (для западноевропейских языков), а должно стоять - 0xC9 (это кодовая страница 1251).
или вообще сотрите (поставьте ноль). Если у Вас винда русская, то там локаль 1251 по умолчанию идёт. поэтому нолик сработает как надо!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 30.06.2009, 10:47   #7
SlavaSH
Форумчанин
 
Регистрация: 12.08.2008
Сообщений: 174
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
При чём здесь провайдер!? Если файлы неправильные!
у вас в загоовке DBF файла стоит идиотская кодовая таблица. Либо поставьте её правильную, либо сотрите нафиг совсем.
Кодовая таблица задаётся одним байтом по смещению 29 (0x1D). У Вас там стоит код 03 - это кодовая страница 1252 (для западноевропейских языков), а должно стоять - 0xC9 (это кодовая страница 1251).
или вообще сотрите (поставьте ноль). Если у Вас винда русская, то там локаль 1251 по умолчанию идёт. поэтому нолик сработает как надо!
я не могу изменить эту базу, потому что это не моя база. Мне нужно сделать так, чтобы пользователь мог экспортировать данные из этой дурацкой базы. Я и сам знаю, что там в ней кавардак, но ничего не могу поделать!!!
Просто через BDE у меня все нормально работало, но BDE сцука говно, поэтому перешёл на ADO. Но с ним не получается экспорт((( а это фигово!
или как можно изменить кодовую таблицу программно, не изменяя саму базу?
SlavaSH вне форума Ответить с цитированием
Старый 30.06.2009, 11:43   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Если задача стоит только как прочитать (импортировать) данные из таблицы DBF, можете попробовать воспользоваться компонентом TDBF. Там кодовую таблицу (если мне не изменяет память) можно задать принудительно...

p.s. существуют ещё компоненты, позволяющие работать с DBF файлами под Дельфи напрямую, без всяких BDE и других провайдеров...
Например, Halcyon, Apollo (правда, эти компоненты НЕ бесплатны! ).
(поиск на Гугле)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 30.06.2009, 12:00   #9
SlavaSH
Форумчанин
 
Регистрация: 12.08.2008
Сообщений: 174
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Если задача стоит только как прочитать (импортировать) данные из таблицы DBF, можете попробовать воспользоваться компонентом TDBF. Там кодовую таблицу (если мне не изменяет память) можно задать принудительно...

p.s. существуют ещё компоненты, позволяющие работать с DBF файлами под Дельфи напрямую, без всяких BDE и других провайдеров...
Например, Halcyon, Apollo (правда, эти компоненты НЕ бесплатны! ).
(поиск на Гугле)
небесплатные компоненты не подходят!
а что за компонент TDBF? как он работает?
SlavaSH вне форума Ответить с цитированием
Старый 30.06.2009, 12:40   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Во-первых: Если DBF версии FoxPro 2 то можно BDE использовать
Во-вторых: Если не нравится провайдер от Микрософта поставь Visual Foxpro и используй его ядро для работы с DBF (я об этом статью писал, можешь почитать в http://www.pblog.ru/
В-третьих: попрошу не выражаться.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при открытии файла Ciberal Общие вопросы Delphi 2 09.06.2009 22:58
Максимизация формы при открытии SerArtur Microsoft Office Access 1 13.11.2008 15:00
ошибка при открытии проекта KiSH333 БД в Delphi 2 08.09.2008 12:47
Проблема с параметрами при работе С ADO А. Долматов БД в Delphi 22 30.11.2007 08:47