Текущий архив: 2004.06.27;
Скачать: CL | DM;
ВнизФильтрация повторяющихся значений Найти похожие ветки
← →
AlexanderSK (2004-06-03 17:50) [0]Есть TClientDataSet, поля р1, р2.
Причем значения р1 - повторяются (по 2-4 записи с одинм и тем же значением р1, при этом р2 для них разные).
Нужно получить список значений р1 (без повторов!)
Подскажите, пожалуйста, как это лучше сделать?
← →
Курдль © (2004-06-03 17:52) [1]Только не TClientDataSet или каким угодно другим Т..., а ТЗапросом.
← →
Sandman25 © (2004-06-03 17:58) [2]Если получить там же, то можно установить IndexFieldNames, а потом пробежаться в цикле и удалить повторяющиеся.
← →
Jiny (2004-06-03 18:04) [3]>Только не TClientDataSet или каким угодно другим Т..., а ТЗапросом
может быть надо было сказать каким именно запросом ?
select distinct p1 from имя таблицы
← →
AlexsanderSK (2004-06-03 18:07) [4]>Курдль © (03.06.04 17:52) [1]
>Jiny (03.06.04 18:04) [3]
Да нет! Суть как раз в том, чтобы к БД не обращаться!
← →
Jiny (2004-06-03 18:21) [5]попробуй так
var
MyDIm: array of String;
i,i2: integer;
tmpText: string;;
Begin
SetLength(MyDim,Tdataset.RecordCount);
For i:=0 to Tdataset.RecordCount-1 do
begin
TmpText:=Tdataset.FieldByname("field").AsString;
For i2:=0 to i do
begin
If AnsiUpperCase(TmpText)=AnsiUppercase(MYDim) then
break;
else
Begin
MyDim[i]:=TmpText;
break;
end;
end;
Tdataset.FindNext
end;
end;
← →
Jiny (2004-06-03 18:22) [6]попробуй так
var
MyDIm: array of String;
i,i2: integer;
tmpText: string;;
Begin
SetLength(MyDim,Tdataset.RecordCount);
For i:=0 to Tdataset.RecordCount-1 do
begin
TmpText:=Tdataset.FieldByname("field").AsString;
For i2:=0 to i do
begin
If AnsiUpperCase(TmpText)=AnsiUppercase(MYDim[i2]) then
break;
else
MyDim[i]:=TmpText;
end;
Tdataset.FindNext
end;
end;
← →
Jiny (2004-06-03 18:27) [7]Ошибочка Вышла, не успел отменить отправку текста,
попробуй так
var
MyDIm: array of String;
i,i2: integer;
tmpText: string;;
Result: boolean;
Begin
SetLength(MyDim,Tdataset.RecordCount);
For i:=0 to Tdataset.RecordCount-1 do
begin
TmpText:=Tdataset.FieldByname("field").AsString;
For i2:=0 to i do
If AnsiUpperCase(TmpText)=AnsiUppercase(MYDim[i2]) then
Result:=false else result:=true;
If result then MyDim[i]:=TmpText;
Tdataset.FindNext
end;
MyDim:=nil;
end;
Потом пройдешься циклом по не нулевым значениям
← →
Anatoly Podgoretsky © (2004-06-03 19:53) [8]AlexsanderSK (03.06.04 18:07) [4]
Духом святыс что ли?
Страницы: 1 вся ветка
Текущий архив: 2004.06.27;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.037 c