Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как присвоить результат запроса select count (*) from mytable? [D7, IB6.x]


Sanya_BBB ©   (2006-10-09 16:20:00) 

Как присвоить переменной результат запроса select count (*) from mytable?


Desdechado   (2006-10-09 22:24:00) [1]

> Насколько я знаю что функция COUNT возвращает ЧИСЛО выбранных рядов в результате запроса.
Ничего подобного. Функция COUNT возвращает количество строк, удовлетворяющих ограничениямв запросе. А не число строк, вернувшихся из другого запроса.
Потому как SELECT Count(*) ... - это тоже запрос, запрос к серверу, а не к результату выборки.
Поэтому если тебе нужно количество, пишешь один запрос. Если тебе нужны сами записи, пишешь другой запрос.

Короче, учи SQL, тогда не будет никаких "Насколько я знаю".


Виталий Панасенко   (2006-10-09 21:55:00) [2]

См.
> Desdechado ©   (09.10.06 16:21) [1]


ТОлько ОБЯЗАТЕЛЬНО в текст datamodule2.IBQueryipwork.SQL.Text впиши текст запроса из твоего вопроса (Каламбур, блин!)


Zacho   (2006-10-09 21:54:00) [3]

Сделать это очень просто: выполнить запрос select count (*) from mytable
У тебя же явно выполняется какой-то другойзапрос.
Поэтому я тебя и прошу: приведи здесь текст запроса. Не какой-то абстрактный, а реальный, из твоей программы.


Sanya_BBB   (2006-10-09 21:44:00) [4]

> Zacho ©   (09.10.06 21:38) [14]

Так мне и ненадо никаких ID. Насколько я знаю что функция COUNT возвращает ЧИСЛО выбранных рядов в результате запроса. То есть она возвращает количество записей выбранных по запросу. Вот именно это цифру (количество записей) мне и нужно получить и присвоить переменной  через запрос select count (*) from mytable. Только я никак не пойму как это сделать.


Zacho   (2006-10-09 21:38:00) [5]

Ну в конце концов приведи точный текст своего запроса, ибо запрос select count (*) from mytable никаких ID (а так же других полей) возвращать не может по определению.


Sanya_BBB   (2006-10-09 21:32:00) [6]

Zacho ©   (09.10.06 21:20) [12]

>Fields[0]

Query.filelds[0] - у меня автоинкрементное поле (ID)
Query.fields[1] - у меня поле ФИО.

И если я пишу query.Fields[1].AsString то результат у меня не количество записей в таблице а "ИВАНОВ". Я вообще не понимаю при чем сдесь этот метод. Мне нужно сделать как в  Table1.RecordCount только у компонента Query через запрос select count.


Zacho   (2006-10-09 21:20:00) [7]

Так возьми вместо 0 подставь индекс нужного тебе поля, или см. [8]
Кстати, запрос который ты приводишь select count (*) from mytable никак не может возвращать ID, просто потому что никакое ID в нём не выбирается, и в случае именно с этим запросом Fields[0] и будет нужным тебе полем.


Sanya_BBB   (2006-10-09 21:15:00) [8]

Скорей всего мы недопонимаем друг друга.

мне нужно через Query : запросом select count (*) from mytable получить число(количестыо записей), и присвоить их переменной. Но я не понимаю причем сдесь этот способ: x:=query.Fields[0].AsInteger; который возвращает значение нулевого поля, выделенной записи.


Desdechado   (2006-10-09 20:18:00) [9]

Странный у тебя каток, катится не туда.
Может, рулевого сменить?


Sanya_BBB   (2006-10-09 20:16:00) [10]

TO ALL

да не катит такой способ

a:=datamodule2.IBQueryipwork.Fields[0].AsInteger

он выдает значение поля ID, это равносильно что написать так:

a:=datamodule2.ibqueryipworkID.Asinteger;


zorik   (2006-10-09 17:24:00) [11]

select count (*) nfrom mytable

a := FieldByName('n').Value


saxon   (2006-10-09 17:20:00) [12]


> Sergey13 ©   (09.10.06 16:47) [5]

+
count = 1 & Id #1 = 1 :)


Rule   (2006-10-09 17:18:00) [13]

Sergey13 ©   (09.10.06 16:47) [5]
адназначна


Sergey13   (2006-10-09 16:47:00) [14]

> [4] Sanya_BBB   (09.10.06 16:43)

Значит запрос у тебя не
> select count (*) from mytable


Sanya_BBB   (2006-10-09 16:43:00) [15]

Делааю так и мне выдает значение поля ID

datamodule2.IBQueryipwork.Fields[0].AsInteger


Desdechado   (2006-10-09 16:31:00) [16]

query - компонент для запроса


Sanya_BBB   (2006-10-09 16:22:00) [17]

Что то не совсем понял...


Desdechado   (2006-10-09 16:21:00) [18]

x:=query.Fields[0].AsInteger;


Наверх

Титульная страница Поиск, карта сайта Написать письмо