Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ADOQuery.RecordCount, Ошибка 
V
    Опции темы
Rodman
Дата 8.11.2006, 14:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 22
Всего: 122



Дароф...

Мне необходимо выдать отчет по количеству записей в таблицах...

пишу...
Код

    dmMain.GetAllUserDetails.Open;
    Result:='Table "contactstable" has      '+IntToStr(dmMain.GetAllUserDetails.RecordCount)+' records';
    dmMain.GetAllUserDetails.Close;
    dmMain.GetOrgDetailsList.Close;
    dmMain.GetOrgDetailsList.Open;
    Result:=Result+'Table "organisationstable" has '+IntToStr(dmMain.GetOrgDetailsList.RecordCount)+' records';
    dmMain.GetOrgDetailsList.Close;
    dmMain.GetAllProductDetailsList.Close;
    dmMain.GetAllProductDetailsList.Open;
    Result:=Result+'Table "producttable" has       '+IntToStr(dmMain.GetAllProductDetailsList.RecordCount)+' records';
    dmMain.GetAllProductDetailsList.Close;
    Result:=EnCrypter(Result);


выдает ошибку - мол
dbExpress Error: operation not supported.

но если оставляю только первый подсчет
Код

    dmMain.GetAllUserDetails.Open;
    Result:='Table "contactstable" has      '+IntToStr(dmMain.GetAllUserDetails.RecordCount)+' records';
    dmMain.GetAllUserDetails.Close;
    dmMain.GetOrgDetailsList.Close;
    {dmMain.GetOrgDetailsList.Open;
    Result:=Result+'Table "organisationstable" has '+IntToStr(dmMain.GetOrgDetailsList.RecordCount)+' records';
    dmMain.GetOrgDetailsList.Close;
    dmMain.GetAllProductDetailsList.Close;
    dmMain.GetAllProductDetailsList.Open;
    Result:=Result+'Table "producttable" has       '+IntToStr(dmMain.GetAllProductDetailsList.RecordCount)+' records';
    dmMain.GetAllProductDetailsList.Close;
    Result:=EnCrypter(Result);}


все нормально считает...

В чем подвох??? smile  smile  smile 

Спасибо...
PM MAIL WWW Skype GTalk YIM MSN   Вверх
Vas
Дата 8.11.2006, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 830
Регистрация: 29.6.2005
Где: Stavropol region

Репутация: 23
Всего: 28



А одним запросом не проще ли посчитать?
Код

select count(*) from contactstable
union
select count(*) from organisationstable
union
select count(*) from producttable


Что-то типа такого, синтаксис не проверял, думаю прверишь сам  smile 



--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
PM MAIL   Вверх
ТоляМБА
Дата 8.11.2006, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Котэ
***


Профиль
Группа: Завсегдатай
Сообщений: 1607
Регистрация: 15.12.2004

Репутация: 3
Всего: 252



Vas, тогда уж 
Код
Union ALL


Цитата
По умолчанию при использовании операции UNION не возвращаются повторяющиеся записи; однако включение в инструкцию предиката ALL обеспечивает возврат всех записей. 
 А то всякое бывает - будет одинаковое кол-во записей в двух таблицах и выведет только два результа вместо трёх  smile 
PM   Вверх
Rodman
Дата 8.11.2006, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 22
Всего: 122



Vas, cинтаксис в поряде... в MySQL запрос работает нормально...

но я не могу из него записи выташить...

если пишу
Код

dmMain.ADOGlobe.Open;
result:=dmMain.ADOGlobe.Fields.Fields[0].asstring;


то выдает бок типа
Access violation at address ... 

как достать???

Добавлено @ 14:37 
ТоляМБА,
Код

Union ALL


каждый раз писать???


PM MAIL WWW Skype GTalk YIM MSN   Вверх
Vas
Дата 8.11.2006, 14:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 830
Регистрация: 29.6.2005
Где: Stavropol region

Репутация: 23
Всего: 28



ТоляМБА, согласен.


Rodman, а не много ли Fields в строке:
Код

result:=dmMain.ADOGlobe.Fields.Fields[0].asstring;

может будет правильнее:
Код

result:=dmMain.ADOGlobe.Fields[0].asstring;


Добавлено @ 14:47 
Цитата(Rodman @  8.11.2006,  14:36 Найти цитируемый пост)

каждый раз писать???


Каждый раз smile


--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
PM MAIL   Вверх
Rodman
Дата 8.11.2006, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 22
Всего: 122



Цитата(Vas @  8.11.2006,  14:46 Найти цитируемый пост)
Rodman, а не много ли Fields в строке:
Выделить всёкод Pascal/Delphi
1:
    
result:=dmMain.ADOGlobe.Fields.Fields[0].asstring;

