Ole db что это за программа
ADO (Active Data Objects) — это высокоуровневый компонент технологии доступа к данным от Microsoft. (т.н. MDAC — Microsoft Data Access Components) Другие компоненты — это старый добрый ODBC и новый низкоуровневый интерфейс OLE DB.
Данными для ADO могут быть как привычные таблицы Access или серверные базы MS SQL или Oracle, так и несколько экзотичные Microsoft Active Directory Service, XML-файлы и т.п.
ADO- более новая технология чем ODBC, работает через интерфейс OLE DB.
Впрочем, можно использовать ADO и через ODBC — хотя стоит ли? OLE DB превосходит ODBC по скорости и, похоже, Microsoft основную ставку делает именно на парочку ADO+OLE DB. Более того, похоже, и Borland делает ставку на ADO, старик BDE готовится к отправке на пенсию, а компоненты для работы с ADO от Borland (ADOExpress) теперь входят в поставку Delphi. (существуют также Delphi-компоненты для работы с ADO от сторонних фирм).
Так что если вы хотите работать с MS SQL 7 или MS SQL 2000 без ограничений, которые накладывает BDE (BDE по-прежнему полностью поддерживает только MS SQL 6.5 и обновления BDE пока не предвидится) то вам прямая дорога к изучению ADO Express. Что касается баз Access то я очень бы посоветовал обратить на них внимание программистам, уставшим от «парадоксального» поведения Paradox+BDE. Начиная с версии Access 2000 Microsoft удалось догнать и перегнать старый, добрый Paradox (не менявшийся, насколько мне известно, уже довольно давно).
OLE DB Connection Tutorial
Примечание:
Я вовсе не хочу сказать, что у Access вообще нет никаких проблем.
MDAC входит в поставку ОС Windows, начиная с версии 98 (точнее в Windows98 MDAC версии 2.1, а в Windows ME и Windows2000 — MDAC 2.5).
Последнюю версию MDAC можно скачать с сайта Microsoft, на момент написания статьи была доступна версия 2.6 — http://www.microsoft.com/data/
Delphi 5 тоже не отстает от жизни — на сайте Borland выложены Update Pack 1 для Delphi и ADO Express Update 1 и 2 — обязательно скачайте и установите их.
http://www.borland.com/devsupport/delphi/downloads/index.html — Delphi%205
Примечание:
На сайте Delphi3000 как-то опубликовали статью, сравнивающую Access и Paradox — и хотя сравнение это не совсем технически корректное обсуждение этой статьи, на мой взгляд, интересное: http://www.delphi3000.com/articles/article_1193.asp
Что такое ADO Express? |
Это VCL-компоненты от Borland соответствующие иерархии компонентов ADO от Microsoft и упакованные так, чтоб их было удобно использовать программистам, привыкшим к BDE — TADOConnection, TADOCommand, TADODataSet, TADOTable, TADOQuery, TADOStoredProc и TRDSConnection.
Примечание:
В Delphi 6 будут включены компоненты dbGo — это ничто иное, как переименованный ADO Express — Microsoft теперь не разрешает другим фирмам использовать слово ADO в названии своих продуктов.
OLE DB or ODBC Error when Refresh the Power BI Report
TADOConnection — это что-то вроде описателя адреса, по которому находятся данные. Главное его свойство ConnectionString (строка подключения) — это несколько строк вида «имя параметра = значение», которые описывают, где находятся данные и как к ним подключаться.
Главные значения, которые всегда должны быть в строке подключения — это имя поставщика данных (Data Provider) и имя базы данных. Пример:
Фрагмент строки подключения к базе Access:
P r o v i d e r = M i c r o s o f t . J e t . O L E D B . 4 . 0 ; D a t a S o u r c e = C : d b 1 . m d b ;
Microsoft.Jet.OLEDB.4.0 — это OLE DB поставщик данных, для баз Access, существует множество других провайдеров, например S Q L O L E D B . 1 — провайдер для MS SQL.
Кроме имени поставщика данных строка подключения может хранить еще массу параметров (например, имя пользователя и пароль, величину тайм-аута, права доступа и т.п.) перечень этих свойств зависит от конкретного Data Provider’а.
Придется запоминать кучу всех этих параметров строк подключения?
Нет, конечно. В поставку Windows входит специальный редактор строк подключения. Самый лучший, на мой взгляд, способ — это хранить строку подключения в отдельном файле — это позволит, при необходимости, изменить параметры подключения (например, путь к базе данных) без внесения изменений в приложение. Для хранения строк подключения предназначены файлы с расширением UDL (universal data link).
Создать UDL-файл проще простого — запустите Проводник (Explorer) Windows, щелкните в нужном каталоге правой кнопкой и выберите из контекстного меню NEW-> Microsoft Data Link File. Если вы не видите в меню такого пункта — не расстраивайтесь — просто создайте пустой текстовый файл и смените его расширение на UDL — щелкните по нему дважды — и перед вами редактор строк подключения во всей красе.
Выберите провайдера (для баз Access — провайдер JET, для MS SQL — OLE DB Provider for SQL server).
Нажмите кнопку далее
На рисунке внешний вид редактора для баз Acces — введите путь к базе, имя пользователя и пароль (если нужно) и нажмите кнопку «Проверить подключение», чтоб убедиться, что техника Вам подвластна:
После того как UDL-файл готов можно использовать его в Delphi — создайте новый проект, поместите на форму (или на Data Module) компонент ADOConnection, щелкните по свойству ConnectionString и укажите путь к UDL-файлу откуда этот String нужно взять:
Все остальные компоненты ADO Express также имеют свойство ConnectionString — и в принципе, можно вообще обойтись без компонента ADOConnection — просто в каждом из используемых компонетов ADOQuery, ADOCommand и т.д. указать путь к этому UDL- файлу. Однако компонент ADOConnection содержит еще парочку полезных свойств — он позволяет указывать свойства «курсора» и управлять транзакциями.
Простой пример.
Для разминки бросьте на форму компонент TADOConnection (назовем его ADOConnection1), укажите ConnectionString на какой-нибудь UDL-файл, скажем к базе из Access, установите его свйоство Connected в True. Добавьте компонент TADOTable (пусть это будет ADOTable1), установите его свойство ADOConnection равным имени только что добавленного ADOConnection1, свойство Active в True.
Теперь добавьте компонент TDataSource (с закладки Data Access). Свойство DataSet этого DataSource установите равным ADOTable1.
Бросьте на форму компонент TDBGrid с закладки DataControls. Установите его свойство DataSource в DataSource1. Вы должны увидеть данные в сетке DBGrid’a. Запустите программу и поиграйтесь, редактируя данные.
Примечание:
В Интернете довольно много примеров описания того, как начать программировать с ADO, с примерами программ
Например:
Статья Дмитрия Сидорова Поддержка технологии ADO
Или перевод статьи Marco Cantu Дилемма доступа к данным.
И Опыт использования ADO для доступа к базам данных форматов MS Access, xBase и Paradox Иванова Д.М.
Про курсоры и транзакции. |
Немного теории. Данные, как известно, хранятся в таблицах. Как правило, считывать сразу всю информацию из таблицы никому не нужно — поэтому считывается только часть, ограниченная каким-то условием (это условие задается обычно в SQL с помощью запросов с условием — Where) и называется Result Set. Result Set может быть очень большим — а программе как правило нужно иметь возможность изменять только одну строку из него, перемещаясь по нему в одном направлении (только вперед) или в обоих направлениях. Такую возможность предоставляет так называемый «курсор» — он и называется так потому, что как бы указывает на то — с какой строкой из результирующего набора работает программа.
Курсоры бывают разных видов. Во-первых, курсор может находиться как в памяти сервера, так и в памяти компьютера, который подключился к серверу (клиента). Местоположением курсора управляет свойство CursorLocation — оно может принимать два значения — clUseServer (курсор находится на сервере) и clUseClient (курсор находится на клиенте). Несмотря на то, что серверные курсоры кажутся заманчивыми — их используют не так уж часто — во-первых, не все поставщики данных их поддерживают, во-вторых, они здорово потребляют ресурсы сервера и при большом количестве клиентов их лучше не использовать.
В случае если курсор находится на сервере, на клиент может передаваться только одна строка таблицы, или несколько строк — этим управляет свойство Cache Size, по умолчанию оно равно 1.
А теперь представьте себе — ваша программа считала данные в курсор — и показывает их пользователю, а в это время другая программа считывает данные из таблицы, изменяет их, и записывает обратно. В результате курсор данных, с которым работает ваша программа, становится не актуальным. Поэтому вид курсора влияет на то, обновляются ли автоматически данные, считанные в ваш курсор, если их изменили другие пользователи (говоря научно — на конкурентные изменения данных). Типом курсора управляет свойство CursorType . Существуют следующие типы куросоров
Однонаправленный курсор (прокрутка только вперед). Потребляет минимальные ресурсы. После перехода на следующую строку ресурсы, связанные с предыдущей строкой освобождаются, и она больше не может быть прочитана. Используется обычно для отчетов и анализа данных без изменений. | |
Static | Статический курсор. Показывает данные в том состоянии, в котором они были в момент открытия курсора. (Т.е. не замечает изменения данных внесенные другими пользователями до тех пор, пока не переоткрыт набор данных) Позволяет прокручивать данные как вперед, так и назад. |
Dynamic | Динамический курсор (как правило, на стороне сервера). Данные, измененные другими пользователями, обновляются в курсоре автоматически. Потребляет максимум ресурсов. Поддерживается не всеми поставщиками данных. Позволяет прокручивать данные как вперед, так и назад. |
Keyset | Этот вид курсора — нечто среднее между статическими и динамическими курсорами. Запоминаются ключевые поля всех записей на момент открытия курсора. Изменения, внесенные другими пользователями видны, если они не изменяют ключевые поля. Записи, добавленные другими пользователями не видны до тех пор, пока курсор не переоткрыть. При удалении записи, возникает «дыра» — ключевое поле записи остается в курсоре, но самой записи в таблице уже нет. Этот вид курсоров лучше использовать, только если записи в основном изменяются, но не удаляются и добавляются. |
ADO работает довольно гибко, если до открытия набора данных установить тип курсора, который не поддерживается поставщиком данных, то набор все равно будет открыт без сообщений об ошибках, но в свойства CursorType, CursorLocation будут установлены новые значения, такие, с которыми удалось открыть набор данных.
Последнее, на что влияют курсоры — это блокировки ( свойство LockType ). Это свойство управляет тем, когда именно запись блокируется от изменений со стороны других пользователей при редактировании.
ltPessimistic | Пессимистическая блокировка. Как только пользователь начинает редактировать запись на эту запись тут же накладывается блокировка и другие пользователи не могут ее изменять. |
ltOptimistic | Оптимистическая блокировка. Блокировка накладывается не в момент начала редактирования записи, а в тот момент, когда пользователь закончил редактирование и сохраняет запись. |
ltBatchOptimistic | Пакетно-оптимистическая блокировка. Используется при пакетных изменениях |
ltReadOnly | Только чтение. Программа не собирается ничего изменять — ей нужно только считывать данные. Применяется при построении отчетов и анализе данных. |
- BeginTrans — с момента вызова этого метода, все внесенные изменения, удаления или добавления данных, происходят в режиме транзакции.
- CommitTrans — подтверждает транзакцию. Все изменения, удаления и добавления данных произошедшие после вызова BeginTrans фиксируются в базе данных.
- RollbackTrans — отменяет транзакцию. Все изменения, удаления и добавления данных, произошедшие после вызова BeginTrans, отменяются и база данных приводится к тому виду, в котором она была до начал транзакции.
После вызова метода BeginTrans свойство InTransaction компонента ADOConnection будет равно True до тех пор, пока транзакция не будет либо подтверждена, либо отменена.
С транзакциями связано также свойство IsolationLevel — оно показывает можно ли считывать данные, измененные в процессе транзакции, если транзакция еще не подтверждена. Значение этого свойства — ilReadCommitted означает что считываются только изменения, подтвержденные CommitTransaction, значение ilReadUncommitted — считываются неподтвержденные изменения, ilRepeatableRead — изменения, внесенные другими транзакциями не видны до тех пор, пока не переоткрыть набор данных.
Коротко о других компонентах ADO |
- http://www.citforum.ru/database/sql_kg/index.shtml
- http://www.citforum.ru/database/sqlbook/index.shtml
Компонент TADODataset — это компонент, который имеет возможности TADOTable и TADOQuery одновременно — т.е. может быть использован как для выполнения SQL- запроса так и для прямого обращения к какой-либо таблице.
TADOStoredProc — компонент для работы с хранимыми процедурами.
В следующей части мы поговорим о свойстве Properties компонентов ADO, которые, к сожалению, почти не освещены в справке от Borland и о некоторых отличиях, с которыми придется столкнуться программисту, переносящему проект с BDE на ADO.
Обсуждение материала [ 21-03-2005 04:23 ] 20 сообщений
Время на сайте: GMT минус 5 часов
Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter.
Функция может не работать в некоторых версиях броузеров.
Источник: www.delphikingdom.com
Поставщик «Microsoft.ACE.OLEDB.12.0» не зарегистрирован на локальном компьютере
Дело все в том что написанная минипрограмка заточена под Office 2010 когда я пытаюсь открыть проект или запустить скомпилированный exe файл, на ПК где стоит Office 2013 то появляется сообщение поставщик «Microsoft.ACE.OLEDB.12.0» не зарегистрирован на локальном компьютере
Вот как быть в таких случаях когда на ПК может стоять совсем другой office или вовсе не стоять?
Как обходить такие ошибки и что бы все работало?
Но как его потом интегрировать, что бы не надо было на других ПК где будет запускаться, его отдельно устанавливать?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
Лучшие ответы ( 2 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Поставщик «Microsoft.ACE.OLEDB.12.0» не зарегистрирован на локальном компьютере
В чем дело? В VISUAL BASIC 2013 Создал форму кинул на нее DataGreedView, подключил файл с.
Поставщик «Microsoft.Ace.OLEDB.12.0» не зарегистрирован на локальном компьютере
Здравствуйте, не могу понять почему не работает SQL, написал самый простой запрос и выдал такую.
Поставщик «Microsoft.Jet.OLEDB.4.0» не зарегистрирован на локальном компьютере (Windows7, x32)
При изучение БД по самоучителю, столкнулся с проблемой, при попытке запуска программы выдается.
355 / 294 / 78
Регистрация: 02.10.2013
Сообщений: 476
Записей в блоге: 5
Качать, только обрати внимание на соответствие операционке X86 или X64
34 / 34 / 12
Регистрация: 29.07.2010
Сообщений: 410
Попробовал. Не получилось. Самое прикольное что у Office 2014
Точно такой же параметр как и у 2010
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:myFoldermyAccessFile.accdb; Persist Security Info=False;
34 / 34 / 12
Регистрация: 29.07.2010
Сообщений: 410
А вот еще одна ситуация, сегодня произошла так же связана с темой.
В пятницу работал с проектом, все данные записывались и выводились в Access нормально.
Сегодня запускаю тот же самый проект, пошла ошибка «Microsoft.ACE.OLEDB.12.0» не зарегистрирован на локальном компьютере.
Хотя на ПК нормально стоит Access и запускается нормально. А ошибка при запуске проекта все же выдается 🙁
С системой за выходные не кто не чего не делал. Даже ПК с того момента не перезагружался. (перезагрузился ошибка не прошла).
Почему такие странности проиходят?
3853 / 3176 / 479
Регистрация: 27.01.2014
Сообщений: 5,809
Сообщение было отмечено Памирыч как решение
Решение
vova_king, проблема в том, что скорее всего у тебя система x64 а программа откомпилированадля AnyCPU, и учитывая битность твоей системы, она пытается запустить программу с параметрами x64, но провайдер идет для x86.
Поэтому, настрой компилятор студии для своего приложения под x86 вместо AnyCPU и выполни построение заново. ну и проверь. должно работать и на x86 и на x64.
Думаю в этом и есть проблема.
Добавлено через 2 минуты
Кстати dimsaratov тебе на это и намекнул.
Добавлено через 7 минут
Недавно Памирыч вылодил свой исходник программы для поиска фотографий, в ней тоже работа с базой Access через провайдера только OLEDB.4.0. так вот и у него та же самая проблема. На моей системе не пускается, пишет что провайдер не найден.
ИСПРАВИЛ ПЕРЕИЗДАНИЕМ ПОД x86.
3853 / 3176 / 479
Регистрация: 27.01.2014
Сообщений: 5,809
Сообщение было отмечено Памирыч как решение
Решение
Ссорри за качество. Комп не подключен к нтернету. Пришлось делать фото с телефона.
3853 / 3176 / 479
Регистрация: 27.01.2014
Сообщений: 5,809
Наверное ответ уже был найден, но для истории с примером думаю пост можно оставить.
Регистрация: 09.11.2015
Сообщений: 18
Спасибо за совет. У меня заработало.
Регистрация: 16.10.2016
Сообщений: 28
Мне все выше сказанное не помогло, я поменял платформу с .NET Framework 4 client profile на .NET Framework 4 client profile если кто знает как это помогло напишите пж, чтоб и мне знать
3853 / 3176 / 479
Регистрация: 27.01.2014
Сообщений: 5,809
x4x, а что за проблема то у вас? Ну сменили вы платформу и что случилось? опишите подробнее.
Регистрация: 01.11.2008
Сообщений: 82
Здравствуйте.
Какие ещё могут быть варианты проблемы?
1. На двух компах работает, на двух нет. Система Windows 10, x64
2. x64 и x86 менял
3. REGEDIT.EXE говорит, что Provider=Microsoft.ACE.OLEDB.12.0, и 16.0 и 10.0 установлены
Использую для подключения к xlsx.
Может в строке что неверно
Dim cn As New OleDb.OleDbConnection(«Provider=Microsoft.ACE.OLEDB.12.0;Data Source = ‘» «‘;Extended Properties=»»Excel 8.0;HDR=YES;IMEX=1;ImportMixedTypes=Text;TypeGuessRows=0″»»)
3853 / 3176 / 479
Регистрация: 27.01.2014
Сообщений: 5,809
а что за ошибка у вас?
Регистрация: 01.11.2008
Сообщений: 82
Поставщик «Microsoft.ACE.OLEDB.12.0» не зарегистрирован на локальном компьютере
Регистрация: 03.09.2018
Сообщений: 3
Смотрю по постам, что тема очень наболевшая.
И я тоже с ней столкнулся.
Задача — написать расчетную программу, которая будет распространяться среди наших партнеров.
Написал в VB.net на своем компе — Win 10 64, Office 2013 64.
Так как речь идет о большом количестве товаров, я создал БД в Access, не заполнять же массивы вручную.
На моём компе разобрался — поставил в VB конфигурацию х64 и заработало всё как надо.
Но, надо же, чтобы прога и на других компах работала. Это же элементарно! А на других компах разные ОС, разные Офисы, разные битности.
Начитался на форумах про кучу доп файлов, качал их — не работает. Даже на моём 2-м компе — Win 10 x64, Office 16 x64.
Проверял наличие Microsoft.ACE.OLEDB.12.0 на обеих компах — есть.
А программа не запускается всё с той же ошибкой.
Я уже молчу про 32 бита.
257 / 198 / 49
Регистрация: 18.12.2015
Сообщений: 415
Кот-Бегемот-2,
поставьте AnyCPU и подключите проверку с использованием перехвата ошибок try catch, на выходе вы получите нужное подключение и будете его использовать дальше в коде:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
Private Connect = New OleDbConnection Private Sub GetProvider() Try Connect.ConnectionString = SetConnString(«4») Connect.Open() Catch ex As Exception Try Connect.ConnectionString = SetConnString(«12») Connect.Open() Catch ex2 As Exception MsgBox(ex.Message) End Try End Try If Connect.State.ToString = «Open» Then Connect.Close() End Sub Private Function SetConnString(ByVal provider As String) As String If provider = «4» Then provider = «Provider=Microsoft.Jet.OLEDB.4.0» ElseIf provider = «12» Then provider = «Provider=Microsoft.ACE.OLEDB.12.0″ End If Return provider ;Data Source=» «» db.mdb» End Function
Если же оба не сработают, то получите окно с ошибкой и проанализируете.
Можете добавить 16 провайдер, но мне всегда хватало 4 и 12.
Источник: www.cyberforum.ru
Ole db что это за программа
Microsoft Jet — это ядро базы данных, которое обеспечивает возможность доступа к данным из любого приложения, поддерживающего OLE Automation, в частности VBA и Excel, независимо от интерфейса конкретной системы управления базами данных[2]. Ядро Jet хранит свою информацию по умолчанию в файлах с базами данных, имеющих расширение mdb. Такие файлы содержат таблицы, модули, формы, отчеты, запросы и индексы. Конечно, формат mdb — это не единственный формат баз данных, с которыми работает Microsoft Jet. Он поддерживает форматы баз данных, созданных с помощью Microsoft Access, dBASE и т. д[2].
По умолчанию Microsoft Jet является ядром базы данных, который используется в Microsoft Access. Для повышения производительности и стабильности нужно использовать формат базы данных Microsoft Jet 4.0 при использовании клиента Microsoft Jet 4.0. Аналогично при использовании клиента Microsoft Jet 3.5 следует использовать формат базы данных Microsoft Jet 3.0. В таблице 1.1 перечислены доступные в настоящее время форматы Jet, а также трансляторы dll, используемые в определенных версиях Access и форматах Jet.
Таблица 1.1. Форматы Jet и используемые трансляторы.
Используемый транслятор dll
Источник: studbooks.net
Ole db что это за программа
На днях попалось приложение использующее соединение OLE DB к SQL серверу, параметры соединения были указаны в текстовом конфигурационном файле. Данный файл использовался приложением при запуске для подключения к базе, но как проверить верные ли были указаны параметры в данном файле. Оказывается можно быстро проверить, а так же использовать реально работающие параметры OLE DB соединения.
Проверка параметров OLE DB соединения
Необходимо создать текстовой файл, изменить у данного файла расширение на .udl (Universal Data Link) дважды щелкнуть на данном файле откроется окно параметров соединения:
В данном окне необходимо указать требуемые данные для подключения.
Для проверки соединения необходимо нажать кнопку Test Connection, должно появиться уведомление сообщающее о успешном соединении.
Данный файл теперь можно открыть в любом текстовом редакторе из которого можно скопировать рабочие настройки:
Provider=SQLOLEDB.1;Password=Pass;Persist Security Info=True;User Name;Initial Catalog=DBName;Data Source=Server Name
Источник: sys-adm.in