Форум: "Базы";
Текущий архив: 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