Как посчитать кол-во строк в базе данных?
Здравствуйте, всем! Такой вот вопрос: у меня имеется база данных с таблицей, куда пишется информация о долгах, т.е. ключевое поле (счетчик), дата заема (тип дата), дата возращения (тип дата), кто дает долг (тип текст) и сумма долга (тип число). Хотелось бы дополнительно написать функцию, которая при открытии программы узнает по текущей дате нужно ли на текущую дату возращать долги. Я думаю это реализовать так: с поля дата_возращения_долга брать все даты, сгонять их в какой - либо массив, а потом уже сделать проверку. Но вот такая незадача: чтобы задать размер массива одномерного, мне надо знать сколько элементов там будет, то есть, соответсвенно, сколько там у меня строк в данной таблице. Заранее спасибо.
Цитата:
Originally posted by senator
Здравствуйте, всем! Такой вот вопрос: у меня имеется база данных с таблицей, куда пишется информация о долгах, т.е. ключевое поле (счетчик), дата заема (тип дата), дата возращения (тип дата), кто дает долг (тип текст) и сумма долга (тип число). Хотелось бы дополнительно написать функцию, которая при открытии программы узнает по текущей дате нужно ли на текущую дату возращать долги. Я думаю это реализовать так: с поля дата_возращения_долга брать все даты, сгонять их в какой - либо массив, а потом уже сделать проверку. Но вот такая незадача: чтобы задать размер массива одномерного, мне надо знать сколько элементов там будет, то есть, соответсвенно, сколько там у меня строк в данной таблице. Заранее спасибо.
Здравствуйте, всем! Такой вот вопрос: у меня имеется база данных с таблицей, куда пишется информация о долгах, т.е. ключевое поле (счетчик), дата заема (тип дата), дата возращения (тип дата), кто дает долг (тип текст) и сумма долга (тип число). Хотелось бы дополнительно написать функцию, которая при открытии программы узнает по текущей дате нужно ли на текущую дату возращать долги. Я думаю это реализовать так: с поля дата_возращения_долга брать все даты, сгонять их в какой - либо массив, а потом уже сделать проверку. Но вот такая незадача: чтобы задать размер массива одномерного, мне надо знать сколько элементов там будет, то есть, соответсвенно, сколько там у меня строк в данной таблице. Заранее спасибо.
делай :
Код:
SELECT * FROM table WHERE DATE_DOLG_VOZVRAT<=:date
вот тебе и массив :)
Цитата:
Originally posted by mainigor
делай :
вот тебе и массив :)
делай :
Код:
SELECT * FROM table WHERE DATE_DOLG_VOZVRAT<=:date
вот тебе и массив :)
2 вопроса:
1. А если без sql запросов? :)
2. У меня используется база данных Access и подключаюсь я к ней используя AdoConnection и все соответствующие компоненты. Но я так и не понял как, каким образом надо использовать компонент TAdoQuery. То есть куда там писать строку запроса, надо ли или нет выставлять параметры, и если надо то какие параметры. И самое главное: КУДА возращается результат запроса?
В инете искал информацию о компоненте TADOQuery но ничего толкового не нашел
Цитата:
Originally posted by mainigor
делай :
вот тебе и массив :)
делай :
Код:
SELECT * FROM table WHERE DATE_DOLG_VOZVRAT<=:date
вот тебе и массив :)
это подсчет строк в таблице?
Код:
SELECT COUNT(*) FROM table;
Цитата:
Originally posted by squirL
это подсчет строк в таблице?
это подсчет строк в таблице?
Код:
SELECT COUNT(*) FROM table;
Ну а все таки, как это использовать с компонентом TADOQuery?
Цитата:
Originally posted by senator
Ну а все таки, как это использовать с компонентом TADOQuery?
Ну а все таки, как это использовать с компонентом TADOQuery?
ADOQuery1.RecordCount
ну давай, чтобы только узнать количество записей сфэтчим пару тройку тысяч записей, а потом используем RecordCount :)))
даже если этот метод внутренне использует запрос select count(чего-нибудь) from где-нибудь, а не фэтчит все записи, все-равно не логично это делать так...
необходимо просто запустить кверю со стандартным запросом типа "select count(1) as cnt from table", а после открытия набора данных (или его активации) получить значение в поле "CNT" (либо из первого поля).
собственно всё, дальше просто пиши сам запрос и работай через
ADOQuery.Params.Value (или Parameters)
ADOQuery.Fields.value
для навигации:
ADOQuery.First
ADOQuery.Last
ADOQuery.Next
ADOQuery.Prior
While not ADOQuery.Eof ...