![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Помогите пожалуйста решить задачу, уже несколько дней мучаюсь и никак не могу понять в чем проблема. У меня DBGrid визуализирует данные таблицы SOKPO, которая содержит 1 столбец с именем P_N, он содержит большое число записей( 93 000 ). Мне нужно чтобы по щелчку кнопки Button1 Итоговые значения записывались в txt файл.
(Я вывел данные по возрастанию "ORDER BY P_N"); Например. В стоблце P_N, номер 224 встретился 10 раз, а номер 225 встретился 15 раз. Надо что в текстовый файл попали такие значения : 224 10 225 15 (В итоги 93 000 строк должны превратиться в 69(без повторений)) Умоляю помогите.. Код:
procedure TForm1.Button1Click(Sender: TObject);
var
d:textfile;
k,i,n:Integer;
v:integer;
PN,P_N:string;
begin
AssignFile(d,'Итог.txt');
Append(d);
DBGrid1.DataSource.DataSet.DisableControls;
DBGrid1.DataSource.DataSet.First;
n:=1;
k:=1;
with DBGrid1 do
begin
while not DataSource.DataSet.Eof do
begin
for v:=1 to Datasource.DataSet.RecordCount-1 do
begin
PN:=Fields[v].AsString;
Datasource.DataSet.Next;
P_N:=Fields[v].AsString;
if PN=P_N then
begin
n:=n+1;
DataSource.DataSet.Next;
end
else
begin
Write(d,PN,' ');
Write(d,n, ' ');
Writeln(d);
n:=0;
DataSource.DataSet.Next;
end;
DataSource.DataSet.Next;
end;
DataSource.DataSet.Next;
end;
CloseFile(d);
end;
DBGrid1.DataSource.DataSet.EnableControls;
end;Последний раз редактировалось Admin, 05.05.2011 в 18:09. |
|
#2
|
||||
|
||||
|
Под дистинкт загнать. И еще каунт запользовать. В запросе все это сделать можно.
|
|
#3
|
|||
|
|||
|
Да но мне нужно чтобы данные не повторялись в текстовом файле..
Можешь пожалуйста код показать? |
|
#4
|
||||
|
||||
|
Может это:
Код:
select t.p_n, count(t.p_n) from sokpo t group by t.p_n |