Вопрос № 125487: Уважаемые эксперты, при соединении с MS Access с помощью ADO компонентов TADOConnection и TADOTable (именно при установлении метода Active компонентаTADOTable) выдает ошибку: Неопознанная ошибка, и так постоянно, помогите пожалуйста неведующему челов...
Вопрос № 125.487
Уважаемые эксперты, при соединении с MS Access с помощью ADO компонентов TADOConnection и TADOTable (именно при установлении метода Active компонентаTADOTable) выдает ошибку: Неопознанная ошибка, и так постоянно, помогите пожалуйста неведующему человеку! Заранее очень благодарен!
Отвечает: Соловьев Евгений
Здравствуйте, Кончаков Роман Юрьевич!
Интересно,а что вы сделали все-таки, чтоб всё прошло как надо?
Вначале подключите TADOConnection(как сказано в книге,чтоб быть точным =)):
-надо дважды щёлкнуть по строке ConnectionString и перед нами открывается окно.
Здесь перед нами стоит выбор:
1. Использовать специальный файл (Use Data Link File);
2. Использовать строку подключения (Use Connection String).
Второе, на мой взгляд, более предпочтительно, поэтому я покажу, как создать строку
подключения. Для этого щёлкаем кнопку Build и перед нами открываеться ещё одно окно.
На закладке Provider перечислены все доступные ADO драйверы доступа к базам
данных. Если какого-то драйвера нет, то можно попробовать выделенный по умолчанию
«Microsoft OLE DB Provider for ODBC Drivers». Этот драйвер позволяет получить доступ к
базе данных через ODBC драйвер, которые есть к большинству существующих баз
данных (единственное, он может быть не установленным на твоём компьютере).
В нашем случае, для доступа к базам данных MS Access используется драйвер
«Microsoft Jet OLE DB Provider». Такой драйвер обязательно устанавливается на машину
вместе с MS Office, а в последних версиях Windows он устанавливается по умолчанию.
На моей машине установлено сразу две версии этого драйвера, поэтому я выберу
более новый - «Microsoft Jet 4.0 OLE DB Provider». После этого нажимаем кнопку Next,
или переходим на закладку «Connection».
Вид закладки Connection зависит от выбранного драйвера.
Первым делом, в этом окне надо ввести имя (если надо то и путь) базы данных в
строку «Select or enter a database name». Если база данных будет располагаться в той же
директории, что и запускной файл, то путь указывать не надо. Я вообще советую хранить
базы в одной директории с запускными файлами. Если ты будешь держать файлы отдельно от запускного, то тебе придётся указывать полный путь, а это может вызвать
проблемы при переносе программы на другой компьютер. Ведь там программа будет
искать базу по указанному пути, который может измениться. Если хочешь держать файлы в
другой директории, то указывай относительный путь относительно текущей директории.
Чтобы легче было выбрать файл базы данных необходимо щёлкнуть по кнопке с
точками справа от строки ввода.
Помимо этого нам надо заполнить следующие поля:
1. Имя пользователя (User name), можно оставить по умолчанию, если не
заданно иное при создании базы в MS Access;
2. Пароль (Password) – если база имеет пароль, то его необходимо указать;
3. Пустой пароль (Blank password) – если пароль не нужен, то здесь желательно
поставить галочку;
4. Позволять сохранять пароль (Allow saving password). Если здесь поставить
галочку, то пароль может быть сохранён.
Как только выберешь базу данных, нажми кнопку Test Connection, чтобы
протестировать соединение. Если всё указано правильно, то ты должен увидеть
сообщение «Test connection succeeded». Всё, можно нажать ОК, чтобы закрыть окно
создания строки подключения и ещё раз ОК, чтобы закрыть окно редактора строки
подключения.
Теперь в свойствах компонента ADOConnection отключи свойство LoginPrompt,
выставив его в False. Это нужно для того, чтобы при каждом обращении к базе нас не грузили окном ввода пароля. А теперь выставим свойство Connected в True, чтобы
произошло соединение с базой.
На этом соединение можно считать оконченным.
В компоненте TADOTable тоже есть свойство ConnectionString и его так же можно
настраивать. Почему «можно»? Да потому что, чтобы этого не делать мы поставили на
форму компонент ADOConnection. Теперь мы можем указать у нашего компонента TADOTable в свойстве Connection, созданный нами компонент соединения с базой данных.
Щёлкни по выпадающему списку в свойстве Connection и выбери там единственный
пункт ADOConnection1. Теперь нам не надо заполнять свойство ConnectionString.
Теперь в свойстве TADOTable нужно выбрать имя нашей таблицы. Всё,
таблица и соединение указаны, можно подключатся. Для этого выставь свойство Active в
true.
Вот так! УДАЧИ! =)
Ответ отправил: Соловьев Евгений (статус: 1-ый класс)
Ответ отправлен: 01.03.2008, 18:38 Оценка за ответ: 5 Комментарий оценки: спасибо за помощь, все идет но почему-то одна из таблиц ни как не хочет подключаться.
Отвечает: Genia007
Здравствуйте, Кончаков Роман Юрьевич!
Убедитесь, что в свойстве ADOTable.Connection присутствует ADOConnection1 и в свойстве ADOTable.TableName есть название таблицы, а уже потом запускайте метод ADOTable.Active, а ещё лучше ADOTable.Active запускать программно, тогда можно пошагово найти источник ошибки. У меня таких проблем не возникало, если и возникает ошибка, то в сообщение о ней приводится её описание.
Ответ отправил: Genia007 (статус: 7-ой класс)
Ответ отправлен: 03.03.2008, 13:19 Оценка за ответ: 5