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

Вниз

Фильтрация повторяющихся значений   Найти похожие ветки 

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.047 c
1-1086939050
Григорьев Антон
2004-06-11 11:30
2004.06.27
Совместимы ли borlandmm.dll разных версий?


1-1086844569
DAnton
2004-06-10 09:16
2004.06.27
Как прибавить к дате число.


1-1087242497
lena19
2004-06-14 23:48
2004.06.27
чем заменить s:=chr(1)+chr(1).....+chr(1)


1-1087138341
Agent[007]
2004-06-13 18:52
2004.06.27
EAccessVolation


14-1086940244
blackman
2004-06-11 11:50
2004.06.27
Будут ли работать база по сайтам и кладовка ?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский