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

Вниз

Приветствую Мастеров ! Как удалять одинаковые строки в базе?   Найти похожие ветки 

 
IronHawk   (2002-03-29 15:48) [0]

Сабж !

А так подходит ? :


CurrRecNo:=1;
with TQuery.Create(nil) do
begin
DataBaseName:=Table2.DataBaseName;
SQL.Add("select distinct * from "{" SELECT ID FROM *"}+Table2.TableName);
Open;
while Locate("ID",CurrRecNo,[]) do inc(CurrRecNo);
Close;
Free;
end;


 
vopros   (2002-03-29 16:12) [1]

Удалено модератором


 
Anatoly Podgoretsky   (2002-03-29 16:28) [2]

distinct говорит от том, что в полученном наборе не будет одинаковых строк


 
vopros   (2002-03-29 16:29) [3]

Лучше их туда не давать вставлять.Самый эффективный метод.


 
IronHawk   (2002-03-29 17:05) [4]


> vopros © (29.03.02 16:29)
> Лучше их туда не давать вставлять.Самый эффективный метод.

А этот пример обрабатываеться после недатия вставляния !


 
Anatoly Podgoretsky   (2002-03-29 17:08) [5]

Тогда зачем его выполнять?


 
IronHawk   (2002-03-29 17:15) [6]


> Anatoly Podgoretsky © (29.03.02 17:08)
> Тогда зачем его выполнять?

Для проверки и устранения ошибок предыдущего !



to ALL
... у кого есть дельные предложения ?


 
IronHawk   (2002-04-01 10:42) [7]

И как при этом эти данные, не перебрасывать в соседнюю базу, а в этой ЖЕ ?


 
Johnmen   (2002-04-01 10:59) [8]

>IronHawk © : Ты воистину неординарный человек и общение с тобой и чтение твоих диалогов доставляет огромнейшую кучу радости !!!!!!!!!!!!!!!


 
IronHawk   (2002-04-01 12:12) [9]


> Johnmen ©

Создаём ветку в "Потрепаться" и туда вставляем свои комментарии,
а тут пожалуйста ПО ДЕЛУ !


 
Lusha   (2002-04-01 16:12) [10]

Для проверки можно использовать следующий запрос...

select id from table1
group by id
having count(id) > 1;


 
kan351   (2002-04-01 16:16) [11]

попробуй Batchmove(batdelete)


 
IronHawk   (2002-04-01 16:54) [12]


> Lusha ©

Спасибо, но неработает !


> kan351 ©

Спасибо, но аналогично > Lusha © (01.04.02 16:12)


 
Reindeer Moss Eater   (2002-04-01 17:38) [13]


var SourceQuery:TQuery;
DestTable:TTable;
begin
SourseQuery.SQL.Text:="Select Distinct(..... From OldTableName";
SourseQuery.Open;
DestTable.TableName:=NewTableName;
DestTable.BatchMove(SourceQuery,batCop);
SourceQuery.Close;
SourceQuery.Database.Execute("Drop table OldTableName");
end;


 
panov   (2002-04-01 18:05) [14]

>IronHawk © (29.03.02 15:48)
Ответь на вопрос:
А что ты понимаешь под одинаковыми строками?


 
IronHawk   (2002-04-01 18:15) [15]


> Reindeer Moss Eater (01.04.02 17:38)

Круто, сработало !
Но оно накойто, отсортировало мне, а этого низЯ !

> panov © (01.04.02 18:05)

Это когда в таблице из 11 столбцов и 50 строк
есть строки в которых все значениях во всех столбцах одинаковые !


 
Lusha   (2002-04-02 09:50) [16]

Ну, тогда попробуйте так...


var Query : TQuery;
begin
Query := TQuery.Create(Self);
Query.SQL.Text := "select field1, field2 ... from table group by field1, field2... having count(field1) > 1"; { вместо многоточия все поля. Да, и никаких запятых перед фразами having и group by, а то опять скажете, что запрос нерабочий}
Query.Open;
with Query do
begin
while not Eof do
begin
if Table.Locate("field1;field2;...", VarArrayOf(FieldByName("Field1").AsString...), []) then
begin
Table.Delete;
Table.Post;
end;
Next;
end;
end;
Query.Free;
end;

P.S. Гм-м. Кошмар. Хотя, какая задача, такое и решение...



 
IronHawk   (2002-04-02 10:35) [17]


> Lusha © (02.04.02 09:50)

Спасибо !

> if Table.Locate("field1;field2;...", VarArrayOf(FieldByName("Field1").AsString...),
> []) then

Компилятор это непропускает как масив, исправлю скажу как прошло !


 
IronHawk   (2002-04-02 10:51) [18]


> Lusha © (02.04.02 09:50)
> Ну, тогда попробуйте так...

Круто, всё заработало, но опять сортирует :-( !

У меня уже есть 4-типа реально работающего кода, и все сортируют!

А мне сортировки нельзя !!!



 
IronHawk   (2002-04-02 13:17) [19]

Всем спасибо !
Трабл урегулирован !

Если появяться глюки обязательно напишу :-))) !



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

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

Наверх





Память: 0.48 MB
Время: 0.006 c
1-69847
kreont
2002-04-06 23:01
2002.04.22
object pascal


1-69906
DeMoN-777
2002-04-09 14:09
2002.04.22
Поиск в ListBox


1-69766
Янки Дудль
2002-04-10 02:13
2002.04.22
RX Lib для


6-69949
zam
2002-02-11 18:36
2002.04.22
Как перекомпилить проект из WebAppDebugger в ISAPI?


6-69944
Andreich
2002-02-10 17:09
2002.04.22
ICQ компонент





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