Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 18.12.2011
Сообщений: 5

ADO,SQL-Count (Ошибка при подсчёте записей)

01.03.2012, 09:49. Показов 3134. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую всех, у меня возникла проблема.

Использую компонент ADOQuery.
Делаю запрос на подсчёт количество студентов в таблице.
Code
1
2
3
4
5
6
7
8
9
10
var  allRecord:integer;
Begin
  allRecord:=0;
  DataModule_0.ADO_Query_Student.Close;
  DataModule_0.ADO_Query_Student.SQL.Clear;
  DataModule_0.ADO_Query_Student.SQL.Add('SELECT count(*) as cnt from Students');
  DataModule_0.ADO_Query_Student.Open;
  allRecord := allRecord + DataModule_0.ADO_Query_Student.FieldByName('cnt').AsInteger;
  Label1.Caption:=IntToStr(allRecord);
End;
Выдаёт ошибку, что не найден первичный ключ(то есть поле первичного ключа).


Помогите пожалуйста, заранее спасибо
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.03.2012, 09:49
Ответы с готовыми решениями:

ADO+MS SQL: как узнать количество обработанных строк при insert в ADO Query?
Добрый день. При выполнении запроса в MS SQL insert into ..(,,) select 0,20,'Text' where not exists (select 1 from .. where...

Удаление записей Delphi - Ado - Access через SQL Between
Доброго времени суток. БД - для учета школьных олимпиад. Нужно написать запрос для удаления олимпиад по каждому уч. году. Пример ...

Ошибка при выводе в DBgrid, ADO
На форме стоит стоит два Dblookupcombobox`a со значением цех и станок, цех связан со станками мастерфилдом, тобишь при выборе цеха...в...

6
 Аватар для reiteriX
685 / 241 / 13
Регистрация: 02.04.2009
Сообщений: 692
01.03.2012, 10:09
Цитата Сообщение от Never74 Посмотреть сообщение
Приветствую всех, у меня возникла проблема.

Использую компонент ADOQuery.
Делаю запрос на подсчёт количество студентов в таблице.
Code
1
2
3
4
5
6
7
8
9
10
var  allRecord:integer;
Begin
  allRecord:=0;
  DataModule_0.ADO_Query_Student.Close;
  DataModule_0.ADO_Query_Student.SQL.Clear;
  DataModule_0.ADO_Query_Student.SQL.Add('SELECT count(*) as cnt from Students');
  DataModule_0.ADO_Query_Student.Open;
  allRecord := allRecord + DataModule_0.ADO_Query_Student.FieldByName('cnt').AsInteger;
  Label1.Caption:=IntToStr(allRecord);
End;
Выдаёт ошибку, что не найден первичный ключ(то есть поле первичного ключа).


Помогите пожалуйста, заранее спасибо
а если так?

Delphi
1
2
3
4
5
6
7
Begin
  DataModule_0.ADO_Query_Student.Close;
  DataModule_0.ADO_Query_Student.SQL.Clear;
  DataModule_0.ADO_Query_Student.SQL.Add('SELECT count(*) as cnt from Students');
  DataModule_0.ADO_Query_Student.Open; 
  Label1.Caption:=IntToStr(ADO_Query_Student.RecordCount);
End;
1
39 / 71 / 10
Регистрация: 03.02.2012
Сообщений: 362
01.03.2012, 10:27
Цитата Сообщение от reiteriX Посмотреть сообщение
а если так?

Delphi
1
2
3
4
5
6
7
Begin
  DataModule_0.ADO_Query_Student.Close;
  DataModule_0.ADO_Query_Student.SQL.Clear;
  DataModule_0.ADO_Query_Student.SQL.Add('SELECT count(*) as cnt from Students');
  DataModule_0.ADO_Query_Student.Open; 
  Label1.Caption:=IntToStr(ADO_Query_Student.RecordCount);
End;
Грузчик это твоя судьба.
ADO_Query_Student.RecordCount - выводит количество СТРОК, что вернет запрос. В даном случае это 1.
1
 Аватар для reiteriX
685 / 241 / 13
Регистрация: 02.04.2009
Сообщений: 692
01.03.2012, 10:55
Невнимательность меня погубит)

Ну тогда:
Delphi
1
2
3
4
5
6
7
Begin
  DataModule_0.ADO_Query_Student.Close;
  DataModule_0.ADO_Query_Student.SQL.Clear;
  DataModule_0.ADO_Query_Student.SQL.Add('SELECT count(*) as cnt from Students');
  DataModule_0.ADO_Query_Student.Open;
  Label1.Caption:=DataModule_0.ADO_Query_Student.FieldByName('cnt').AsString;
End;


perepe4a, лучше бы еще в предыдущем посте помог человеку)
1
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
01.03.2012, 10:56
Вероятно, у Вас в дизайне в этом квери определены поля (делается обычно при подключении датасета к гриду и настройке грида в "ручном" режиме).
Не трогайте этот запрос, а для подсчета количества записей используйте другой TADOQuery

Если у Вас акцес, то определить кол-во записей можно просто как TDataSet.RecordCount -см. пост [3]
1
 Аватар для reiteriX
685 / 241 / 13
Регистрация: 02.04.2009
Сообщений: 692
01.03.2012, 11:00
Если данные из Students есть в другом Query, то лучше сделать RecordCount к тому Query и тогда запрос не нужен вовсе.

Но если данных нет, то "Count(*)" и значение в Label.
1
0 / 0 / 0
Регистрация: 18.12.2011
Сообщений: 5
02.03.2012, 09:22  [ТС]
Всем спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.03.2012, 09:22
Помогаю со студенческими работами здесь

Ошибка при добавлении данных: Mysql + ADO
Mysql+delphi.ado. При попытке добавить данные возникает проблема . Ключевые поля заполнены, но судя по ошибке, delphi ругается на то,что...

Ошибка при работе с хранимыми процедурыми (ADO)
Нужна помощь в следующей ситуации: У меня есть хранимая процедура mssql server 7.0, один параметр на входе и 1 на выходе, Применяю...

Ошибка в запросе from при соединении с помощью ADO
Если кто-нибуть знает, то помогите!Почему при соединении с помощью ADO в Delphi и используя TADOConnection,TADOTable,TADODataSourse, ...

Delphi+MySQL+ADO - непонятная ошибка при чтении данных
Есть система, работающая с СУБД MySQL. Она хранит там свои внутренние данные. Для этой системы вручную создается база данных,...

RAD Studio XE2. Ошибка при выборке через ADO
Добрый день! Появилась проблема в RAD Studio XE 2. Проблема в том, что когда я создаю FireMonkey HD Desktop Application, добавляю Data...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru