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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.08.2012, 13:54   #1
Ma4balaka
Пользователь
 
Регистрация: 09.03.2010
Сообщений: 47
По умолчанию Открытие dbf ADO

День добрый,
Есть проблема. Требуется открыть dbf файл (во вложении) с помощью query, использую ADOConnection и ADOQuery. Пробую так:

Код:
data.CnDBF.Connected:=false;
data.CnDBF.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+AppFolderPath+';Extended Properties=dBASE IV;User ID=Admin;Password=;';
data.CnDBF.LoginPrompt:=false;
data.CnDBF.Connected:=true;

data.tabDBF.Close;
data.tabDBf.SQL.Text:='SELECT * FROM '+AppFolderPath+'\material.dbf';
data.tabDBF.open;
В результате пишет:
"Неправильно определен объект Parameter. Предоставлены несогласованные или неполные сведения"

Может ли это быть связано с русскоязычным названием столбцов?
Вложения
Тип файла: zip Base.zip (595.0 Кб, 32 просмотров)
Ma4balaka вне форума Ответить с цитированием
Старый 17.08.2012, 13:56   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Путь должен быть прописан в Data Source строки соединения.
В SELECT он не нужен, а только имя таблицы material.dbf
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 17.08.2012, 13:59   #3
Ma4balaka
Пользователь
 
Регистрация: 09.03.2010
Сообщений: 47
По умолчанию

Пробовал, в этом случае:
"Непредвиденная ошибка драйвера внешней базы данных (8715)"
Ma4balaka вне форума Ответить с цитированием
Старый 17.08.2012, 14:20   #4
astecenko
Homo Interneticus
Форумчанин
 
Аватар для astecenko
 
Регистрация: 04.03.2011
Сообщений: 611
По умолчанию

Вы потом что с этой табличкой хотите делать? Может быть проще VK DBF или аналоги использовать.
astecenko вне форума Ответить с цитированием
Старый 17.08.2012, 14:23   #5
Ma4balaka
Пользователь
 
Регистрация: 09.03.2010
Сообщений: 47
По умолчанию

Таблица нужна только для чтения. Необходимо применять различные запросы.
Пробовал подключиться через Halcyon, но проблема в отсутствии возможности работать с SQL -запросами, а свойство FILTER судя по всему не работает из-за русскоязычных названий столбцов

Последний раз редактировалось Ma4balaka; 17.08.2012 в 14:30. Причина: Дополнение
Ma4balaka вне форума Ответить с цитированием
Старый 17.08.2012, 14:32   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Вот примерный вид строки соединения для чтения dbf
Код:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=e:\dbf\;Mode=Read;Extended Properties=DBASE IV;Persist Security Info=False
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 17.08.2012, 14:48   #7
Ma4balaka
Пользователь
 
Регистрация: 09.03.2010
Сообщений: 47
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Вот примерный вид строки соединения для чтения dbf
Код:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=e:\dbf\;Mode=Read;Extended Properties=DBASE IV;Persist Security Info=False
То же самое: "Непредвиденная ошибка драйвера внешней базы данных (8715)"
Ma4balaka вне форума Ответить с цитированием
Старый 17.08.2012, 14:58   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А memo-полей случайно нет в таблице? Если есть, то используйте провайдер VFPOLEDB.1 Его можно найти в интернета. Можно еще через ODBC провайдером MSDASQL, этот есть в винде
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 17.08.2012, 15:15   #9
Ma4balaka
Пользователь
 
Регистрация: 09.03.2010
Сообщений: 47
По умолчанию

скачал Microsoft OLE DB Provider for Visual FoxPro 9.0 http://www.microsoft.com/en-us/downl....aspx?id=14839

и через VFPOLEDB.1 получилось подключиться. Спасибо большое!
Ma4balaka вне форума Ответить с цитированием
Старый 28.08.2012, 14:26   #10
Andrej-zhe
 
Регистрация: 28.08.2012
Сообщений: 4
По умолчанию

Добрый день, а у меня такая проблема при выборе файла выскакивает табличка "Неудается найти указанный поставщик. Вероятно, он утсрановлен неправильно", и делфа ругается - ".... raised exception class EOleException with massage 'Не удается найти указанный поставщик. вероятно он установлен неправильно"
Подскажите в чем причина и как исправить.
вот код:
begin

if OpenDialog1.Execute then begin
ADOConnection1.Close;

ADOConnection1.ConnectionString := Format('Provider=VFPOLEDB.1;Data Source=%s;'
+ 'Mode=ReadWrite;Extended Properties="";User ID="";Password="";'
+'Mask Password = False; '
+ 'Cache Authentication=False;Encrypt Password=False;'
+ 'Collating Sequence = RUSSIAN; DSN = ""',[ExtractFilePath(OpenDialog1.FileNam e)]);

ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(Format('select * from %s',
[ExtractFileName(OpenDialog1.FileNam e)]));
ADOQuery1.Active := True
end;

Последний раз редактировалось Andrej-zhe; 28.08.2012 в 15:08.
Andrej-zhe вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ADO + .DBF + кодировка shurik_7866 БД в Delphi 1 07.10.2011 20:47
ADO + dbf shurik_7866 БД в Delphi 2 07.10.2011 19:24
открытие dbf файла EXCELом elen1khp БД в Delphi 17 01.02.2011 02:20
импорт таблицы *.dbf в ms access через ADO ADO БД в Delphi 6 17.11.2008 15:01
ADO + .DBF Pinya БД в Delphi 11 17.07.2008 15:33