Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.11.03;
Скачать: [xml.tar.bz2];

Вниз

Кол-во записей   Найти похожие ветки 

 
Newman   (2003-10-11 15:44) [0]

Здравствуйте!

Как подсчитать кол-во записей в таблице?????????
Желательно с примером.

Спасибо Newman


 
WithOut Any ...   (2003-10-11 15:49) [1]

Table.RecordCount


 
Vlad   (2003-10-11 15:53) [2]

>WithOut Any ... © (11.10.03 15:49) [1]
Ты уверен ?
http://delphimaster.net/view/3-1065707619/


 
Zhouck   (2003-10-11 17:31) [3]

select count(id) from table, где
id - уникальный идентификатор записи


 
Johnmen   (2003-10-11 18:20) [4]

>Zhouck © (11.10.03 17:31)

А если нет уникального идентификатора записи ? :)


 
SER   (2003-10-11 22:12) [5]

select count(*) from table


 
Newman   (2003-10-12 17:01) [6]

Хорошо select count(*) from table , а КАК вывести результат
(label1 использ-ть) ?????????????????


 
Tumcoat   (2003-10-13 02:32) [7]

Ну можешь через dbgrid посмотреть, хотя Label, Edit и т.п., тоже не возбраняются.


 
Anatoly Podgoretsky   (2003-10-13 07:39) [8]

Просто Label не получится, надо использовать Label.Caption


 
Andriy Tysh   (2003-10-13 10:22) [9]

"select count(*) as NCount from TableName"
{Выполняеш запрос и...}
Label1.Caption:=<Обьект, который делает запрос>.FieldByName("NCount").AsString;


 
Леван Варшанидзе   (2003-10-13 10:33) [10]

Функция
FUNCTION COUNT(basename,sqltext:string):INTEGER;
begin
RESULT:=0;
with tquery.Create(nil) do begin
DatabaseName:=basename;
SQL.Text:=sqltext;
TRY
OPEN();
RESULT:=RecordCount;
CLOSE();
EXCEPT
END;
Free();
end;
end;
вызов
nn:=count(mainbase,"select * from "+tablename);
претензии принимаются :)


 
NAlexey   (2003-10-13 11:31) [11]

>претензии принимаются :)
Притензия:
1) При таком вызове:
nn:=count(mainbase,"select * from "+tablename);

Результат будет всегда равен 1.


 
Vlad   (2003-10-13 11:41) [12]

>NAlexey © (13.10.03 11:31) [11]
Не всегда.
Во первых неясно какая все-таки СУБД.
Во вторых если речь идет о БДЕ, то там RecordCount будет зависеть от настроек BDE - алиаса.


 
NAlexey   (2003-10-13 11:41) [13]

Тогда уж так:

function DSRecCount(const TabName: string): Integer;
const
SQLText = "select count(*) from %s";
begin
Result := 0;
with TQuery.Create(nil) do
try
DatabaseName := YDBName;
SQL.Text := Format(SQLText, [TabName]);
Open;
Result := Fields[0].Value;
finally
Free;
end;
end;


 
Леван Варшанидзе   (2003-10-13 11:56) [14]

NAlexey :
MOJNO I TAK, KAK U VAS , NO IA MOGIU VIZVAT TAK:

N1:=COUNT(DBASENAME, "SELECT * FROM "+TABNAME)

I TAK :

N1:=COUNT(DBASENAME, "SELECT * FROM "+TABNAME+ " WHERE ID > 20");

TO EST, MNE KAJETSIA, BOLEE GIBKII VARIANT
VPROCHEM, O VKUSAX NE SPORIAT

A VASHE PREDIDUSHEE SOOBSHENIE, CHTO RESULTAT BUDET VSEGDA 1 , NE VERNO:
FUNKCIA VOZVRASHAET RECORDCOUNT OTKRITOGO TQUERY, SQL ZAPROS KOTOROGO PEREDAETSIA PO MARAMETRU.


 
Карелин Артем   (2003-10-13 12:04) [15]

Леван Варшанидзе (13.10.03 11:56) [14]
В нормальных базах RecordCount выдает число фетченых записей, т.е. 1. Нужно вызывать методы типа FetchAll или Last для фетча всех записей, что в больших наборах данных приведет к большим затратам памяти или даже к зависанию.


 
Леван варшанидзе   (2003-10-13 12:35) [16]

>Карелин Артем

Спасибо за информацию, но этот факт меня удивляет (если не сказать больше - убивает (или убывает ) :) )
а почему это так и где прочитать об этом поподробнее?
(ведь recordcount означает количество записей безо всякой оговорки, мол, сперва фетчите, а затем скажу, сколько у меня записей :)


 
Anatoly Podgoretsky   (2003-10-13 12:41) [17]

Нет как раз с оговорками

Вот для IBSql
Use the RecordCount property to see how many records are returned by a query. If the result set is to return 100 rows, RecordCount will only be 100 after all the records have been visited. That is, after looking at the first record, RecordCount is 1, and so forth.

Для остальных смотри соответствующие описания


 
Леван варшанидзе   (2003-10-13 12:59) [18]

to Anatoly Podgoretsky
прочел и озадачился:

Description

Examine RecordCount to determine the total number of records in the dataset. Applications might use this property with RecNo to iterate through all the records in a dataset, though typically record iteration is handled with calls to First, Last, MoveBy, and Prior.

Note: Use RecordCount with care, because record counting can be a costly operation, especially for SQL queries that return large result sets. Generally, an application should only use RecordCount with Paradox and dBASE tables.

Воистине, нет счастья в этом мире СУБД, если даже recordcount не возвращает recordcount, а вожврашает оное тоько после посещения всех этих записей!


 
Vlad   (2003-10-13 13:11) [19]

>Леван варшанидзе (13.10.03 12:59) [18]
Счастья в мире СУБД хватает ! :)))


 
Anatoly Podgoretsky   (2003-10-13 13:25) [20]

RecordCount will only be 100 after all the records have been visited
Приведеная тобой цитата относится к этому, посещение всех записей может потребовать много времени для SQL таблиц (читай серверов).


 
MsGuns   (2003-10-13 13:26) [21]

Исчерпывающе св-во RecordCount описан у дедушки датасетов - TClientDataSet. Особенно смысл его "неоднозначности" становится понятен, если исп-ся внешний провайдер.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.11.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.009 c
1-8359
Alfred
2003-10-23 09:49
2003.11.03
Обмен данными между двумя программами


3-8269
vidiv
2003-10-14 06:00
2003.11.03
Решение задач по FoxPro


1-8401
race1
2003-10-22 16:00
2003.11.03
методы


1-8435
SniZ
2003-10-21 22:04
2003.11.03
Про внедрение в программу


1-8386
senya
2003-10-22 18:05
2003.11.03
FastReport





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский