← →
s
(2002-06-03 10:52)
[0]
Что это за ошибка и как подключиться к базе данных?
![]()
![]()
← →
skiph
(2002-06-04 11:03)
[1]
Поподробнее. Что пишет?
![]()
![]()
← →
s
(2002-06-05 08:55)
[2]
Мне передали базу данных формата dbf. Просматриваю ее через dbu все видно. Но как только я подключаюсь т.е. настраиваю коннект и пишу «select * from»+имя базы данных. Компилируется но привызове пишет эту ошибку.
Я подозреваю что верися dbase V, но как через дельфи используя ADO(Microsoft.Jet.OLEDB.4.0) подключиться?
![]()
![]()
← →
skiph
(2002-06-05 09:37)
[3]
Текст сообщения какой? Лично мне номер ошибки ничего не говорит
![]()
![]()
← →
sergey32
(2002-06-05 10:18)
[4]
Попробуй написать полный путь к базе в кавычках и использовать не ADO, а BDE. У меня с DBF файлами проблемм никогда не было
«select * from «c:basebase.dbf»»
![]()
![]()
← →
s
(2002-06-05 10:36)
[5]
К сожалению я не могу использовать BDE. А ошибка так и есть «Ошибка подключения базы данных 9861». Больше никакой информации нет. Я думаю, что формат этой база данных Dbase V, но когда я настраиваю дельфи на dbase V то пишет ошибка драйвера, а dbase IV не работает.Может кто подскажет как настроить на работу с dbase V?
![]()
![]()
← →
sniknik
(2002-06-05 11:25)
[6]
строка коннекта к dBase 5.0
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:;Mode=ReadWrite;Extended Properties=dBase 5.0;Persist Security Info=False
с ним проблем быть не должно, проблемы бывают с вижуал фохпро (обычно). ты похоже утаиваеш информацию (прям юный партизан).
Если хочеш чтобы твою проблему решили распиши все подробно (возможно соблаговолите и код предьявите). Это ж в твоих интересах чтобы тебя правильно поняли.
![]()
![]()
← →
s
(2002-06-05 12:29)
[7]
Пишу коннект:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:temp;Extended Properties=dbase 5.0;Persist Security Info=False
Настраиваю query на файл:
Select * from base.DBF
Устанавливаю свойство query active в trueи вижу:
Ошибка дословно: «Непредвиденная ошибка драйвера внешней базы данных (8961)»
Дает просматривать через dbu, эксель,но когда коннекчусь через Access таже ошибка.
![]()
![]()
← →
sniknik
(2002-06-05 13:50)
[8]
эксель сам определяет тип таблици из *.dbf в в аксесе явно указываеш dBase(5.0). вот и не стыкуется тип не тот. пробуй строку если это фокс поможет нет ищи другое.
Provider=MSDASQL.1;Persist Security Info=False;Mode=ReadWrite;Extended Properties=»DSN=Visual FoxPro Database;UID=;SourceDB=C:temp;SourceType=DBF;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;Null=Yes;Deleted=Yes;»;Initial Catalog=C:temp
![]()
![]()
← →
Garik
(2002-06-06 15:37)
[9]
У меня была аналогичная ситуация. Некоторые программы криво создают *.dbf файлы, у них неполностью заполнены хедеры. Там хранится дата последеней модификации файла, она скорее всего у тебя пустая. Самый простой вариант: открой экселем и сохрани. Должно получится.
![]()
![]()
← →
S
(2002-06-07 09:35)
[10]
Открываю экселем пытаюсь сохранить тут выскакивает соосбщение, что данные сохраненные в формате dbase IV могут измениться. Жму «Да». Смотрю размер файла не изменился. Подключаюсь таже проблема.
То «sniknik» пробовал как Вы написали: Выдает ошибка драйвера.
Попробовал через ODBC, выскакивает ошибка таже.
![]()
![]()

Форум программистов Vingrad
|
|
Поиск: |
![]() ![]()
|
|
Опции темы |
| niteo |
|
||
Шустрый Профиль
Репутация: нет
|
Всем доброго времени. Возникла следующая ошибка. Делаю Экспорт таблички из Excel-я в формат dBase IV. Потом пытаюсь заюзать данную табличку, через ODBC из ADO, по средствам: Microsoft Jet4.0 OLE DB Provider. Вот с такой строкой подключения: ‘Provider=Microsoft.Jet.OLEDB.4.0;Password=»»;Data Source=D:tmpbase;Extended Properties=dBase IV;Persist Security Info=True’ Немного погуглив, нашел что причиной сего сообщения служит либо какой то «байтик» по 28 адресу в заголовке файла, либо еще какая то муть связанная с отсутствующем индексным файлом. Но по 28 адресу все чисто (кстати, в описании формата файла сказано, что это: Флаг наличия MDX-файла: 01H — файл присутствует, 00H — файл отсутствует). В общем проблема осталась. Читал, советуют использовать другой ODBC, но от сторонних производителей и тем более платные, не устраивают. Плюс не хотелось бы дополнительно что то ставить, юзать все это очень сильно хочется через ADO. Помогите пожалуйста. Хм, вот такую зависимость нашел, если последнее поле типа CHAR определенной длинны (еще не нашел какой именно), и формат базы dBase III то всё гуд. Странно всё это, буду пробовать еще… Это сообщение отредактировал(а) niteo — 26.11.2010, 13:38 ——————— Мне чужого лишнего не нада.Ешь ананасы, рябчиков жуй,день твой последний приходит, буржуй… |
||
|
|||
| niteo |
|
||
Шустрый Профиль
Репутация: нет
|
В общем получается следующая картина. При выгрузке данных из Excel (выгружаю я так: выделяю область и жму сохранить как) он сохраняет все поля на физическом уровне как CHAR, а в области описания полей, для тех полей где были одни цифры, выставляет признак N то есть нумерик. Как вариант исправить на физ. уровне признаки полей. Это сообщение отредактировал(а) niteo — 26.11.2010, 16:08 ——————— Мне чужого лишнего не нада.Ешь ананасы, рябчиков жуй,день твой последний приходит, буржуй… |
||
|
|||
| Данкинг |
|
||
Yersinia pestis Профиль
Репутация: 35
|
Экспортируешь из XLS вручную? Тогда добавь после шапки строчку, в которой пропиши любой текст вроде QQQ. Все поля экспортнутся как текстовые. Правда, эту строчку потом надо будет удалять… ——————— There’s nothing left but silent epitaphs. |
||
|
|||
| niteo |
|
||
Шустрый Профиль
Репутация: нет
|
Ооо точно. Спасибо, это более красивое решение. ——————— Мне чужого лишнего не нада.Ешь ананасы, рябчиков жуй,день твой последний приходит, буржуй… |
||
|
|||
| Данкинг |
|
||
Yersinia pestis Профиль
Репутация: 35
|
А вообще фокспро рекомендую ещё, с ним гораздо удобнее работать с .dbf. ——————— There’s nothing left but silent epitaphs. |
||
|
|||



















![]() ![]()
|
| Правила форума «Delphi: Базы данных и репортинг» | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) |
| 0 Пользователей: |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
| Номер ошибки: | Ошибка 8961 | |
| Название ошибки: | Access Error 8961 | |
| Описание ошибки: | Ошибка 8961: Возникла ошибка в приложении Microsoft Access. Приложение будет закрыто. Приносим извинения за неудобства. | |
| Разработчик: | Microsoft Corporation | |
| Программное обеспечение: | Microsoft Access | |
| Относится к: | Windows XP, Vista, 7, 8, 10, 11 |
Объяснение «Access Error 8961»
Это наиболее распространенное условие «Access Error 8961», известное как ошибка времени выполнения (ошибка). Когда дело доходит до программного обеспечения, как Microsoft Access, инженеры могут использовать различные инструменты, чтобы попытаться сорвать эти ошибки как можно скорее. Тем не менее, возможно, что иногда ошибки, такие как ошибка 8961, не устранены, даже на этом этапе.
Пользователи Microsoft Access могут столкнуться с ошибкой 8961, вызванной нормальным использованием приложения, которое также может читать как «Access Error 8961». Если происходит «Access Error 8961», разработчикам будет сообщено об этой проблеме, хотя отчеты об ошибках встроены в приложение. Команда программирования может использовать эту информацию для поиска и устранения проблемы (разработка обновления). Следовательно, разработчик будет использовать пакет обновления Microsoft Access для устранения ошибки 8961 и любых других сообщений об ошибках.
Что генерирует ошибку времени выполнения 8961?
В первый раз, когда вы можете столкнуться с ошибкой среды выполнения Microsoft Access обычно с «Access Error 8961» при запуске программы. Причины сбоев обработки можно отличить, классифицируя ошибки 8961 следующим образом:.
Ошибка 8961 Crash — это очень популярная ошибка выполнения ошибки 8961, которая приводит к завершению работы всей программы. Если Microsoft Access не может обработать данный ввод, или он не может получить требуемый вывод, это обычно происходит.
Утечка памяти «Access Error 8961» — ошибка 8961 приводит к постоянной утечке памяти Microsoft Access. Потребление памяти напрямую пропорционально загрузке ЦП. Возможные провокации включают отсутствие девыделения памяти и ссылку на плохой код, такой как бесконечные циклы.
Ошибка 8961 Logic Error — логическая ошибка возникает, когда компьютер генерирует неправильный вывод, даже если пользователь предоставляет правильный ввод. Это происходит, когда исходный код Microsoft Corporation вызывает уязвимость при обработке информации.
Такие проблемы Access Error 8961 обычно вызваны повреждением файла, связанного с Microsoft Access, или, в некоторых случаях, его случайным или намеренным удалением. Основной способ решить эти проблемы вручную — заменить файл Microsoft Corporation новой копией. Кроме того, регулярная очистка и оптимизация реестра Windows предотвратит создание неправильных ссылок на пути к файлам Microsoft Corporation, поэтому мы настоятельно рекомендуем регулярно выполнять сканирование реестра.
Распространенные проблемы Access Error 8961
Access Error 8961 Проблемы, связанные с Microsoft Access:
- «Ошибка программного обеспечения Access Error 8961. «
- «Access Error 8961 не является приложением Win32.»
- «Извините, Access Error 8961 столкнулся с проблемой. «
- «Файл Access Error 8961 не найден.»
- «Access Error 8961 не найден.»
- «Ошибка запуска программы: Access Error 8961.»
- «Access Error 8961 не работает. «
- «Ошибка Access Error 8961. «
- «Неверный путь к программе: Access Error 8961. «
Обычно ошибки Access Error 8961 с Microsoft Access возникают во время запуска или завершения работы, в то время как программы, связанные с Access Error 8961, выполняются, или редко во время последовательности обновления ОС. Важно отметить, когда возникают проблемы Access Error 8961, так как это помогает устранять проблемы Microsoft Access (и сообщать в Microsoft Corporation).
Создатели Access Error 8961 Трудности
Заражение вредоносными программами, недопустимые записи реестра Microsoft Access или отсутствующие или поврежденные файлы Access Error 8961 могут создать эти ошибки Access Error 8961.
В первую очередь, проблемы Access Error 8961 создаются:
- Поврежденная или недопустимая запись реестра Access Error 8961.
- Вирус или вредоносное ПО, повреждающее Access Error 8961.
- Access Error 8961 злонамеренно или ошибочно удален другим программным обеспечением (кроме Microsoft Access).
- Другое приложение, конфликтующее с Access Error 8961 или другими общими ссылками.
- Неполный или поврежденный Microsoft Access (Access Error 8961) из загрузки или установки.
Продукт Solvusoft
Загрузка
WinThruster 2022 — Проверьте свой компьютер на наличие ошибок.
Совместима с Windows 2000, XP, Vista, 7, 8, 10 и 11
Установить необязательные продукты — WinThruster (Solvusoft) | Лицензия | Политика защиты личных сведений | Условия | Удаление
|
ximic86 0 / 0 / 0 Регистрация: 24.01.2010 Сообщений: 7 |
||||
|
1 |
||||
|
26.06.2011, 10:04. Показов 3768. Ответов 10 Метки нет (Все метки)
При открытии базы данных FoxPro в приложение Delphi возникает ошибка драйвера внешней базы данных (8961) Код программы такой
__________________
0 |
|
0 / 0 / 0 Регистрация: 24.01.2010 Сообщений: 7 |
|
|
01.07.2011, 21:51 [ТС] |
3 |
|
не помогло….
0 |
|
35 / 30 / 5 Регистрация: 11.06.2008 Сообщений: 56 |
|
|
03.07.2011, 00:13 |
4 |
|
не помогло…. Попробуй установить вот этот драйвер:
0 |
|
0 / 0 / 0 Регистрация: 24.01.2010 Сообщений: 7 |
|
|
03.07.2011, 10:39 [ТС] |
5 |
|
подскажите пожалуйста как, драйвер скачал и установил, у меня Windows 7, всё равно выдаёт ошибку Добавлено через 56 минут
0 |
|
Cooler2 35 / 30 / 5 Регистрация: 11.06.2008 Сообщений: 56 |
||||
|
03.07.2011, 11:13 |
6 |
|||
|
Прописывать придется явно.
0 |
|
ximic86 0 / 0 / 0 Регистрация: 24.01.2010 Сообщений: 7 |
||||
|
03.07.2011, 17:26 [ТС] |
7 |
|||
|
[Error] delphiDBF.pas(54): Undeclared identifier: ‘ADOConnection’ выдаёт такую ошибку, написал такую строку
вроде классы все присвоены, как видите в коде, который был выше, а пишет переменная неопределена и подскажите в каком месте программы разместить, если не трудно
0 |
|
35 / 30 / 5 Регистрация: 11.06.2008 Сообщений: 56 |
|
|
03.07.2011, 18:56 |
8 |
|
[Error] delphiDBF.pas(54): Undeclared identifier: ‘ADOConnection’ выдаёт такую ошибку, написал такую строку ADOConnection1.ConnectionString := ‘Provider=MSDASQL.1;Persist Security Info=False;Extended Properties=»Driver={Microsoft Visual FoxPro Driver};UID=;’ + вроде классы все присвоены, как видите в коде, который был выше, а пишет переменная неопределена и подскажите в каком месте программы разместить, если не трудно В твоем случае надо вместо ADOConnection писать CnDBF
0 |
|
0 / 0 / 0 Регистрация: 24.01.2010 Сообщений: 7 |
|
|
03.07.2011, 22:11 [ТС] |
9 |
|
всё сдеал, компилятор сработал нормально, как только открываю нужную мне базу, выдаётся ошибка:
0 |
|
1496 / 1238 / 244 Регистрация: 04.04.2011 Сообщений: 4,356 |
|
|
05.07.2011, 11:42 |
10 |
|
При работе с BDE запомните как отченаш: Добавлено через 51 секунду
0 |
-
#1
I have a .db file that has data I need to export into excel. Everytime I try to make a connection between the two, I get this message:
Unexpected error from external database driver (8961)
I tried the Microsoft solution by reinstalling BDE but it didn’t change anything. Some info:
Windows XP
Microsoft Excel 2007
Microsoft Jet OLE DB 4.0 Provider 4.0.9502.0
Microsoft VFP OLE DB Provider N/A
Microsoft VFP ODBC Driver 1.0.2.0
Microsoft dBase ODBC Driver 4.0.6305.0
MS SQL Server OLE DB Provider 2000.85.1132.0
MS SQL Server ODBC Driver 2000.85.1132.0
Firebird/InterBase(r) ODBC Driver N/A
Borland dbExpress Interbase Driver N/A
BDE InterBase SQL Links Driver 5.1.0.4
BDE (Borland Database Engine) 5.1.0.4
Microsoft Data Access Components 2.81.1132.0
Microsoft Data Objects Extensions 2.81.1132.0
OLE DB Provider for ODBC Drivers 2.81.1132.0
23.03.12 — 12:01
Знаю, что как читать не раз уже обсуждалось. и поиском искал, но так ничего и не нашел. Написал несколько вариантов кода — ошибка одна и та же «Произошла исключительная ситуация (Microsoft JET Database Engine): Внешняя таблица не имеет предполагаемый формат.»
пример 1
ИмяФайла = «Users.DB»;
СтрокаПодключения = «Data Source=C:Baza16;Extended Properties=Paradox 5.x»;
Провайдер= «Microsoft.Jet.OLEDB.4.0»;
МойЗапрос = «Select * From » + ИмяФайла;
Connection = Новый COMОбъект(«ADODB.Connection»);
Connection.Provider = Провайдер;
Connection.ConnectionString = СтрокаПодключения;
Попытка
Connection.Open();
Исключение
Сообщить(«Подключение — bad!»);
КонецПопытки;
Command = Новый COMОбъект(«ADODB.Command»);
Command.ActiveConnection = Connection;
Command.CommandText = МойЗапрос;
Command.CommandType = 1;
RS = Новый COMОбъект(«ADODB.Recordset»);
Попытка
RS.Open(Command);
Исключение
Сообщить(ОписаниеОшибки());
Возврат;
КонецПопытки;
пример 2
ИмяФайла = «Users.DB»;
СтрокаПодключения = «Data Source=C:Baza16;Extended Properties=Paradox 5.x»;
Провайдер= «Microsoft.Jet.OLEDB.4.0»;
МойЗапрос = «Select * From » + ИмяФайла;
Connection = Новый COMОбъект(«ADODB.Connection»);
Connection.Provider = Провайдер;
Connection.ConnectionString = СтрокаПодключения;
Попытка
Connection.Open();
Исключение
Сообщить(«Подключение — bad!»);
КонецПопытки;
Command = Новый COMОбъект(«ADODB.Command»);
Command.ActiveConnection = Connection;
Command.CommandText = МойЗапрос;
Command.CommandType = 1;
RS = Новый COMОбъект(«ADODB.Recordset»);
Попытка
RS = Command.Execute();
Исключение
Сообщить(ОписаниеОшибки());
Возврат;
КонецПопытки;
Пример 3
ИмяФайла = «Users.DB»;
СтрокаПодключения = «Data Source=C:Baza16;Extended Properties=Paradox 5.x»;
Провайдер= «Microsoft.Jet.OLEDB.4.0»;
МойЗапрос = «Select * From » + ИмяФайла;
Connection = Новый COMОбъект(«ADODB.Connection»);
Connection.Provider = Провайдер;
Connection.ConnectionString = СтрокаПодключения;
Попытка
Connection.Open();
Исключение
Сообщить(«Подключение — bad!»);
КонецПопытки;
Command = Новый COMОбъект(«ADODB.Command»);
Command.ActiveConnection = Connection;
Command.CommandText = МойЗапрос;
Command.CommandType = 1;
RS = Новый COMОбъект(«ADODB.Recordset»);
Попытка
RS.Open(МойЗапрос, Connection );
Исключение
Сообщить(ОписаниеОшибки());
Возврат;
КонецПопытки;
Операционка Win7 64. Может какую-то библиотеку надо или сам файл кривой? как выяснить что файл кривой? Программа Paradox Viewer 1.98 показывает версия файла 5.0. Данные из файла тоже отображаются. Впервые столкнулся с этим форматом. Знающие люди. не проходите мимо, пожалуйста!
1 — 23.03.12 — 12:18
Попробую апнуть
2 — 23.03.12 — 12:29
Соединение = Новый COMОбъект(«ADODB.Connection»);
РасположениеБазыДанных = Константы.РасположениеБазыДанныхКомплектация.Получить();
СтрокаСоединения = «Provider=Microsoft.Jet.OLEDB.4.0;
|Jet OLEDB:Database Password=»»»»;
|Data Source=»+РасположениеБазыДанных+»;
|Extended Properties=Paradox 5.x;
|»;
Соединение.Open(СтрокаСоединения);
Вот такая штука работает. Обратите внимание на строку Jet OLEDB:Database Password=»»»»; Может из-за этого?
3 — 23.03.12 — 12:31
Тут человек говорит мне что ему помогло следующее: «расшаривание» доступа к файлу с:pdox.net
4 — 23.03.12 — 12:33
я читал Paradox через ВК
5 — 23.03.12 — 12:35
(3) и даже с этой строчкой не помогает
(4) нет возможности ставить дополнительные компоненты пользователям, которым надо будет каждый день грузить файлы. Но для опыта хотелось бы посмотреть как через ВК это делается.
6 — 23.03.12 — 12:36
(3) даже несмотря на то, что это локальный файл?
7 — 23.03.12 — 12:39
(3) и даже это не помогло.
8 — 23.03.12 — 12:39
Залейте куда-нибудь несущественную дб-шку. Попробую ее у себя открыть, чтобы убедиться, что дело в ваших библиотеках.
9 — 23.03.12 — 12:42
на правах антирекламы ресурса )) : http://infostart.ru/public/14148/
10 — 23.03.12 — 12:44
можно найти на просторах инета и в свободном доступе
11 — 23.03.12 — 12:45
(0)У меня вот такие строки есть в одной обработке:
Соединение = Новый ComОбъект(«ADODB.Connection»);
СтрокаПодключения=»Provider=Microsoft.Jet.OLEDB.4.0;Data Source=»+Лев(ЭлементыФормы.Файл.Значение,3)+»;Extended Properties=Paradox 5.x;»;
Соединение.Open(СтрокаПодключения);
Rs = Новый ComОбъект(«ADODB.Recordset»); ИмяФайла=СтрЗаменить(ЭлементыФормы.Файл.Значение,Лев(ЭлементыФормы.Файл.Значение,3),»»);
Rs.Open(«select * from «+ИмяФайла+»;»,Соединение);
12 — 23.03.12 — 12:53
(11) у меня такой способ указан в третьем варианте.
(8) Создал пустой текстовый файл, заменил имя на то с которым работаю — ошибка та же самая выходит.
(9) Там гемморой с внутренней валютой. поищу где-нибудь еще на просторах интернетов.
13 — 23.03.12 — 13:06
мыло пиши — сброшу
14 — 23.03.12 — 13:17
martyanov@list.ru
15 — 23.03.12 — 13:18
Но все же хотелось бы узнать как же можно заставить 1с читать парадоксовские файлы теми способами, которые везде написаны.
16 — 23.03.12 — 13:46
Попробовал ваш код из 3-го примера на своих данных. Полностью рабочий.
Windows XP.
17 — 23.03.12 — 13:48
Но, с пустым файлом выдает такое «Непредвиденная ошибка драйвера внешней базы данных (8961)» Видимо, версии ADO разные.
18 — 23.03.12 — 14:35
У меня так читает (что на ВинХП что на Вин7):
БД = Новый ComObject(«ADODB.Connection»);
Если БД.Open(«Driver={Microsoft Paradox Driver (*.db )};DriverID=538;Fil=Paradox 5.X;DefaultDir=»+ПутьБД+»;Dbq=»+ПутьБД+»;CollatingSequence=ASCII»)= 0 Тогда
Сообщить(«Ошибка….»);
Возврат;
КонецЕсли;
19 — 23.03.12 — 14:48
(16) можно попросить проверить ни чтение этот файл http://ifolder.ru/29474196
(17) я когда создавал пустой файл вьювер мне писал версию 3.
20 — 23.03.12 — 15:48
(19) Файл отрывается нормально без ошибок
21 — 23.03.12 — 15:56
(20) открывается
версия msjetoledb40.dll 4.0 95020
если что еще BDE стоит idapi32.dll 5.0 122
22 — 23.03.12 — 16:46
(21) У себя нашел файл msjetoledb40.dll версия 4.0.9756. Значит, библиотечка стоит. но вот ошибка… позже домой приеду попробую ни XP эту обработку запустить.
23 — 23.03.12 — 16:59
На Win 7 с такой же версией библиотеки как и у вас ваш файл тоже открывается нормально.
24 — 23.03.12 — 17:21
Ага! Попалась, которая кусалась! 🙂
Эксперимент на Win XP без установленного BDE показал вашу же ошибку о неверном формате. После установки BDE все отработало корректно.
Для установки надо найти файл bdeinst.cab, извлечь из него bdeinst.dll и зарегистрировать эту dll в системе с помощью regsrv32.
Понимаю, что, видимо, вам без лишних телодвижений у пользователя не обойтись. Либо этот способ, либо ВК стало быть.
Dmitriy_S
25 — 23.03.12 — 23:02
Делюсь как это победил дома я. По совету (24) я искал BDE, но так просто его не нашел. нашел в делфи, установил. запустил обработку — выдал уже другую ошибку([Microsoft][Драйвер ODBC Paradox] Непредвиденная ошибка драйвера внешней базы данных (11265)).
Наткнулся в инете на описание этой ошибки — надо было запускать с под пользователем с административными правами, это несмотря на то, что я администратор на компе. напоминаю ОС — Win7. В общем, после этих плясок, вроде, перебор строк заработал.
зы. Огромное всем спасибо за участие!!!
|
|
От: |
grigor |
|
| Дата: | 21.10.03 07:43 | ||
| Оценка: |
Уважаемые коллеги!
Помогите пожалуйста разобраться в следующей проблеме:
Имеется файл .DBF (test.dbf), который имеет 5 полей: pk_num — числовое (тип ‘I’, 4 байта),
а остальные (param1, param2, param3, param4) — символьные, размером 32 байта каждое.
Файл прекрасно смотрится Exсel’ем.
Требуется его проиндексировать по какому-либо полю. Причем это нужно сделать на VC++
c использованием ODBC. DBF — файл описывается в System DSN как Microsoft dBase Driver (*.dbf).
Соединение с базой (SQLAllocHandle, SQLConnect и пр.) происходит нормально.
далее идет следующий код:
CHAR szQuery[256];
ZeroMemory(szQuery,sizeof(szQuery));
wsprintf(szQuery,»CREATE UNIQUE INDEX a1 ON test (pk_num)»);
retcode = SQLExecDirect(hstmt,(SQLCHAR*)szQuery,SQL_NTS);
где a1 — имя создаваемого индексного файла (*.idx), а test — имя таблицы, в случае DBF
(насколько мне известно) совпадает с именем базы.
Функция SQLExecDirect завершается с ошибкой и при последующем анализе ошибки функцией SQLGetDiagRec
строковое сообщение об ошибке имеет вид:
«[Microsoft][Драйвер ODBC dBase] Непредвиденная ошибка драйвера внешней базы данных (8961).»
Что здесь не так?
|
|
От: |
algol |
about:blank |
| Дата: | 21.10.03 11:29 | ||
| Оценка: |
Здравствуйте, grigor, Вы писали:
G>Уважаемые коллеги!
G>Помогите пожалуйста разобраться в следующей проблеме:
G>Имеется файл .DBF (test.dbf), который имеет 5 полей: pk_num — числовое (тип ‘I’, 4 байта),
G>а остальные (param1, param2, param3, param4) — символьные, размером 32 байта каждое.
G>Файл прекрасно смотрится Exсel’ем.
G>Требуется его проиндексировать по какому-либо полю. Причем это нужно сделать на VC++
G>c использованием ODBC. DBF — файл описывается в System DSN как Microsoft dBase Driver (*.dbf).
G>Соединение с базой (SQLAllocHandle, SQLConnect и пр.) происходит нормально.
G>далее идет следующий код:
G> CHAR szQuery[256];
G> ZeroMemory(szQuery,sizeof(szQuery));
G> wsprintf(szQuery,»CREATE UNIQUE INDEX a1 ON test (pk_num)»);
G> retcode = SQLExecDirect(hstmt,(SQLCHAR*)szQuery,SQL_NTS);
G>где a1 — имя создаваемого индексного файла (*.idx), а test — имя таблицы, в случае DBF
G>(насколько мне известно) совпадает с именем базы.
G>Функция SQLExecDirect завершается с ошибкой и при последующем анализе ошибки функцией SQLGetDiagRec
G>строковое сообщение об ошибке имеет вид:
G>»[Microsoft][Драйвер ODBC dBase] Непредвиденная ошибка драйвера внешней базы данных (8961).»
G>Что здесь не так?
Похоже, что это таблица не dBase, а FoxPro (тип данных I, индексный файл idx). ISAM драйвер dBase может не поддерживать такие файлы. Лучше взять ODBC драйвер Visual FoxPro. При этом запрос изменится на «INDEX ON pk_num TO a1 UNIQUE».
|
|
От: | Аноним | |
| Дата: | 22.10.03 11:41 | ||
| Оценка: |
Здравствуйте, algol, Вы писали:
A>Здравствуйте, grigor, Вы писали:
G>>Уважаемые коллеги!
G>>Помогите пожалуйста разобраться в следующей проблеме:
G>>Имеется файл .DBF (test.dbf), который имеет 5 полей: pk_num — числовое (тип ‘I’, 4 байта),
G>>а остальные (param1, param2, param3, param4) — символьные, размером 32 байта каждое.
G>>Файл прекрасно смотрится Exсel’ем.
G>>Требуется его проиндексировать по какому-либо полю. Причем это нужно сделать на VC++
G>>c использованием ODBC. DBF — файл описывается в System DSN как Microsoft dBase Driver (*.dbf).
G>>Соединение с базой (SQLAllocHandle, SQLConnect и пр.) происходит нормально.
G>>далее идет следующий код:
G>> CHAR szQuery[256];
G>> ZeroMemory(szQuery,sizeof(szQuery));
G>> wsprintf(szQuery,»CREATE UNIQUE INDEX a1 ON test (pk_num)»);
G>> retcode = SQLExecDirect(hstmt,(SQLCHAR*)szQuery,SQL_NTS);
G>>где a1 — имя создаваемого индексного файла (*.idx), а test — имя таблицы, в случае DBF
G>>(насколько мне известно) совпадает с именем базы.
G>>Функция SQLExecDirect завершается с ошибкой и при последующем анализе ошибки функцией SQLGetDiagRec
G>>строковое сообщение об ошибке имеет вид:
G>>»[Microsoft][Драйвер ODBC dBase] Непредвиденная ошибка драйвера внешней базы данных (8961).»
G>>Что здесь не так?
A>Похоже, что это таблица не dBase, а FoxPro (тип данных I, индексный файл idx). ISAM драйвер dBase может не поддерживать такие файлы. Лучше взять ODBC драйвер Visual FoxPro. При этом запрос изменится на «INDEX ON pk_num TO a1 UNIQUE».
Извините, сам разобрался. Оказывается мой DBF — файл формировался немного некорректно, а именно — в заголовке не заполнялось поле даты последней модификации. После заполнения этого поля инструкция CREATE UNIQUE INDEX a1 ON test (pk_num ASC) срабатывает нормально. Правда формируется индексный файл *.mdx и текстовый *.inf, а не *.idx.
- Переместить
- Удалить
- Выделить ветку
Пока на собственное сообщение не было ответов, его можно удалить.









)

eleted=Yes;»‘