Microsoft OLE DB Provider for ODBC Drivers: [Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию

Внимание! Тема закрыта. Добавлять сообщения в закрытую тему запрещено.
1. Gal_B 25.02.13 13:12 Сейчас в теме
Доброго дня!
Когда пытаюсь создать соединение
	Connection = СоздатьОбъект("ADODB.Connection"); 
	СтрокаПодключения = Connection.ConnectionString;
	Попытка 
	        Connection.Open(СтрокаПодключения);
	исключение
        Сообщить(ОписаниеОшибки());
		Возврат;
	КонецПопытки;
Показать
выдает:
"Microsoft OLE DB Provider for ODBC Drivers: [Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию" ЭТО что значит?!
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
13. Pari 25.02.13 14:03 Сейчас в теме
(1) Gal_B,
Connection = СоздатьОбъект("ADODB.Connection");
СтрокаПодключения = "<строку подключения берете из соотв. поля файла .UDL>";
//или отсюда http://www.connectionstrings.com/
Connection.ConnectionString = СтрокаПодключения;
2. Ibrogim 1328 25.02.13 13:15 Сейчас в теме
Драйвер то установлен? (который указан в строке подключения)
3. Gal_B 25.02.13 13:22 Сейчас в теме
Что за драйвер? Я вообще в использовании ADO новичок.И из того, что я прочитала,ADO вроде как должен быть встроен в Microsoft.Я ожидала что он не найдет источник соединения, но не драйвер.
4. Ibrogim 1328 25.02.13 13:29 Сейчас в теме
(3) Gal_B, Напишите строку подключения
Giamonomoto; +1 Ответить
5. deniseek77 86 25.02.13 13:29 Сейчас в теме
(3) Gal_B, скачайте драйвер с сайта майкрософт. Посмотрите, присутствует ли ваш драйвер в списке источников? Пуск-настройка-панель управления- Администрирование- Источники данных (ODBC), вам нужно добавить ваш источник, а если он там отсутствует, то нужно скачивать...
AnddnA; cheburashka; Xershi; +3 Ответить
6. Gal_B 25.02.13 13:37 Сейчас в теме
(5) deniseek77, у меня стоит: Имя источника данных- Файлы dBASE, Драйвер- Microsoft dBase Driver. Разве это не ОНО? Там ещё целый список "дровов" ODBC, включая SQL server...
8. Ibrogim 1328 25.02.13 13:48 Сейчас в теме
(6) Gal_B,
Разве это не ОНО
Оно или нет не узнать, пока вы не напишите строку подключения.
10. Gal_B 25.02.13 13:49 Сейчас в теме
31. Программист 1С 157 26.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 надо указать номер поля, которое необходимо прочитать.
32. Gal_B 26.02.13 15:53 Сейчас в теме
(31) VadimGorbunov, СПАСИБО! Сейчас попробую
7. Программист 1С 157 25.02.13 13:43 Сейчас в теме
9. Gal_B 25.02.13 13:48 Сейчас в теме
11. Gal_B 25.02.13 13:55 Сейчас в теме
напишите строку подключения.
Пустая. Почему - не могу понять...Создала ф-л ***.UDL, переписала код, чтобы от туда брал строку подключения - результат тот же: "Microsoft OLE DB Provider for ODBC Drivers: [Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию"
12. Ibrogim 1328 25.02.13 14:01 Сейчас в теме
(11) Gal_B, Ну дак какая строка подключения то?
14. Gal_B 25.02.13 15:28 Сейчас в теме
Ох, спасибо конечно всем. Но я не могу понять КАКОЙ драйвер OLE DB нужно подключить, чтобы sql-запросы работали на обычном(моем) компьютере , не на сервере(!).
Прошу, поделитесь кто-нибудь, как вы настраивали у себя на комп-е, какой драйвер выбирали, какой источник данных указывали? Ну не все же в конце концов на серверах сидят!
17. dvk09 2 26.02.13 01:41 Сейчас в теме
(14) Gal_B, Определитесь из чего вы собираетесь получать информацию.
15. Программист 1С 157 25.02.13 18:25 Сейчас в теме
Попробуйте
Connection = СоздатьОбъект("ADODB.Connection");
Connection.Open("Driver={Microsoft dBase Driver (*.dbf)};DriverId=277;Dbq=C:");
Обратите внимание на то, что надо указывать каталог, а не саму базу данных!
16. Программист 1С 157 25.02.13 18:32 Сейчас в теме
Кроме того, убедитесь, что с ODBC всё в порядке (см. прикреплённые файлы).
Если используется dBASEIV, следует указывать DriverID=277, а для dBASEV следует указывать DriverID=533.
И, наконец, какая используется операционная система? Если 64-разрядная, то неплохо бы изменить некоторые настройки для ODBC.
Прикрепленные файлы:
18. Gal_B 26.02.13 12:03 Сейчас в теме
(16) VadimGorbunov, спасибо. ОС 32-разрядная, XP 2002.
Друзья мои, всё гораздо "круче": оказалось на сервере, к которому я пыталась обратиться, SQL не стоит, как и на моем ком-е.В виду этого новый вопрос: Могу ли я на своем компе, не меняя ОС установить SQL и в настройках обращения к источнику данных указать свой же комп. ???
19. Программист 1С 157 26.02.13 13:11 Сейчас в теме
20. Программист 1С 157 26.02.13 13:14 Сейчас в теме
Только Вы же соединялись не с SQL, а с DBF. Зачем Вам SQL?
21. Gal_B 26.02.13 13:14 Сейчас в теме
Подскажите, что мне нужно поставить на свой XP?
22. Программист 1С 157 26.02.13 13:19 Сейчас в теме
Сделайте, пожалуйста, скриншот Администратор источников данных ODBC на своём компьютере.
23. Программист 1С 157 26.02.13 13:35 Сейчас в теме
А где находится база данных, которую Вы хотите прочитать: на Вашем компьютере, или где-то в другом месте?
24. Gal_B 26.02.13 13:37 Сейчас в теме
На моем. Вот:
Прикрепленные файлы:
25. Программист 1С 157 26.02.13 13:39 Сейчас в теме
Здесь нет драйвера DBF. Добавьте его.
26. Программист 1С 157 26.02.13 13:40 Сейчас в теме
Кнопка Добавить и найти в списке Driver dBase.
27. Программист 1С 157 26.02.13 13:45 Сейчас в теме
Gal_B, чтобы лучше общаться по Интернету, нажимайте почаще правую клавишу мыши и выбирайте контекстное меню Обновить.
28. Gal_B 26.02.13 13:49 Сейчас в теме
(27) VadimGorbunov, я знаю как обновлять страницу. Я сижу на работе, стены у нас стеклянные. И, мои пусть даже и профессиональные интересы в интернете, всё равно вызывают непонимания. Так что извините, но отвечаю как только, так сразу))
29. Программист 1С 157 26.02.13 13:51 Сейчас в теме
Извините. Я думал, эта задача возникла у Вас по работе.
30. Gal_B 26.02.13 13:54 Сейчас в теме
Она как раз по работе. Просто я сижу среди бухгалтеров, а задачу ставил производственник. В общем всё сложно...
Я следую вашим инструкциям: драйвер добавила. Что ещё нужно сделать?
33. Gal_B 26.02.13 16:56 Сейчас в теме
Блиииин, пишет:
НаборЗаписей=Connection.Execute("Select * from SC33.DBF;");
{Отчет.Маркетинг.Форма.Модуль(238)}: Microsoft OLE DB Provider for ODBC Drivers: [Microsoft][Драйвер ODBC dBase] Блокировка таблицы 'SC33#DBF' невозможна; она используется пользователем '(нет данных)' на машине '(нет данных)'.
34. Программист 1С 157 26.02.13 18:10 Сейчас в теме
Очевидно, с этой таблицей кто-то работает. Может быть, даже Вы из 7.7.
Если таблица используется в отчёте, измените строку подключения на режим только чтение:
Connection.Open("Driver={Microsoft dBase Driver (*.dbf)};DriverId=277; Mode=Read; Dbq=C:\");
35. dvk09 2 27.02.13 01:05 Сейчас в теме
(34) VadimGorbunov, Может подскажите как с помощью ODBC прочитать структуру mdb-файла, а именно имена таблиц.
хотя это не в тему...
36. Программист 1С 157 27.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 = "";
КонецПроцедуры
37. dvk09 2 28.02.13 06:34 Сейчас в теме
(36) VadimGorbunov, Именно так и делаю,
только при открытии через "MDB Viewer Plus" вижу на 3 таблицы больше!
Поэтому и спрашиваю, может у Вас есть опыт получения имен таблиц mdb-файла через ODBC?

Access = СоздатьОбъект ("Access.Application");
Access.Visible = 1;
Access.OpenCurrentDatabase (Путь);
БД = Access.CurrentDb ();

Для Сч = 0 По БД.TableDefs.Count - 1 Цикл
ТаблицаБД = БД.TableDefs.Item (Сч);
ИмяТаблицыБД = ТаблицаБД.Name;
Если Найти (ИмяТаблицыБД, "MSys") > 0 Тогда
Продолжить;
КонецЕсли;
ТаблицыБД.ДобавитьЗначение (ИмяТаблицыБД);
КонецЦикла;

Access = "";
38. Программист 1С 157 28.02.13 12:04 Сейчас в теме
В чём разница?
Процедура Сформировать()
Connection = СоздатьОбъект("ADODB.Connection");
Connection.Open("Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\Пример.mdb;Uid=Admin;Pwd=;");
adSchemaTables = 20;
НаборЗаписей = Connection.OpenSchema (adSchemaTables);
Пока НаборЗаписей.EOF() = 0 Цикл
ИмяТаблицы = НаборЗаписей.Fields("Table_Name").Value;
Если Найти (ИмяТаблицы, "MSys") = 0 Тогда
Сообщить(ИмяТаблицы);
КонецЕсли;
НаборЗаписей.MoveNext();
КонецЦикла;
КонецПроцедуры
39. dvk09 2 01.03.13 03:03 Сейчас в теме
(38) VadimGorbunov, Спасибо, попробую, отвечу.
Кстати с Аксессовскими файлами из 1С через ODBC работаю, запросы выполняются очень быстро.
Формировать запросы с помощью объекта "Access.Application" не пробовал, да и не знаю, возможно ли это.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот