Microsoft OLE DB Provider for ODBC Drivers: [Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию
выдает:
"Microsoft OLE DB Provider for ODBC Drivers: [Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию" ЭТО что значит?!
Что за драйвер? Я вообще в использовании ADO новичок.И из того, что я прочитала,ADO вроде как должен быть встроен в Microsoft.Я ожидала что он не найдет источник соединения, но не драйвер.
(3) Gal_B, скачайте драйвер с сайта майкрософт. Посмотрите, присутствует ли ваш драйвер в списке источников? Пуск-настройка-панель управления- Администрирование- Источники данных (ODBC), вам нужно добавить ваш источник, а если он там отсутствует, то нужно скачивать...
(5) deniseek77, у меня стоит: Имя источника данных- Файлы dBASE, Драйвер- Microsoft dBase Driver. Разве это не ОНО? Там ещё целый список "дровов" ODBC, включая SQL server...
31.
Программист 1С
15726.02.13 15:11 Сейчас в теме
Этот код проверен:
Процедура Сформировать()
Connection = СоздатьОбъект("ADODB.Connection");
Connection.Open("Driver={Microsoft dBase Driver (*.dbf)};DriverId=277;Dbq=C:\");
НаборЗаписей = Connection.Execute("Select * from SC84.DBF;");
Пока НаборЗаписей.EOF() = 0 Цикл
Сообщить(НаборЗаписей.Fields(3).Value);
НаборЗаписей.MoveNext();
КонецЦикла;
КонецПроцедуры
Здесь вместо строки подключения "Driver={Microsoft dBase Driver (*.dbf)};DriverId=277;Dbq=C:\" надо указать Вашу строку подключения: если dBaseIV, то DriverID=277, если dBaseV, то DriverID=533. Далее, вместо C:\ надо указать путь к каталогу, где расположен Ваш файл. В строке "Select * from SC84.DBF" надо указать вместо SC84.DBF имя таблицы, которую надо прочитать. Вместо 3 в выражении НаборЗаписей.Fields(3).Value надо указать номер поля, которое необходимо прочитать.
Пустая. Почему - не могу понять...Создала ф-л ***.UDL, переписала код, чтобы от туда брал строку подключения - результат тот же: "Microsoft OLE DB Provider for ODBC Drivers: [Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию"
Ох, спасибо конечно всем. Но я не могу понять КАКОЙ драйвер OLE DB нужно подключить, чтобы sql-запросы работали на обычном(моем) компьютере , не на сервере(!).
Прошу, поделитесь кто-нибудь, как вы настраивали у себя на комп-е, какой драйвер выбирали, какой источник данных указывали? Ну не все же в конце концов на серверах сидят!
15.
Программист 1С
15725.02.13 18:25 Сейчас в теме
Попробуйте
Connection = СоздатьОбъект("ADODB.Connection");
Connection.Open("Driver={Microsoft dBase Driver (*.dbf)};DriverId=277;Dbq=C:");
Обратите внимание на то, что надо указывать каталог, а не саму базу данных!
16.
Программист 1С
15725.02.13 18:32 Сейчас в теме
Кроме того, убедитесь, что с ODBC всё в порядке (см. прикреплённые файлы).
Если используется dBASEIV, следует указывать DriverID=277, а для dBASEV следует указывать DriverID=533.
И, наконец, какая используется операционная система? Если 64-разрядная, то неплохо бы изменить некоторые настройки для ODBC.
(16) VadimGorbunov, спасибо. ОС 32-разрядная, XP 2002.
Друзья мои, всё гораздо "круче": оказалось на сервере, к которому я пыталась обратиться, SQL не стоит, как и на моем ком-е.В виду этого новый вопрос: Могу ли я на своем компе, не меняя ОС установить SQL и в настройках обращения к источнику данных указать свой же комп. ???
(27) VadimGorbunov, я знаю как обновлять страницу. Я сижу на работе, стены у нас стеклянные. И, мои пусть даже и профессиональные интересы в интернете, всё равно вызывают непонимания. Так что извините, но отвечаю как только, так сразу))
Она как раз по работе. Просто я сижу среди бухгалтеров, а задачу ставил производственник. В общем всё сложно...
Я следую вашим инструкциям: драйвер добавила. Что ещё нужно сделать?
Блиииин, пишет:
НаборЗаписей=Connection.Execute("Select * from SC33.DBF;");
{Отчет.Маркетинг.Форма.Модуль(238)}: Microsoft OLE DB Provider for ODBC Drivers: [Microsoft][Драйвер ODBC dBase] Блокировка таблицы 'SC33#DBF' невозможна; она используется пользователем '(нет данных)' на машине '(нет данных)'.
34.
Программист 1С
15726.02.13 18:10 Сейчас в теме
Очевидно, с этой таблицей кто-то работает. Может быть, даже Вы из 7.7.
Если таблица используется в отчёте, измените строку подключения на режим только чтение:
Connection.Open("Driver={Microsoft dBase Driver (*.dbf)};DriverId=277; Mode=Read; Dbq=C:\");
36.
Программист 1С
15727.02.13 11:57 Сейчас в теме
Gal_B, всё же немного странно, привлекать внешние средства для доступа к DBF.
Для этого в 7.7 есть стандартный объект XBase. Вот более простой код:
ПутьКФайлу = "C:\SC84.DBF";
ПутьКИндексу = "C:\SC84.CDX";
ТолькоЧтение = 1;
WindowsКодировка = 0;
DOSКодировка = 1;
БД = СоздатьОбъект("XBase");
БД.ОткрытьФайл(ПутьКФайлу, ПутьКИндексу, ТолькоЧтение);
БД.КодоваяСтраница(WindowsКодировка);
Если БД.Открыта() = 1 Тогда
Пока БД.Следующая() = 1 Цикл
Сообщить(БД.Descr);
КонецЦикла;
КонецЕсли;
А для Вас, dvk09, код:
Access = СоздатьОбъект ("Access.Application");
Access.Visible = 1;
Путь = "C:\Пример.mdb";
Access.OpenCurrentDatabase(Путь);
БД = Access.CurrentDb ();
ВсегоТаблиц = БД.TableDefs.Count;
Для Номер = 0 По ВсегоТаблиц - 1 Цикл
Таблица = БД.TableDefs.Item (Номер);
Имя = Таблица.Name;
Если Найти (Имя, "MSys") > 0 Тогда
Продолжить;
КонецЕсли;
Сообщить(Имя);
КонецЦикла;
Access = "";
КонецПроцедуры
(36) VadimGorbunov, Именно так и делаю,
только при открытии через "MDB Viewer Plus" вижу на 3 таблицы больше!
Поэтому и спрашиваю, может у Вас есть опыт получения имен таблиц mdb-файла через ODBC?
Для Сч = 0 По БД.TableDefs.Count - 1 Цикл
ТаблицаБД = БД.TableDefs.Item (Сч);
ИмяТаблицыБД = ТаблицаБД.Name;
Если Найти (ИмяТаблицыБД, "MSys") > 0 Тогда
Продолжить;
КонецЕсли;
ТаблицыБД.ДобавитьЗначение (ИмяТаблицыБД);
КонецЦикла;
(38) VadimGorbunov, Спасибо, попробую, отвечу.
Кстати с Аксессовскими файлами из 1С через ODBC работаю, запросы выполняются очень быстро.
Формировать запросы с помощью объекта "Access.Application" не пробовал, да и не знаю, возможно ли это.