может будет правильнее:
Выделить всёкод Pascal/Delphi
1:
    
result:=dmMain.ADOGlobe.Fields[0].asstring;


тут все в поряде... оба варианта работают идентично...

Добавлено @ 14:58 
Все нормально... ПАСИБО...

С именем в одном месте попутал...

Работает..
PM MAIL WWW Skype GTalk YIM MSN   Вверх
Rodman
Дата 8.11.2006, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 22
Всего: 122



Блин опять ругается...

написал запрос
Код

select count(*) from contactstable
union All
select count(*) from organisationstable
union All
select count(*) from producttable



первый раз заработало, но не пойму че поменял, а оно ругаться начало на 
Код

result:=dmMain.ADOGlobe.Fields.Fields[0].asstring;


выдает

List index out of bounds... 

почему за список выходит не пойму... Че делать???
PM MAIL WWW Skype GTalk YIM MSN   Вверх
Rodman
Дата 8.11.2006, 18:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 22
Всего: 122



smile

Добавлено @ 18:18 
Код

result:=dmMain.ADOGlobe.Fields.Fields[0].asstring;
result:=dmMain.ADOGlobe.Fields.Fields[1].asstring;//индекс более 0 выдают ошибки


как исправить???
PM MAIL WWW Skype GTalk YIM MSN   Вверх
superVad
Дата 8.11.2006, 18:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 735
Регистрация: 6.4.2006
Где: Черкассы, Украина

Репутация: 3
Всего: 15



ну у тебя запрос всего одно поле выдает, что ты из второго достать хочеш? smile 

Цитата

select count(*) from contactstable
union All
select count(*) from organisationstable
union All
select count(*) from producttable


судя по запросу - получается таблица с одним полем и тремя записями

Это сообщение отредактировал(а) superVad - 8.11.2006, 18:27
PM MAIL   Вверх
Rodman
Дата 8.11.2006, 18:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 22
Всего: 122



Цитата(superVad @  8.11.2006,  18:25 Найти цитируемый пост)
ну у тебя запрос всего одно поле выдает, что ты из второго достать хочеш? smile  


в MySQL выдает 3 отдельных значения... а в делфях ругается...

а нельзя ли как нить посмотреть все значения запроса???


Это сообщение отредактировал(а) Rodman - 8.11.2006, 18:39

Присоединённый файл ( Кол-во скачиваний: 7 )
Присоединённый файл  Res.JPG 12,23 Kb
PM MAIL WWW Skype GTalk YIM MSN   Вверх
superVad
Дата 8.11.2006, 18:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 735
Регистрация: 6.4.2006
Где: Черкассы, Украина

Репутация: 3
Всего: 15



както так наверно надо

Цитата

dmMain.ADOGlobe.first;
result_1:=dmMain.ADOGlobe.Fields.Fields[0].asstring;
dmMain.ADOGlobe.next;
result_2:=dmMain.ADOGlobe.Fields.Fields[0].asstring;
dmMain.ADOGlobe.next;
result_3:=dmMain.ADOGlobe.Fields.Fields[0].asstring;
...


не уверен, что в ADOQuery есть методы first и next, но аналоги быть должны

Это сообщение отредактировал(а) superVad - 8.11.2006, 18:35
PM MAIL   Вверх
Rodman
Дата 8.11.2006, 18:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 22
Всего: 122



superVad, то что надо... сенкс smile 
PM MAIL WWW Skype GTalk YIM MSN   Вверх
ТоляМБА
Дата 9.11.2006, 06:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Котэ
***


Профиль
Группа: Завсегдатай
Сообщений: 1607
Регистрация: 15.12.2004

Репутация: 3
Всего: 252



superVad, а если 2000 записей?  smile 

Я всегда пользуюсь циклом:
Код

ADOQuery1.First;
while not ADOQuery1.EOF do begin
a[i]:=ADOQuery1.Fields.Fields[0].asstring;
ADOQuery1.Next;
Inc(i);
end;

"А" ессно динамический массив, нут тут в общих словах, я его описывать не стал, просто передал суть.
PM   Вверх
superVad
Дата 9.11.2006, 09:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 735
Регистрация: 6.4.2006
Где: Черкассы, Украина

Репутация: 3
Всего: 15



ТоляМБА, все верно  smile 

просто в данном случае количество записей извесно и неболшое
PM MAIL   Вверх
Rodman
Дата 9.11.2006, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 22
Всего: 122



Цитата(superVad @  9.11.2006,  09:39 Найти цитируемый пост)
просто в данном случае количество записей извесно и неболшое

это правда...
ТоляМБА, я всегда циклом проверяю...

Но на картинке что я выложил видно, что результатов столько сколько такблиц, но почему то доступно только нулевое поле...
PM MAIL WWW Skype GTalk YIM MSN   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.1822 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.