Меню

Драйвер odbc dbase непредвиденная ошибка 8961

 
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

Поиск:

Ответ в темуСоздание новой темы
Создание опроса
> Excel dBase ODBC и ошибка 8961, Ошибка работы с БД dBase через ODBC 

:(

   

Опции темы

niteo
Дата 26.11.2010, 11:48 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Шустрый
*

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

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

Всем доброго времени. Возникла следующая ошибка. Делаю Экспорт таблички из 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’
При попытке сделать SQL запрос к табличке  в ADOQuerry ( ADOConnection вроде настраивается, и если ADOTable вешаю то список табличек видит) выдает сообщение с ошибкой:
Project … raise exception class EOleException with message «Непредвиденная ошибка драйвера внешней базы данных (8961)». 

Немного погуглив, нашел что причиной сего сообщения служит либо какой то «байтик» по 28 адресу в заголовке файла, либо еще какая то муть связанная с отсутствующем индексным файлом. Но по 28 адресу все чисто (кстати, в описании  формата файла сказано, что это: Флаг наличия MDX-файла: 01H — файл присутствует, 00H — файл отсутствует). В общем проблема осталась. Читал, советуют использовать другой ODBC, но от сторонних производителей и тем более платные, не устраивают. Плюс не хотелось бы дополнительно что то ставить, юзать все это очень сильно хочется через ADO. Помогите пожалуйста.

Хм, вот такую зависимость нашел, если последнее поле типа CHAR определенной длинны (еще не нашел какой именно), и формат базы dBase III то всё гуд. Странно всё это, буду пробовать еще… 
А так из экселя получается 2 чаровских и 4 нумерика… В хекс редакторе поменял тип поля с буковки  N на  C и все заработало. но это не устраивает. Подскажите, что может быть….? 

Это сообщение отредактировал(а) niteo — 26.11.2010, 13:38

———————

Мне чужого лишнего не нада.Ешь ананасы, рябчиков жуй,день твой последний приходит, буржуй…

PM MAIL   Вверх
niteo
Дата 26.11.2010, 15:49 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Шустрый
*

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

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

В общем получается следующая картина. При выгрузке данных из Excel (выгружаю я так: выделяю область и жму сохранить как) он сохраняет все поля на физическом уровне как CHAR, а в области описания полей, для тех полей где были одни цифры, выставляет признак N то есть нумерик. Как вариант исправить на физ. уровне признаки полей. 
Вроде разобрался, пока так устраивает…. 

Это сообщение отредактировал(а) niteo — 26.11.2010, 16:08

———————

Мне чужого лишнего не нада.Ешь ананасы, рябчиков жуй,день твой последний приходит, буржуй…

PM MAIL   Вверх
Данкинг
Дата 26.11.2010, 18:02 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Yersinia pestis
****

Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

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

Цитата(niteo @  26.11.2010,  15:49 Найти цитируемый пост)
Как вариант исправить на физ. уровне признаки полей. 
Вроде разобрался, пока так устраивает…. 

Экспортируешь из XLS вручную? Тогда добавь после шапки строчку, в которой пропиши любой текст вроде QQQ. Все поля экспортнутся как текстовые. Правда, эту строчку потом надо будет удалять…

———————

There’s nothing left but silent epitaphs.

PM MAIL WWW   Вверх
niteo
Дата 26.11.2010, 23:52 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Шустрый
*

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

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

Цитата(Данкинг @ 26.11.2010,  18:02)
Тогда добавь после шапки строчку, в которой пропиши любой текст вроде QQQ. Все поля экспортнутся как текстовые. Правда, эту строчку потом надо будет удалять…

Ооо точно. Спасибо, это более красивое решение.

———————

Мне чужого лишнего не нада.Ешь ананасы, рябчиков жуй,день твой последний приходит, буржуй…

PM MAIL   Вверх
Данкинг
Дата 27.11.2010, 00:53 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Yersinia pestis
****

Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

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

А вообще фокспро рекомендую ещё, с ним гораздо удобнее работать с .dbf. smile 

———————

There’s nothing left but silent epitaphs.

PM MAIL WWW   Вверх



















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

Запрещено:

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

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

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

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

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

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

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


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

 

0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »
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) | Лицензия | Политика защиты личных сведений | Условия | Удаление

ximic86

0 / 0 / 0

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

Сообщений: 7

1

26.06.2011, 10:04. Показов 3768. Ответов 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



  • #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

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

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

От:

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...

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

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

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

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

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

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Драйвер обнаружил ошибку контроллера device harddisk2 dr9
  • Драйвер nvidia studio продолжить установку невозможно произошла ошибка