Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Подключение через ADO. базы данных dBase III, ошибка код:0x80040E21 
:(
    Опции темы
Dolphinchik
Дата 29.1.2007, 01:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 24.7.2006
Где: Филлипины

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



Здравствуйте. у меня вопрос. Я работаю над задачей создания программы, осуществляющей поиск в базе данных.
База данных представляет из себя досовские таблицы dBase III.  \
У меня возникают ошибки при подключении.
Строка коннекта у меня следующая: DSN=dBASE Files;DBQ=\\123\AllDocs\321\arxiv;DefaultDir=\\123\AllDocs\321\arxiv;DriverId=21;FIL=DBASE3;MaxBufferSize=2048;PageTimeout=5;

P.S.:
FIL=DBASE3 - так для dos-овских табличек
FIL=dBase III - так для win-досовских.


Поставщик Microsoft OLE DB Provider for ODBC drivers.

Проверка подключения соответственно выдаёт ошибку следующую: "Не выполнина проверка подключения из-за ошибки при инициализации поставщика. 0x80040E21" 
ну и соответственно при выполнении запроса программа выдаёт: "произошли ошибки при выполнении многошаговой операции OLE DB...по возможности проверьте значения всех состояний..."


Я перед тем как начинать работать над сетевым приложением многое прочитала, работала всегда с BDE, но почитав Дельфийскую Базу Знаний и не только, пришла к выводу что необходимо работать в ADO. По этому я нуб возможно где-то, ибо впервые начала работать с ADO.

вот здесь нашла инфу, но не поняла как ей воспользоваться: http://support.mdl.ru/Pc_compl/Doc/Db2/v7....me3.htm#sql1100
Чтоб долго читателям не искать, вот дословно что там пишут: 
"
SQL1183N    Пользовательская функция "<имя-функции>" получила ошибку OLE DB от указанного поставщика OLE DB. HRESULT="<код-результата>". Диагностический текст: "<текст-сообщения>".    

Объяснение: Указанный поставщик OLE DB возвратил код ошибки OLE DB. "<код-результата>" - это код ошибки, возвращенный OLE DB, а "<текст-сообщения>" - полученный текст сообщения.
Ниже приводится (неполный) список значений HRESULT и возможных причины ошибки. 

0x80040E14 
Ошибки в команде, например, ошибочный синтаксис передаваемой строки команды. 

0x80040E21 
Ошибки, например, переданный ID столбца неверен (DB_INVALIDCOLUMN). 


0x80040E37 
Указанной таблицы не существует. 

Действия пользователя: Посмотрите в справочниках Microsoft OLE DB Programmer's Reference и Data Access SDK полную документацию кодов HRESULT."


Я очень мало нашла информации по этой ошибке. 
Уверенна, что решение есть и оно простое. (с)



Может я неправильно выбрала поставщика? 
Может быть нужно что-то доустановить?
Прошу помочь, возможно кто-то сталкивался...

Добавлено @ 01:46 
Ещё добавлю.. : мои таблицы dBase III+
PM MAIL MSN   Вверх
ТоляМБА
Дата 29.1.2007, 06:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Котэ
***


Профиль
Группа: Завсегдатай
Сообщений: 1607
Регистрация: 15.12.2004

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



Создай в Датабэйс десктопе таблицу dBase III+ - пару полей, пару записей, и попробуй приконнектиться к ней. Если прокатит - грабли в твоей таблице (к которой не можешь подключится), если не прокатит - грабли в дровах (ну и выраженьице), в смысле в драйверах. Отпишись по-любому, будем разбираться.

Цитата(Dolphinchik @  29.1.2007,  01:44 Найти цитируемый пост)
читателям
 Вообще-то это форум программистов.
PM   Вверх
Dolphinchik
Дата 29.1.2007, 07:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 24.7.2006
Где: Филлипины

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



ок, занимаюс.
PM MAIL MSN   Вверх
Dolphinchik
Дата 29.1.2007, 08:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 24.7.2006
Где: Филлипины

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



Сделала новую табличку, всё так же..

табличка test.dbf  - dbase III+

строка подключения: DSN=TEST;DBQ=\\SPARTAN\ALLDOCS\RegPost\qaz;DefaultDir=\\123\ALLDOCS\321\qaz;DriverId=21;FIL=dBase III;MaxBufferSize=2048;PageTimeout=5;

Структура таблицы:
где 1ое - имя поля, 2ое - тип, 3-е - size, 4-е - dec. 
A;N;10;4
B;D;8;0
C;N;10;4
D;C;30;0

При проверке подключения сообщение такое же как и в первом случае, код ошибки такой же.
Вообщем ситуация не изменилась..

Добавлено @ 08:14 
вернее строка подключения: DSN=TEST;DBQ=\\123\ALLDOCS\321\qaz;DefaultDir=\\123\ALLDOCS\321\qaz;DriverId=21;FIL=DBASE3;MaxBufferSize=2048;PageTimeout=5;

Добавлено @ 08:21 
пардон, не внимательно прочитала и табличку сделала в парадоксе. 
сейчас попробовала такую же сделать в дададесктопе, 
ругается на B;D;8;0, то есть ругается на размер поля типа date, под именем D.

PM MAIL MSN   Вверх
Dolphinchik
Дата 29.1.2007, 08:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 24.7.2006
Где: Филлипины

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



теперь в тестовой табличке вообще убрала поле типа DATE. ситуация не изменилас.  smile 


вот и домой пора...smile отпишусь по теме либо чуть позже либо уже к ночи ближе smile
PM MAIL MSN   Вверх
SergeBS
Дата 29.1.2007, 09:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1111
Регистрация: 10.6.2005
Где: Владимир

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



Dolphinchik, 
1. Читай Доступ к БД-1. Локальные БД
Суть: нечего с dbf через ADO работать.
2. Рабочая строка подключения к ДОСовой таблице(пример):
Provider=MSDASQL.1;Persist Security Info=False;Mode=ReadWrite;Extended Properties="DSN=dbf01;UID=;SourceDB=c:\2;SourceType=DBF;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;"
При создании DSN выбирать драйвер VFP! Collate - по вкусу. Ну и куча другого тоже по вкусу, экспериментируй. Можно делать не системный, а пользовательский DSN и т.п.

Цитата
вот здесь нашла инфу, но не поняла как ей воспользоваться: http://support.mdl.ru/Pc_compl/Doc/Db2/v7....me3.htm#sql1100

Блин, ну при чем здесь коды ошибок DB2? Они у каждого сервера свои. И к этой ситуации ну никак не относятся. Нет у тебя этого сервера, и ошибок его тоже, соответственно.

Цитата
Я перед тем как начинать работать над сетевым приложением многое прочитала, работала всегда с BDE,

Читай местные FAQи. И разберись с разницей: локальные - сетевые - клиент-серверные приложения. Поскольку у кой-кого в голове - каша.

PM MAIL   Вверх
ТоляМБА
Дата 29.1.2007, 10:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Котэ
***


Профиль
Группа: Завсегдатай
Сообщений: 1607
Регистрация: 15.12.2004

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



Цитата(SergeBS @  29.1.2007,  09:47 Найти цитируемый пост)
нечего с dbf через ADO работать.
 Выполни мне через BDE запрос:
Код
 Select *
Into NewTable
From Table1
 В ADO проскакивает!  smile 
PM   Вверх
Dolphinchik
Дата 29.1.2007, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 24.7.2006
Где: Филлипины

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



благодарю за ответ, испробую на работе, отпишу результат

Добавлено @ 10:57 
ТоляМБА, не поняла? 
у меня через BDE всё работает за исключением with(nolock)
сначало в BDE  сделала, потом в ADO перенесла

PM MAIL MSN   Вверх
CatATonik
Дата 29.1.2007, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Оптимальный вариант для DBF:
http://tdbf.sourceforge.net/
PM MAIL   Вверх
SergeBS
Дата 29.1.2007, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1111
Регистрация: 10.6.2005
Где: Владимир

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



ТоляМБА, 
Между прочим, я BDE НИКОМУ НЕ СОВЕТУЮ ПРИМЕНЯТЬ. И в статье это есть в явном виде.
(насчет АДО именно в качестве SQL-прибамбаса - там тоже есть smile, но только прибамбаса. ).

Dolphinchik, 
Еще раз: читай статью! Там есть и цифры насчет времени. ADO+dbf = tormozzzzz. И проблемы.

CatATonik, 
Цитата
Оптимальный вариант для DBF:
http://tdbf.sourceforge.net/ 

Один из... Их как грязи. Я к Halcyon привык.
PM MAIL   Вверх
Dolphinchik
Дата 30.1.2007, 02:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 24.7.2006
Где: Филлипины

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



Цитата

Маленький комментарий из личного опыта: исторически так получилось, что когда Delphi просто не было, а был Паскаль (т.е. в прошлом веке, если примерно), я нашел в swag.ru библиотеку Halcyon. Эта библиотека работала с dbf-ками формата dBase III-IV/FoxPro 2.0-2.6 и поддерживала простые индексы...

тетете..
Цитата

SQL в нем нет, зато весит очень мало.

тетете...
насчет Halcyon..., скачала. поставила...не понравилось  smile ...
кстати линк на скачку:
библиотека
справка Halcoyn

значит таки ADO+dbf =тормоз. 
хорошо, а что тогда использовать чтобы нормально работало? 
счас tdbf попробую..


PM MAIL MSN   Вверх
SergeBS
Дата 30.1.2007, 08:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1111
Регистрация: 10.6.2005
Где: Владимир

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



Dolphinchik, 
Тетекать будешь, когда у тебя без советов все будет получаться.  smile А пока учи матчасть.

PM MAIL   Вверх
Dolphinchik
Дата 31.1.2007, 03:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 24.7.2006
Где: Филлипины

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



 smile учу учу )
PM MAIL MSN   Вверх
Dolphinchik
Дата 5.2.2007, 06:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 24.7.2006
Где: Филлипины

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



Цитата

SergeBS    
Дата 29.1.2007, 09:47    
Dolphinchik, 
1. Читай Доступ к БД-1. Локальные БД
Суть: нечего с dbf через ADO работать.
2. Рабочая строка подключения к ДОСовой таблице(пример):
Provider=MSDASQL.1;Persist Security Info=False;Mode=ReadWrite;Extended Properties="DSN=dbf01;UID=;SourceDB=c:\2;SourceType=DBF;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;"
При создании DSN выбирать драйвер VFP! Collate - по вкусу. Ну и куча другого тоже по вкусу, экспериментируй. Можно делать не системный, а пользовательский DSN и т.п.


Перенесла приложение на другой компьютер, воспользовалась советами SergeBS, изменила запрос в ADO и всё заработало..., продолжаю учить матчасть, всем спасибо.

Кстати работает быстро без касяков.

Что за ошибка (код: 0x80040E21 ) была... don't know и времени нет разбираться хоть и интересно..=(

PM MAIL MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


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

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




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


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

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