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 записей
|
|
AVC |
Отправлено: 07.07.2006, 08:23 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
QUOTE (Konstantine @ 06/07/2006, 22:57) |
П.С.: глюк в связке ADO — Access нашёл лишь один — при большм кол-ве записей "SELECT TOP 5 Count(ID) FROM MyTable" возвращает 6 записей |
Вообще то он (и не только он) возвращает одну запись. Top применяется для ограничения результата. Т.е. сначала count(*) считает мощность таблицы, возвращает одну строку, на которую накладывается ограничение первые 5 строк. А что бы получить 5 надо было писать
Select count(*) From (Select top 5 * From test); |
|