Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Еще раз про Ado

14K
10 декабря 2005 года
VKing
3 / / 10.12.2005
Похожий вопрос здесь задавался на форуме года три назад, но остался без ответа. Может, сейчас повезет?

Для связи с Access создаю ADOTable. В режиме разработки все прекрасно, если подключить любой DataControl - все видно. Запускаю - ошибка: Project raised exeption class EVariantTypeCastError with message 'Couldn't convert variant of type(Null) into type (String)'

Ошибка возникает, если Active установить в true. Если его оставить false, то все прекрасно работает... пока не попытаешься его установить в true (прямо или через метод Open).

Перепробовал все способы - с ADOConnection и без него, с DataSource-DBGrid и без - все едино.

Самое смешное, что, во-первых, если после сбоя нажать Run, то все работает; во-вторых, если сделать Build и потом запустить exe'шник, то тоже все работает без сбоев. То есть ситуация не критическая... но раздражает.

Никто не знает, как от нее избавиться?
294
11 декабря 2005 года
Plisteron
982 / / 29.08.2003
Цитата:
Originally posted by VKing
Для связи с Access создаю ADOTable. В режиме разработки все прекрасно, если подключить любой DataControl - все видно. Запускаю - ошибка: Project raised exeption class EVariantTypeCastError with message 'Couldn't convert variant of type(Null) into type (String)'


Builder не пятый ли?
Если да, то настоятельно рекомендую поставить патч для ADO и патч для самого билдера. Кстати, на всякий случай, какая версия MDAC и Jet?

14K
11 декабря 2005 года
VKing
3 / / 10.12.2005
Цитата:
Originally posted by Plisteron
Builder не пятый ли?
Если да, то настоятельно рекомендую поставить патч для ADO и патч для самого билдера. Кстати, на всякий случай, какая версия MDAC и Jet?



Нет, Builder 6 Enterprise Edition. Правда, диск левый, по крайней мере Help был обрублен - пришлось доставлять. Но больше ни с какими неприятностями не сталкивался. Пока.

Что касается MDAC и Jet... К стыду своему, я вообще не понимаю, о чем речь. Я никогда не работал на С++ с базами (только непосредственно на Access), первый раз попробовал связать их, не влезаю в глубину, и все получилось, кроме этого дурацкого сбоя. Так что я могу посмотреть версии MDAC и Jet... если Вы подскажете, где.

259
12 декабря 2005 года
AlexandrVSmirno
1.4K / / 03.12.2004
Цитата:
Originally posted by VKing
Нет, Builder 6 Enterprise Edition. Правда, диск левый, по крайней мере Help был обрублен - пришлось доставлять. Но больше ни с какими неприятностями не сталкивался. Пока.

Что касается MDAC и Jet... К стыду своему, я вообще не понимаю, о чем речь. Я никогда не работал на С++ с базами (только непосредственно на Access), первый раз попробовал связать их, не влезаю в глубину, и все получилось, кроме этого дурацкого сбоя. Так что я могу посмотреть версии MDAC и Jet... если Вы подскажете, где.


MDAC и Jet это как раз и есть библиотеки реализующие ADO.
Такая ошибка возникает тогда, когда тип поля в таблице access не идентифицируется ADO. Т.е. не понятно к какому типу приводить. Есть три выхода: Либа в DAOTable самому прописать все поля и их типы (но здесь может быть потеря данных), либо поставить версию ado посвежее. Либо взять версию access постарее.

14K
12 декабря 2005 года
VKing
3 / / 10.12.2005
Цитата:
Originally posted by AlexandrVSmirno
MDAC и Jet это как раз и есть библиотеки реализующие ADO.
Такая ошибка возникает тогда, когда тип поля в таблице access не идентифицируется ADO. Т.е. не понятно к какому типу приводить. Есть три выхода: Либа в DAOTable самому прописать все поля и их типы (но здесь может быть потеря данных), либо поставить версию ado посвежее. Либо взять версию access постарее.



Нет, вариант Access постарее меня не устраивает.

Интересно, какой тип не идентифицируется ADO в таблице с двумя полями - счетчик и текстовое? Если счетчик, то почему замена его на числовое тоже не дает результата?

А где можно взять версию ADO посвежее? И как определить, что она посвежее?

294
14 декабря 2005 года
Plisteron
982 / / 29.08.2003
Цитата:
Originally posted by AlexandrVSmirno
MDAC и Jet это как раз и есть библиотеки реализующие ADO.
Такая ошибка возникает тогда, когда тип поля в таблице access не идентифицируется ADO. Т.е. не понятно к какому типу приводить. Есть три выхода: Либа в DAOTable самому прописать все поля и их типы (но здесь может быть потеря данных), либо поставить версию ado посвежее. Либо взять версию access постарее.


Jet -- OILE-библиотека доступа к файлам *.mdb, обычно ставится вместе с M$ Access ;). Если Access установлен (и если он свежий), значит, Jet наличествует, причём нужной для данного mdb-файла версии.
MDAC -- Microsoft Data Access Components, т.е. собственно библиотеки OLEDB, ODBC и ADO, в том числе OLEDB-провайдер и ODBC-драйвер для Jet.
Взять из можно с мелкомягкого сайта, но там сейчас ввели типа лицензионный контроль виндов. Попробуй вот эту ссылочку

294
14 декабря 2005 года
Plisteron
982 / / 29.08.2003
Ещё три вещи хочу сказать...
1) Jet is deprecated, т.е. Micro$oft развивать его не будет. Новые версии Jet (буде таковые родятся) будут не более чем исправлениями найденных косяков, новых фенечек не появится. Посему Micro$oft рекомендует переходить на MSDE (это такая карманная верся M$ SQL Server)
2) На больших таблицах (например, в полмиллиона записей) Jet/Access начинает чудовищно тормозить, так что для больших проектов он неприемлем (т.е. хуже BDE/Paradox, я проверял). Косяки с DDL в Jet/Access появляются на гораздо более мелких таблицах.
3) Исходя из вышесказанного от себя -- IMHO -- рекомендую: по возможности, перейди с Jet на Firebird, например, или на PostgreSQL (про Oracle уж промолчу, хотя, имхо, Oracle rulezzz foreva).
7.3K
14 декабря 2005 года
nirvikalpa
20 / / 25.01.2005
Привет.

Есть код под рукой,
через ADO, коннектимся к БД сделанной в Access'e,
по имени и полному пути к БД. настраиваются масссивы TADOTable, TDataSours & TDBGrid'ов. Все компоненты включаю TADOConnection создютя и настраиваются динамически (ран-тайм). если интересно закачайте прикрепление. Незнаю может это поможет...

Д.С.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог