Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

с ума схожу... [D6, IB5.x, dBase, FoxPro]


Olivka ©   (2003-01-10 22:06:00) 

Дорогие!
При запуске программы, а конкретно на месте, где таблице я Active Open возникает ошибка:

project1.exe raized exception class EVariantError
with message "Invalid variant type conversion".
Process stopped. Use Step or Run to continue.

Я использую компонент tADOtable ДЛя доступа к таблице *.dbf.

не знаю, относится это к делу, или нет, но при установке MDAC все время на одном и том же месте (надпись я не успеваю прочитать - что-то типа windows устанавливает компоненты, необходимые для ... (все по-русски)) rundll32 совершает недопустимую операцию и закрыта будет. Я закрываю и установка проходит дальше вполне нормально (при этом в другом окне мелькают многочисленные устанавливающиеся компоненты). После установки поверх этого дела MDAC 2.7 ошибка в программе выдается на том же месте, но в уточняющей интерпретации -

project1.exe raized exception class EVariantTypeCastError with message
"Could not convert variant of type (Null) into type (String)"
Process stopped. Use Step or Run to continue.

Надо сказать, что я работаю над этой программой с неделю и успела перекачать с помощью этого отладочного варианта день назад на сервер 2 таблицы dbf, эта ошибка не возникала.
Если сделать проект начисто и добавить на форму tDBGrid, tDataSource и tADBtable то ошибка возникает на table.active:=true, а потом, при продолжении в гриде нормально показывается таблица dbf.
Что с этим делать-то мне?


sniknik   (2003-01-12 18:19:00) [1]

> почему в 2.7 jet-a нет
вопрос к микрософту, считают наверное лутше так устанавливать только то что тебе нужно.
> А как переустановить отдельно jet
скачать оттуда же откуда mdac брали с микрософта. ищи там файл Jet40SP6_9xNT.exe. (это под 95/98-е и NT, под 2000/XP другие но этот тоже ставится) с языком тоже различия (другие файлы, смотри что тебе надо)

кстати ODBC-шный драйвер при установке jet перекрывается возможно после переустановки ошибка исчезнет.


Olivka   (2003-01-12 13:46:00) [2]

Провайдер обычно для dbf - микрософт OLE DB для ODBC. Вчера попробовала поставить вместо него jet, ошибка исчезла. А почему в 2.7 jet-a нет? А как переустановить отдельно jet?


sniknik   (2003-01-11 23:33:00) [3]

к таблице *.dbf. а провайдера какого используеш? если к примеру jet то в MDAC 2.7 его нет, и сколько не переставляй ошибку возникшую в jet не исправиш. (если она там возникла).

попробуй еще и jet переустановить. MDAC 2.5 не поможет если уже более поздняя версия стоит. (а jet в нем включон)

(это на случай если вы его не ставите, в вопросе и после ни слова об этом)


Olivka   (2003-01-11 21:48:00) [4]

Я покопалась в конфах, говорят, это указано в сервиспаке, что эта проблема решена. Я установила второй сервиспак, ничего не помогло. Что ж теперь, опять бде использовать... Сегодня дома проверила на машине. ТА же штука. Как же другие работают?


Big_Rom   (2003-01-11 14:49:00) [5]

Да можно сойти с ума :))
жаль немогу помочь с через Адо неработал. Но если исходить
из последнего собщения очевидно дело в АДО там надо и копать.


Olivka   (2003-01-11 11:24:00) [6]

ХОтела добавить, при использовании вместо АДО БДЕ, при открытии тех же данных ошибка не возникает. Не возникала она и с АДо до сего дня :(


Olivka   (2003-01-11 11:21:00) [7]

Все дело в том, что эта ошибка возникает еще до всяких присвоений и вообще в самом начале программы, при присвоении .Active:=true. (если это стоит в дизайнтайме, то ошибка возникает при создании модуля данных, или формы, содержащей эти компоненты) т.о. вся обработка уже после этого происходит.


TTCustomDelphiMaster   (2003-01-10 22:25:00) [8]

Если в программе используется свойство FieldValues попробуй его заменить на FieldByName(..).AsString или делай проверку на null перед присвоением Variant"a строке.


Наверх

Титульная страница Поиск, карта сайта Написать письмо