Меню

Непредвиденная ошибка драйвера внешней базы данных 8961

Icon Ex Номер ошибки: Ошибка 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) | Лицензия | Политика защиты личных сведений | Условия | Удаление

От:

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.

Подождите ...

Wait...

  • Переместить
  • Удалить
  • Выделить ветку

Пока на собственное сообщение не было ответов, его можно удалить.

ximic86

0 / 0 / 0

Регистрация: 24.01.2010

Сообщений: 7

1

26.06.2011, 10:04. Показов 3795. Ответов 10

Метки нет (Все метки)


При открытии базы данных FoxPro в приложение Delphi возникает ошибка драйвера внешней базы данных (8961)

Код программы такой

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
unit delphiDBF;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, DB, Grids, DBGrids, ADODB;
 
type
  TForm5 = class(TForm)
    cnDBF: TADOConnection;
    TabDBF: TADOTable;
    GridDBF: TDBGrid;
    dsDBF: TDataSource;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form5: TForm5;
 
implementation
 
{$R *.dfm}
 
procedure TForm5.Button1Click(Sender: TObject);
var
AppFolderPath: string;
begin
// подключаемся к ДБФ и выводим данные в таблицу
AppFolderPath:=copy(ExtractFilePath(Application.ExeName),1,length(ExtractFilePath(Application.ExeName))-1);
 
 
    TabDBF.Active:=false;
    CnDBF.Connected:=false;
 
//    CnDBF.ConnectionString:='Provider=MSDASQL;Password="";Persist Security Info=True;Data Source=Файлы dBASE;Mode=ReadWrite;Initial Catalog='+AppFolderPath;
          CnDBF.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source="' +AppFolderPath + '";Extended Properties="DBASE IV;";"';
//    CnDBF.DefaultDatabase:=AppFolderPath;
//    cnDBF.LoginPrompt:=false;
          CnDBF.LoginPrompt:=false;
          cnDBF.Mode:=cmReadWrite;
          CnDBF.Connected:=true;
 
    CnDBF.Connected:=true;
// err.dbf находится в папке  AppFolderPath (в данном случае в папке с программой)
    TabDBF.TableName:='err';
    TabDBF.Active:=true;
 
// Подключение выполнено
 
 
end;
 
procedure TForm5.Button2Click(Sender: TObject);
begin
   TabDBF.Append;
   TabDBF.FieldByName('sl_id').Value:=0;
   TabDBF.FieldByName('id_med').Value:=0;
   TabDBF.FieldByName('ter_mu').Value:=0;
   TabDBF.FieldByName('kod_mu').Value:=0;
   TabDBF.FieldByName('kod_err').Value:=0;
   TabDBF.FieldByName('Prim').Value:='новая строка';
   TabDBF.Post;
end;
 
end.

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



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

Цитата
Сообщение от ximic86
Посмотреть сообщение

не помогло….

Попробуй установить вот этот драйвер:
http://msdn.microsoft.com/en-us/vfoxpro/bb190233
У меня заработало. Это проблема в драйвере была!
Подключай через OLE DB



0



0 / 0 / 0

Регистрация: 24.01.2010

Сообщений: 7

03.07.2011, 10:39

 [ТС]

5

подскажите пожалуйста как, драйвер скачал и установил, у меня Windows 7, всё равно выдаёт ошибку

Добавлено через 56 минут
всё получилось, подскажите как мне правильно прописать директорию открываемоего файла, если он например будет не в папке с программой, как то через AppFolderPath вроде



0



Cooler2

35 / 30 / 5

Регистрация: 11.06.2008

Сообщений: 56

03.07.2011, 11:13

6

Прописывать придется явно.
Предположим, что твоя программа находится на диске D:, а получить доступ надо к «База.dbc», тогда так:

Delphi
1
2
ADOConnection1.ConnectionString := 'Provider=MSDASQL.1;Persist Security Info=False;Extended Properties="Driver={Microsoft Visual FoxPro Driver};UID=;' +
'SourceDB=C:Documents and SettingsSergeyРабочий столдипломный проект1дипломный проектбаза.dbc;SourceType=DBC;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;Null=Yes;Deleted=Yes;"'



0



ximic86

0 / 0 / 0

Регистрация: 24.01.2010

Сообщений: 7

03.07.2011, 17:26

 [ТС]

7

[Error] delphiDBF.pas(54): Undeclared identifier: ‘ADOConnection’ выдаёт такую ошибку, написал такую строку

Delphi
1
2
ADOConnection1.ConnectionString := 'Provider=MSDASQL.1;Persist Security Info=False;Extended Properties="Driver={Microsoft Visual FoxPro Driver};UID=;' + 
'SourceDB=L:перед уходомabonent_d24016DATABASEabonentcheck.dbf;SourceType=DBC;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;Null=Yes;Deleted=Yes;"'

вроде классы все присвоены, как видите в коде, который был выше, а пишет переменная неопределена и подскажите в каком месте программы разместить, если не трудно



0



35 / 30 / 5

Регистрация: 11.06.2008

Сообщений: 56

03.07.2011, 18:56

8

Цитата
Сообщение от ximic86
Посмотреть сообщение

[Error] delphiDBF.pas(54): Undeclared identifier: ‘ADOConnection’ выдаёт такую ошибку, написал такую строку

ADOConnection1.ConnectionString := ‘Provider=MSDASQL.1;Persist Security Info=False;Extended Properties=»Driver={Microsoft Visual FoxPro Driver};UID=;’ +
‘SourceDB=L:перед уходомabonent_d24016DATABASEabonentcheck.dbf;So urceType=DBC;Exclusive=No;BackgroundFetch=Yes;Coll ate=Machine;Null=Yeseleted=Yes;»‘

вроде классы все присвоены, как видите в коде, который был выше, а пишет переменная неопределена и подскажите в каком месте программы разместить, если не трудно

В твоем случае надо вместо 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 запомните как отченаш:
Перед запуском программы из среды (F9)
ЗАКРЫТЬ ВСЕ ОТКРЫТЫЕ КОННЕТЫ К БАЗЕ И СООТВЕТСТВЕННО ВСЕ ОТКРЫТЫЕ ДАТАСЕТЫ !!!!!!

Добавлено через 51 секунду
И вообще BDE — это ЗЛО.



0



   Dmitriy_S

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. Данные из файла тоже отображаются. Впервые столкнулся с этим форматом. Знающие люди. не проходите мимо, пожалуйста!

   Dmitriy_S

1 — 23.03.12 — 12:18

Попробую апнуть

   Deniskind

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=»»»»; Может из-за этого?

   Zubek

3 — 23.03.12 — 12:31

Тут человек говорит мне что ему помогло следующее: «расшаривание» доступа к файлу с:pdox.net

   Dmitri888

4 — 23.03.12 — 12:33

я читал Paradox через ВК

   Dmitriy_S

5 — 23.03.12 — 12:35

(3) и даже с этой строчкой не помогает

(4) нет возможности ставить дополнительные компоненты пользователям, которым надо будет каждый день грузить файлы. Но для опыта хотелось бы посмотреть как через ВК это делается.

   Dmitriy_S

6 — 23.03.12 — 12:36

(3) даже несмотря на то, что это локальный файл?

   Dmitriy_S

7 — 23.03.12 — 12:39

(3) и даже это не помогло.

   Deniskind

8 — 23.03.12 — 12:39

Залейте куда-нибудь несущественную дб-шку. Попробую ее у себя открыть, чтобы убедиться, что дело в ваших библиотеках.

   Dmitri888

9 — 23.03.12 — 12:42

на правах антирекламы ресурса )) : http://infostart.ru/public/14148/

   Dmitri888

10 — 23.03.12 — 12:44

можно найти на просторах инета и в свободном доступе

   EasyRider

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 «+ИмяФайла+»;»,Соединение);

   Dmitriy_S

12 — 23.03.12 — 12:53

(11) у меня такой способ указан в третьем варианте.

(8) Создал пустой текстовый файл, заменил имя на то с которым работаю — ошибка та же самая выходит.

(9) Там гемморой с внутренней валютой. поищу где-нибудь еще на просторах интернетов.

   Dmitri888

13 — 23.03.12 — 13:06

мыло пиши — сброшу

   Dmitriy_S

14 — 23.03.12 — 13:17

martyanov@list.ru

   Dmitriy_S

15 — 23.03.12 — 13:18

Но все же хотелось бы узнать как же можно заставить 1с читать парадоксовские файлы теми способами, которые везде написаны.

   Deniskind

16 — 23.03.12 — 13:46

Попробовал ваш код из 3-го примера на своих данных. Полностью рабочий.

Windows XP.

   Deniskind

17 — 23.03.12 — 13:48

Но, с пустым файлом выдает такое «Непредвиденная ошибка драйвера внешней базы данных (8961)» Видимо, версии ADO разные.

   Kreont

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 Тогда

   Сообщить(«Ошибка….»);

   Возврат;

КонецЕсли;

   Dmitriy_S

19 — 23.03.12 — 14:48

(16) можно попросить проверить ни чтение этот файл http://ifolder.ru/29474196

(17) я когда создавал пустой файл вьювер мне писал версию 3.

   Deniskind

20 — 23.03.12 — 15:48

(19) Файл отрывается нормально без ошибок

   Deniskind

21 — 23.03.12 — 15:56

(20) открывается

версия msjetoledb40.dll 4.0 95020

если что еще BDE стоит idapi32.dll 5.0 122

   Dmitriy_S

22 — 23.03.12 — 16:46

(21) У себя нашел файл  msjetoledb40.dll версия 4.0.9756. Значит, библиотечка стоит. но вот ошибка… позже домой приеду попробую ни XP эту обработку запустить.

   Deniskind

23 — 23.03.12 — 16:59

На Win 7 с такой же версией библиотеки как и у вас ваш файл тоже открывается нормально.

   Deniskind

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. В общем, после этих плясок, вроде, перебор строк заработал.

зы. Огромное всем спасибо за участие!!!

Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.

Kirill1983
Обычный пользователь
Обычный пользователь
 
Сообщения: 78
Зарегистрирован: 05.05.2005 (Чт) 11:27
  • ICQ

проблемка с DBF

Доброго всем дня

Возникло затруднение с подключением в файлам dbf:

Код: Выделить всё


Dim con As ADODB.Connection

Dim rs As ADODB.Recordset

Set Conn = New ADODB.Connection

Conn.ConnectionString = "Driver={Microsoft dBASE Driver (*.dbf)};" & _

                        "DriverID=277;Dbq=c:;Exclusive=No"

Conn.Open

Set rs = New ADODB.Recordset

Set rs = Conn.Execute("select * from AZS.dbf")

Файл С:AZS.dbf

В результате кидает ошибку «Непредвиденная ошибка драйвера внешней базы данных (8961)»

Помогите добрым советом :wink: [/syntax]


Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя

 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки
  • Сайт
  • ICQ

Сообщение Konst_One » 05.05.2005 (Чт) 11:58

попробуй:

Код: Выделить всё
select * from AZS

и проверь наличие такого драйвера в списках драйверов ODBC на своем компе



Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя

 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки
  • Сайт
  • ICQ

Сообщение Konst_One » 05.05.2005 (Чт) 12:24

попробуй с использованием другого ODBC драйвера, например:

Microsoft Visual FoxPro Driver


Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя

 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки
  • Сайт
  • ICQ

Сообщение Konst_One » 05.05.2005 (Чт) 12:25

BDE нужен лишь для модификации данных в таблицах, для просмотра он не нужен.


Kirill1983
Обычный пользователь
Обычный пользователь
 
Сообщения: 78
Зарегистрирован: 05.05.2005 (Чт) 11:27
  • ICQ

Сообщение Kirill1983 » 05.05.2005 (Чт) 12:39

Konst_One писал(а):попробуй с использованием другого ODBC драйвера, например:
Microsoft Visual FoxPro Driver

Код: Выделить всё


con.ConnectionString = "Driver={Microsoft Visual FoxProDriver};" & _

                       "SourceType=DBF;SourceDb=c:"

con.Open

Ошибка: [Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер,используемый по умолчанию


Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва
  • ICQ

Сообщение Ennor » 05.05.2005 (Чт) 12:41

Используй Jet.


Kirill1983
Обычный пользователь
Обычный пользователь
 
Сообщения: 78
Зарегистрирован: 05.05.2005 (Чт) 11:27
  • ICQ

Сообщение Kirill1983 » 05.05.2005 (Чт) 12:51

Ennor писал(а):Используй Jet.

Код: Выделить всё


con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:;" & _

                       "Extended Properties=dBase 5.0;Persist Security Info=False"

con.Open

Set rs = New ADODB.Recordset

Set rs = con.Execute("select * from AZS")

Все та же непредвиденная ошибка драйвера внешней базы данных (8961) :?:


Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя

 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки
  • Сайт
  • ICQ

Сообщение Konst_One » 05.05.2005 (Чт) 13:17

если в этой табличке нет никаких секретных данных, то выложи ее сюда — посмотрим.


Kirill1983
Обычный пользователь
Обычный пользователь
 
Сообщения: 78
Зарегистрирован: 05.05.2005 (Чт) 11:27
  • ICQ

Сообщение Kirill1983 » 05.05.2005 (Чт) 13:33

Konst_One писал(а):если в этой табличке нет никаких секретных данных, то выложи ее сюда — посмотрим.

Вот

Вложения
AZS.rar
(2.95 Кб) Скачиваний: 58


Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя

 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки
  • Сайт
  • ICQ

Сообщение Konst_One » 05.05.2005 (Чт) 14:05

это файл xBase

обязательно нужен BDE


Kirill1983
Обычный пользователь
Обычный пользователь
 
Сообщения: 78
Зарегистрирован: 05.05.2005 (Чт) 11:27
  • ICQ

Сообщение Kirill1983 » 05.05.2005 (Чт) 14:37

Konst_One писал(а):это файл xBase
обязательно нужен BDE

Скачал BDE библиотеку и инстальнул,а теперь,извини за ламерство…что делать дальше?


Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя

 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки
  • Сайт
  • ICQ

Сообщение Konst_One » 05.05.2005 (Чт) 14:43

открой TotalCommander и в нем добавь плагин xBaseView 5.0 и открой свою табличку


Kirill1983
Обычный пользователь
Обычный пользователь
 
Сообщения: 78
Зарегистрирован: 05.05.2005 (Чт) 11:27
  • ICQ

Сообщение Kirill1983 » 05.05.2005 (Чт) 15:08

Konst_One писал(а):открой TotalCommander и в нем добавь плагин xBaseView 5.0 и открой свою табличку

СПАСИБО тебе Konst_One,но вот проблемка еще выскочила-присваиваю гриду рекордсет и…Run-time error ‘7004’. Т.е. у меня нет выхода,кроме как через ADO открывать?


Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя

 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки
  • Сайт
  • ICQ

Сообщение Konst_One » 05.05.2005 (Чт) 15:15

что за грид и как ты рекордсет присваиваешь?

и пришли:

Код: Выделить всё
Debug.Print Err.Number & ": " & Err.Description & ". " & Err.Source


Kirill1983
Обычный пользователь
Обычный пользователь
 
Сообщения: 78
Зарегистрирован: 05.05.2005 (Чт) 11:27
  • ICQ

Сообщение Kirill1983 » 05.05.2005 (Чт) 15:50

Konst_One писал(а):что за грид и как ты рекордсет присваиваешь?

и пришли:

Код: Выделить всё
Debug.Print Err.Number & ": " & Err.Description & ". " & Err.Source

7004: The rowset is not bookmarkable.. DataGrid


Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя

 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки
  • Сайт
  • ICQ

Сообщение Konst_One » 05.05.2005 (Чт) 15:59

Код: Выделить всё
Set rs=New ADODB.Recordset

Set rs.ActiveConnection=con

rs.CursorLocation=adUseClient

rs.Open "SELECT * FROM AZS", , adOpenStatic, adLockReadOnly, adCmdText

Set DataGrid1.DataSource=rs


Kirill1983
Обычный пользователь
Обычный пользователь
 
Сообщения: 78
Зарегистрирован: 05.05.2005 (Чт) 11:27
  • ICQ

Сообщение Kirill1983 » 05.05.2005 (Чт) 16:12

От всей души выражаю Konst_One благодарность в оказании помощи и уделении мне внимания. Спасибо :D



Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, SemrushBot и гости: 0

Недавно мне пришлось писать программу на C# для конвертации данных из базы Paradox в другую, более современную. Как я выяснил, есть разные способы подключения к базе данных из C#, например, через Microsoft Jet OLE DB, или через Microsoft Paradox Driver, я выбрал второй способ. Строку подключения можно посмотреть на connectionstrings.com После удачного подключения через Microsoft Paradox Driver я пытался получить данные, но столкнулся с ошибкой «Непредвиденная ошибка драйвера внешней базы данных (11265)«.

При поиске решения проблемы я выяснил несколько важных вещей касательно Paradox в Windows 7 64 bit:

  1. Для 64 разрядной системы нет драйверов для базы Paradox. В этом можно убедиться, зайдя в Панель управления — Администрирование — Источники данных (ODBC) и не увидев там драйверов для Paradox-а. Однако, если зайти в Источники данных (ODBC) через c:WindowsSysWOW64odbcad32.exe — то мы сразу увидим там кучу дополнительных драйверов, включая Microsoft Paradox Driver.
    Таким образом, я пришел к 1-му выводу: приложение должно работать в режиме 32 битного приложения чтобы оно увидело драйвера для Paradox-а. Для этого приложение нужно компилировать с флагом 32BIT, либо установить этот флаг на exe файл, например, с помощью .Net Tools.
  2. Нужно быть внимательным при написании строки подключения Microsoft Paradox Driver. В ней обязательно должен обязательно присутствовать пробел после *.db. Без этого пробела программа не сможет найти драйвер.
  3. После подключения к базе через Microsoft Paradox Driver я попытался выполнить запрос к базе и получил ошибку «Непредвиденная ошибка драйвера внешней базы данных (11265)«. После долгих поисков в интернете я выяснил, что это происходит из-за того, что приложение не может создать в корне диска C: файл PDOXUSRS.NET. Напрашивался вывод, что приложение нужно запускать с администраторскими правами, чтобы она смогла писать в корень системного диска. Однако, как выяснилось, это не обязательно. Можно просто в BDE Administrator указать в ConfigurationDriversNativeParadox NET DIR другую папку для сохранения файла.
  4. Так же, необходимо, чтобы у пользователя были права на файл c:WindowsSystem32odbc32.dll (спасибо за помощь Владимиру в комментарии ниже)
  5. В строке подключения никаким образом не указать кодировку базы, т.к. у драйвера нет таких опций. Если база в windows-кодировке, драйвер будет ее упорно выдавать как западноевропейскую 1252. Единственное корректное решение, к которому я пришел — это преобразовывать кодировку, например, так:
    out_str = Encoding.GetEncoding(1251).GetString(Encoding.GetEncoding(1252).GetBytes(in_str))
    где in_str — это строка, полученная из базы.

В интернете встречается большое число различных советов. Большинство из них мне не помогли. Те, что я написал, возможно, для кого-то тоже не подойдут. Но возможно, кому-то я все-таки смог помочь.

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Непредвиденная ошибка драйвера внешней базы данных 11265
  • Непредвиденная ошибка драйвера внешней базы данных 10023