![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Необходимо подсчитать количество записей внесенных в базу в определенный день и занести значение в ячейку Stringgrid. У меня получился вот такой код:
Код:
Cells[i,1]:=inttostr(form4.ADOQuery1.SQL.Add('Select count(*) from chitateli where [datereg]="datetostr(dn)"')); Беда в том что в ячейках Stringgrid'а появляются одни нули. XE2-Access-ADO. |
#2
|
|||
|
|||
![]() datetostr включена в запрос, но это функция дельфийская и сервер СУБД ее не знает.
Код:
SQL.Add('Select count(*) from chitateli where [datereg]="'+datetostr(dn)+'"'); |
Этот пользователь сказал Спасибо Vocabulary за это полезное сообщение: | ||
Skey (30.04.2012)
|
#3
|
|||
|
|||
![]() Подставила вместо datetostr(dn) строковую переменную, но все равно выводит ноль. Теперь код имеет следующий вид:
Код:
Cells[i,1]:=inttostr(form4.ADOQuery1.SQL.Add('Select count(*) from chitateli where [datereg]="daten"')); |
#4
|
|||
|
|||
![]() Опять та же ошибка. Какая разница что попадает в текст запроса: имя функции или имя переменной - результат будет один - нулевой.
Нулевым результат будет еще и потому, что с ADOQuery так не поступают. После присвоения текста запроса квери надо открыть (потом не забыть закрыть) и взять из него значение: Код:
Form4.ADOQuery1.SQL.Text := 'select count(*) as Cnt from chitateli where [datereg]="'+daten+'"'; Form4.ADOQuery1.Open; Cells[i, 1] := Form4.ADOQuery1. FieldValues['Cnt']; Form4.ADOQuery1.Close; |
Этот пользователь сказал Спасибо Vocabulary за это полезное сообщение: | ||
Skey (30.04.2012)
|
#5
|
|||
|
|||
![]() Спасибо, что объяснили все заработало.
Теперь другая проблема, пытаюсь выбрать из таблицы всех, кто старше 14 лет, зарегистрировавшихся в определенный день. Вот текст запроса: Код:
datevoz:=datetostr(IncYear(Tdate(now), -14)); Form4.ADOQuery1.SQL.Text := 'select count(*) as Cnt from chitateli where [datereg]="'+daten+'" and [dater]>="'+datevoz+'" '; Form4.ADOQuery1.Open; Cells[i,5]:=Form4.ADOQuery1. FieldValues['Cnt']; Form4.ADOQuery1.Close; form4.ADOQuery1.SQL.Clear; |
#6
|
|||
|
|||
![]() Проблема то в чем? Почему не озвучена?
Судя по тексту запроса, вполне адекватный результат должен получится. |
#7
|
|||
|
|||
![]() 0 выводит, а должен отличные от нуля числа выводить.
|
#8
|
|||
|
|||
![]() Синтаксически запрос составлен правильно.
|
#9
|
||||
|
||||
![]() Возможно условия противоречивы.
|