C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Помогите устранить ошибку с ADOTable
nut
Отправлено: 25.06.2006, 23:39


Не зарегистрирован







Помогите!
Есть форма, на ней ADOTable она подключена к базе Access, но при компиляции выскакивает ошибка

First chance exception at $7C81EB33. Exception class EVariantTypeCastError with message 'Could not convert variant of type (Null) into type (String)'. Process Project1.exe (3912)

и указывает на строку в файле Forms.hpp

/* TCustomForm.Create */ inline __fastcall virtual TForm(Classes::TComponent* AOwner) : TCustomForm(AOwner) { }

хотя при простом запуске проги она не выскакивает и когда Table была тоже не выскакивала но Table медлено работает поэтому оставить немогу, хочу разобратся что за ошибка и как устранить, при чем выскакивает когда в ADOTable Enable = true.
nut
Отправлено: 27.06.2006, 23:58


Ученик-кочегар

Группа: Участник
Сообщений: 22



оказалось надо было просто кликнуть правой клавишей и добавить в ADOTable все поля
olegenty
Отправлено: 28.06.2006, 08:33


Ветеран

Группа: Модератор
Сообщений: 2412



микрорекомендация
1. НИКОГДА не пользоваться компонентами TXXXTable
2. НИКОГДА не использовать СУБД Access в приложениях сложнее телефонного справочника
nut
Отправлено: 28.06.2006, 15:41


Ученик-кочегар

Группа: Участник
Сообщений: 22



QUOTE
микрорекомендация
1. НИКОГДА не пользоваться компонентами TXXXTable
2. НИКОГДА не использовать СУБД Access в приложениях сложнее телефонного справочника


Тогда какими рекомендуете компонентами пользоватся и почему и какую СУБД
olegenty
Отправлено: 28.06.2006, 15:57


Ветеран

Группа: Модератор
Сообщений: 2412



СУБД — зависит от задачи. любой лёгкости, НО клиент-серверную.
компоненты — тоже почти любые, кроме BDE, но никогда те, что подразумевают работу с таблицей, а только те, что работают с результатом запроса (Query).
при этом НИКОГДА не писать в Query select * from <нечто> за теми редкими искулючениями, когда речь идёт о микросправочных таблицах типа микроклассификаторов и пр.
Konstantine
Отправлено: 06.07.2006, 23:57


Мастер участка

Группа: Модератор
Сообщений: 545



ну почему? для подвижной программы (т.е. распространяется без сложных установок СУБД) лучше Acceess-а я не нашёл.
П.С.: глюк в связке ADO — Access нашёл лишь один — при большм кол-ве записей "SELECT TOP 5 Count(ID) FROM MyTable" возвращает 6 записей wink.gif
AVC
Отправлено: 07.07.2006, 08:23


Ветеран

Группа: Модератор
Сообщений: 1583



QUOTE (Konstantine @ 06/07/2006, 22:57)

П.С.: глюк в связке ADO — Access нашёл лишь один — при большм кол-ве записей "SELECT TOP 5 Count(ID) FROM MyTable" возвращает 6 записей wink.gif

Вообще то он (и не только он) возвращает одну запись. Top применяется для ограничения результата. Т.е. сначала count(*) считает мощность таблицы, возвращает одну строку, на которую накладывается ограничение первые 5 строк. А что бы получить 5 надо было писать
Select count(*) From (Select top 5 * From test);

Вернуться в Работа с базами данных в C++Builder