Ошибка не удается найти поставщика вероятно он установлен неправильно

Attribute VB_Name = «NewMacros»

Sub REPORT_FOR_COUNTING()
Dim Conn As New ADODB.Connection, Cmd As ADODB.Command, rsOra As ADODB.Recordset
Conn.Open «PROVIDER=OraOLEDB.Oracle.1;DATA SOURCE=SVBO;USER ID=ADMIN_ILLARION;PASSWORD=M1l2w3»
Set Cmd = New ADODB.Command
Cmd.ActiveConnection = Conn
Cmd.CommandType = adCmdText
Set rsOra = New ADODB.Recordset
rsOra.CursorLocation = adUseServer

rsOra.Open «select POS_COUNT from REPORT_FOR_COUNTING where INST_ID=’9001′», Conn, adOpenForwardOnly
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = «ГаграПос»
.Replacement.Text = rsOra.Fields.Item(0).Value
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
Selection.TypeText Text:=rsOra.Fields.Item(0).Value
rsOra.Close

End Sub

Страницы 1

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

#1 18 августа 2014 15:52:56

  • JAEAEJ
  • Участник
  • Неактивен
  • На форуме с 15 октября 2010
  • Сообщений: 211

Тема: Не работает библиотека на одной машине

Макрос вываливается с сообщением:
«Не удается найти указанный поставщик. Вероятно, он установлен неправильно
TCS_SQL_DLL.MainProcFunTCS»

Порядок установки всех библиотек общий для всех ПК. На других ПК
этот макрос выполняется без проблем. Библиотеку регистрировал
вручную. Не могу понять причину этой ошибки. Как видно из листинга
Doc1.docx проверку создания объекта проходит нормально. Запускали
другой макрос, который использует эту библиотеку, но другой модуль.
Вываливается с таким же сообщением. Что делать?

Post’s attachments

Doc1.docx 54.25 Кб, 3 скачиваний с 2014-08-18 

You don’t have the permssions to download the attachments of this post.

#2 Ответ от Олег Зырянов 19 августа 2014 04:17:02

  • Олег Зырянов
  • Технический руководитель
  • Неактивен
  • Откуда: Новосибирск
  • На форуме с 10 декабря 2008
  • Сообщений: 4,215

Re: Не работает библиотека на одной машине

TCS_SQL_DLL — у нас в дистрибутиве такой библиотек нет.

#3 Ответ от JAEAEJ 19 августа 2014 07:04:49

  • JAEAEJ
  • Участник
  • Неактивен
  • На форуме с 15 октября 2010
  • Сообщений: 211

Re: Не работает библиотека на одной машине

TCS_SQL_DLL — у нас в дистрибутиве такой библиотек нет.

Это наша разработка. Дело в том, что она эксплуатируется уже
несколько лет без проблем. Т.е. она работает на других ПК
нормально.

#4 Ответ от Олег Зырянов 19 августа 2014 12:30:35

  • Олег Зырянов
  • Технический руководитель
  • Неактивен
  • Откуда: Новосибирск
  • На форуме с 10 декабря 2008
  • Сообщений: 4,215

Re: Не работает библиотека на одной машине

Тогда сказать сложно. Возможно зависимостей каких-то нету.

#5 Ответ от JAEAEJ 19 августа 2014 13:00:56

  • JAEAEJ
  • Участник
  • Неактивен
  • На форуме с 15 октября 2010
  • Сообщений: 211

Re: Не работает библиотека на одной машине

Понимаю. Поэтому и обратился к Вам.
В дополнении:Win 7 64 p. Версия TCS не имеет значения, но
6.3(19098)
Попробовал зарегистрировать библиотеку в system32, но пишет,
что не может найти файл. Скопировать, удалить, создать в этой
папке можно. История этой ПК такова:сначало не устанавливалась
MS SQL Native Client. Переустановили ОС. Нынешняя ситуация
описана выше. На предложение ещё раз переустановить поль-
зователь говорит: да сколько раз можно? Другого выхода пока не
вижу.

#6 Ответ от JAEAEJ 20 августа 2014 08:38:26

  • JAEAEJ
  • Участник
  • Неактивен
  • На форуме с 15 октября 2010
  • Сообщений: 211

Re: Не работает библиотека на одной машине

Сама ошибка выглядит так:

Не удаётся найти указанного поставщика. Вероятно, он установлен неправильно

После поиска в инете понял, что речь идёт о провайдере JET 4,
который не стоит на данном ПК. Говорят, что он входит в инстал-
лятор Office 2007. Буду переустанавливать Office 2007.

#7 Ответ от Олег Зырянов 20 августа 2014 08:59:18

  • Олег Зырянов
  • Технический руководитель
  • Неактивен
  • Откуда: Новосибирск
  • На форуме с 10 декабря 2008
  • Сообщений: 4,215

Re: Не работает библиотека на одной машине

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

#8 Ответ от JAEAEJ 20 августа 2014 13:53:48

  • JAEAEJ
  • Участник
  • Неактивен
  • На форуме с 15 октября 2010
  • Сообщений: 211

Re: Не работает библиотека на одной машине

начиная с XP он уже встроен в систему

В курсе.
Переустановка оффиса не помогла. Перепробовал более 5 способов,
предложенных из инета.

программу разбирать надо, что там за ошибки происходят не известно

А какя разница? На других ПК, с такой же конфигурацией работает.

Найду исходник библиотеки и отпишусь.

#9 Ответ от JAEAEJ 20 августа 2014 14:05:27

  • JAEAEJ
  • Участник
  • Неактивен
  • На форуме с 15 октября 2010
  • Сообщений: 211

Re: Не работает библиотека на одной машине

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

Ошибка происходит именно при вызове модуля. Я поставил перед
ним

Call TCSApp.ShowErrorMessage("1. Будет ошибка tcs_sql_dll.dll")
Call MainLib.GreateDok(TCSApp, TCSActiveModule , DB, ArchTree, ArchTreeID) 

#10 Ответ от Олег Зырянов 21 августа 2014 04:23:05

  • Олег Зырянов
  • Технический руководитель
  • Неактивен
  • Откуда: Новосибирск
  • На форуме с 10 декабря 2008
  • Сообщений: 4,215

Re: Не работает библиотека на одной машине

ну нужно сам этот модуль ковырять, а не его вызов.  Я же не знаю что он там делает.

#11 Ответ от JAEAEJ 21 августа 2014 12:25:18 (изменено: JAEAEJ, 21 августа 2014 14:43:40)

  • JAEAEJ
  • Участник
  • Неактивен
  • На форуме с 15 октября 2010
  • Сообщений: 211

Re: Не работает библиотека на одной машине

Сам модуль:

procedure TMainProciFunTCS.GreateDok(TCSApp1, Module1, DB,
  Tree: OleVariant; TreeID: Integer);
var
Doc : Olevariant;
i: integer;
s: String;
begin
 DM:=TDM.Create(nil);
 DM.ADOConnection1.Connected:=False;
// DM.ADOConnection1.Params.Values['SERVER NAME'] :=DB;
 DM.ADOConnection1.Connected:=True;
 If  not DM.ADOConnection1.Connected then begin
    ShowMessage('Îøèáêà ïîäêëþ÷åíèÿ ê áàçå!');
 END else begin
  FCreateDoc:=TFCreateDoc.Create(nil);
  FCreateDoc.Module:=Module1;
  FCreateDoc.TCSApp:=TCSApp1;
  FCreateDoc.ArchTree:=Tree;
  FCreateDoc.ArchTreeID:=TreeId;
  FCreateDoc.ShowModal;
  FCreateDoc:=nil;
 end;
  DM.Free;
  DM:=Nil;
end;

Строка подключения:

Provider=SQLNCLI.1;Password=…;Persist Security Info=True;User ID=2;Initial Catalog=pt;Data Source=10.10.10.107pt

Проверил. Подключение выполняется нормально.

#12 Ответ от Олег Зырянов 21 августа 2014 12:28:58

  • Олег Зырянов
  • Технический руководитель
  • Неактивен
  • Откуда: Новосибирск
  • На форуме с 10 декабря 2008
  • Сообщений: 4,215

Re: Не работает библиотека на одной машине

SQL Native Client x32 поставьте. Скорей всего стоит только x64 (они вроде  разные).

#13 Ответ от JAEAEJ 21 августа 2014 14:09:09

  • JAEAEJ
  • Участник
  • Неактивен
  • На форуме с 15 октября 2010
  • Сообщений: 211

Re: Не работает библиотека на одной машине

Олег Зырянов пишет:

SQL Native Client x32 поставьте. Скорей всего стоит только x64 (они вроде  разные).

Не ставится.

Post’s attachments

Doc2.doc 91 Кб, 2 скачиваний с 2014-08-21 

You don’t have the permssions to download the attachments of this post.

#14 Ответ от Олег Зырянов 22 августа 2014 05:13:22

  • Олег Зырянов
  • Технический руководитель
  • Неактивен
  • Откуда: Новосибирск
  • На форуме с 10 декабря 2008
  • Сообщений: 4,215

Re: Не работает библиотека на одной машине

ну попробуйте x64 тогда поставить. Видимо наврал с с постом выше.

#15 Ответ от JAEAEJ 22 августа 2014 09:30:16 (изменено: JAEAEJ, 22 августа 2014 09:41:33)

  • JAEAEJ
  • Участник
  • Неактивен
  • На форуме с 15 октября 2010
  • Сообщений: 211

Re: Не работает библиотека на одной машине

ну попробуйте x64 тогда поставить.

Установил. Результат тот же.
Посмотрите doc. У меня есть SQL Native Client, а у него нет. Кто его ставит?

Post’s attachments

? ????.doc 83 Кб, 8 скачиваний с 2014-08-22 

You don’t have the permssions to download the attachments of this post.

#16 Ответ от JAEAEJ 25 августа 2014 20:19:07

  • JAEAEJ
  • Участник
  • Неактивен
  • На форуме с 15 октября 2010
  • Сообщений: 211

Re: Не работает библиотека на одной машине

Заменил строку соединения на SQLOLEDB.1. Теперь всё отрабатывает правильно.
Можно считать тему закрытой.

Страницы 1

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

I’m having a problem with a program I am attempting to link to a Microsoft Access 2013 Database. In the program I have the following code in a unit which links the database to Delphi:

unit udbSrc;

interface

Uses DB, ADODB, Forms;

Var DBDataBase : TADOQuery;

Procedure OpenDB;

implementation

Procedure OpenDB;
Begin
DBDataBase := TADOQuery.Create(Application);
DBDataBase.ConnectionString := 'Provider=Microsoft.ACE.OLEDB.12.0;Data Source=' + '''DataBase.accdb'';Persist Security Info=False';
end;

end.

In the main unit I have the following code under the click of a button:

DBDataBase.Close;
DBDataBase.SQL.Text := 'Select * From tblPlayerInfo';
DBDataBase.ExecSQL;
DBDataBase.Open
DBDataBase.First;

When I click the button the program doesn’t run with the following error message:

Provider cannot be found. It may not be properly installed.

And it identifies the error to lie in this line of code:

DBDataBase.ExecSQL;

I have done research and downloaded and installed AccessDatabaseEngine_x64 which did not have any effect. If anyone could please suggest a solution.

asked Oct 28, 2015 at 13:15

Mark van Heerden's user avatar

4

You say you have downloaded and installed AccessDatabaseEngine_x64, but this is the 64-bit provider. Delphi 7 produces 32-bit executable and therefore requires 32-bit providers. This is why you are getting the provider not found error. The required 32-bit provider is not installed.

Download and install AccessDatabaseEngine.exe (not the _x64 version) to obtain the 32-bit provider you require.

Typically when there is a choice of 32 or 64-bit versions of software the 32-bit version will be identified as x86 and the 64-bit version as x64. Having said that, in this case only the x64 version is explicitly identified in this way with the «plain» name being the alternative version only implicitly.

answered Oct 28, 2015 at 19:10

Deltics's user avatar

DelticsDeltics

22k2 gold badges41 silver badges70 bronze badges

SAnatoliy

0 / 0 / 0

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

Сообщений: 161

1

MS Access

«Не удается найти указанный поставщик. Вероятно он установлен не правильно»

14.11.2019, 11:41. Показов 11847. Ответов 12

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


Студворк — интернет-сервис помощи студентам

На пк где программирую к БД подключаюсь.

C++
1
2
3
4
String strok = "Provider=Microsoft.ACE.OLEDB.16.0;Password=;User ID=admin;Data Source=C:test.accdb;Mode=Share Deny None;Extended Properties=;Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password=123;Jet OLEDB:Engine Type=6;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password=;Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False;Jet OLEDB:Support Complex Data=False;Jet OLEDB:Bypass UserInfo Validation=False;Jet OLEDB:Limited DB Caching=False;Jet OLEDB:Bypass ChoiceField Validation=False";
 
DataModule1->ADOConnection1->ConnectionString = strok;
DataModule1->ADOConnection1->Open();

На других ПК нет. Как сделать подключение к БД Access универсальным?



0



Programming

Эксперт

94731 / 64177 / 26122

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

Сообщений: 116,782

14.11.2019, 11:41

Ответы с готовыми решениями:

Не удается найти указанный поставщик ADODB
Не могу понять в чём дело, всё работало, а через месяц все перестало работать, выдает ошибку, что…

Microsoft Text ODBC Driver, ошибка «Не удается найти указанный поставщик»
Скажите, пожалуйста, какая ошибка в макросе.
Ошибка возникает в строке 20. Полный текст ошибки:…

Не удается запустить программу. Не удается найти указанный файл. Microsoft visual studio
Добрый день. Начал работу с программой, написал первую программу. текст приложу ниже. Программа…

Не удается запустить программу, не удается найти указанный файл
Здравствуйте! Ранее пользовался Visual Studio 2010 и 2015, все правильно написанные коды работали,…

12

1193 / 693 / 329

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

Сообщений: 2,011

Записей в блоге: 2

14.11.2019, 12:47

2

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

На других ПК нет

Один из вариантов, на других ПК test.accdb лежит не в корне диска С, либо кроме админа в корень диска С нельзя писать.

Добавлено через 1 минуту
Вообще БД в идеале должна лежать рядом с экзешником, выдергиваем местонахождение приложения и вставляем в строку подключения.



0



SAnatoliy

0 / 0 / 0

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

Сообщений: 161

14.11.2019, 13:09

 [ТС]

3

так и сделано рядом.

C++
1
2
String f_path_DB = Dir_soft + "\Test.accdb";
String strok = "Provider=Microsoft.ACE.OLEDB.16.0;Password=;User ID=admin;Data Source="  + f_path_DB + ";Mode=Share Deny None;Extended Properties=;Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password=123;Jet OLEDB:Engine Type=6;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password=;Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False;Jet OLEDB:Support Complex Data=False;Jet OLEDB:Bypass UserInfo Validation=False;Jet OLEDB:Limited DB Caching=False;Jet OLEDB:Bypass ChoiceField Validation=False";

Пробовал через файл. Тоже самое на рабочем ПК не работает.

C++
1
    String strok = "FILE NAME="+ Dir_soft +"\test.udl";



0



1193 / 693 / 329

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

Сообщений: 2,011

Записей в блоге: 2

14.11.2019, 13:09

4

Рабочий пример, накатал на коленке, нормально подключается



0



1193 / 693 / 329

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

Сообщений: 2,011

Записей в блоге: 2

14.11.2019, 13:11

5

БД-шку кинуть надо, где экзешник. Ну и название поменять в строке.

Добавлено через 1 минуту

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

Dir_soft

Как получаете?



0



SAnatoliy

0 / 0 / 0

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

Сообщений: 161

14.11.2019, 15:00

 [ТС]

6

C++
1
String Dir_soft = ExtractFileDir(ParamStr(0));

в примере исходном Вы не положили БД.

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



0



683 / 4731 / 262

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

Сообщений: 3,039

14.11.2019, 16:14

7

А там Access DataBase Engine установлена?



0



0 / 0 / 0

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

Сообщений: 161

14.11.2019, 16:42

 [ТС]

8

да, на пк ставил с сайта «мелкомягхих» AccessDatabaseEngine_X64



0



Модератор

8500 / 5659 / 2291

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

Сообщений: 24,267

Записей в блоге: 3

14.11.2019, 19:01

9

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

ставил с сайта «мелкомягхих» AccessDatabaseEngine_X64

и приложение свое Вы тоже в х64 создаете???



0



0 / 0 / 0

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

Сообщений: 161

14.11.2019, 21:25

 [ТС]

10

1. Думаю что х32. Сверху RAD Studio пишется х32 bit. В выборе нет другого. (а как перевести проект не знаю)
2. Ставил «AccessDatabaseEngine_X64» так как для х32 «AccessDatabaseEngine» не устанавливается, ошибка. Винда х64 и офис тоже х64.

Добавлено через 1 час 12 минут
НА пк с RAD Studio переустановил офис на х64. Теперь не могу соединится и на своем ПК.
На ПК нет access, нет дистрибутива под рукой. Возможно установлю его и смогу соединятся?



0



0 / 0 / 0

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

Сообщений: 161

15.11.2019, 07:44

 [ТС]

11

На данный момент на ПК с RAD Studio c++ нет офиса. Все вычистил. Установил «AccessDatabaseEngine_X64», подключится не могу. «Администраторе источников данных ODBC в разделе х32» не видит расширение «.accdb», а в «Администраторе источников данных ODBC в разделе х64» подключение не получается.

Что можно сделать?



0



Модератор

8500 / 5659 / 2291

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

Сообщений: 24,267

Записей в блоге: 3

15.11.2019, 15:05

12

Переделайте базу в формат Access 2003 (mdb). Уж Jet 4 OLE DB по любому должен быть…



1



0 / 0 / 0

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

Сообщений: 161

15.11.2019, 15:46

 [ТС]

13

Спасибо. Так и сделал. Работает. Правда получилось пока через файл dsn, но чуть позже попробую еще без него.



0



впервые столкнулся с задачей сделать выборку из базы данных micorosoft access и как бы я не пытался к ней подключится, вижу вот это:

Ошибка. (Не удается найти указанный поставщик. Вероятно, он установлен неправильно.)

Connection String которые я пробовал:

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Access.mdb

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Acccess.mdb

И несмотря на то, что я скачивал с сайта MS некий AccessDatabaseEngine.exe и ставил все подряд, что советовали из гугла, ничего не помгло, та же ситуация и на MS Server.

Понравилась статья? Поделить с друзьями:
  • Ошибка не удается найти объект
  • Ошибка не удается найти комбинацию фильтров для потока
  • Ошибка не удается найти заданный сектор на диске
  • Ошибка не удается найти днс сервер
  • Ошибка не удается найти днс адрес