Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / удалить дублирующие записи в PERVASIVE / 7 сообщений из 7, страница 1 из 1
15.10.2007, 12:24
    #34868555
A
A
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удалить дублирующие записи в PERVASIVE
В таблице есть две совершенно одинаковых записи, DELETE удаляет обе
как удалить одну? а одну оставить?
...
Рейтинг: 0 / 0
16.10.2007, 07:41
    #34870521
БПА
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удалить дублирующие записи в PERVASIVE
Если нет автоинкремента - используется физический адрес записи.

Удалить есть куча вариантов

1. Утилитой Function Executor
2. TPvTable компонентой из PDAC
3. Из PCC
4. Используя DTI
...
Рейтинг: 0 / 0
16.10.2007, 11:09
    #34870891
удалить дублирующие записи в PERVASIVE
По первому способу примерчик можно? (с БД работаем из-под Дельфи)
...
Рейтинг: 0 / 0
17.10.2007, 10:00
    #34873736
БПА
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удалить дублирующие записи в PERVASIVE
Под delphi, типа этого



q1.DatabaseName:= BaseFile;
q1.SQL.Clear;
q1.SQL.Text:= 'select * from noise where ...........';
q1.Open;
if q1.RecordCount > 1 then // дубль есть
for i:= 1 to q1.RecordCount -1 do begin // все кроме одной
q1.First;
g1.delete;
end;
q1.Close;
...
Рейтинг: 0 / 0
18.10.2007, 13:32
    #34877844
удалить дублирующие записи в PERVASIVE
Сам-то пробовал? Ругнется этот Delete, позиционируй-не позиционируй и удалит обе строки
...
Рейтинг: 0 / 0
18.10.2007, 14:20
    #34878082
БПА
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удалить дублирующие записи в PERVASIVE
Это все просто - вот рабочий кусок ,


Это база

CREATE TABLE "proba_del"(
"I1" INTEGER,
"I2" INTEGER
);

До программы в базе (копия из PCC)
<<<<<<<<<<<<<<<<<<<<<<<<
I1 I2
=========== ===========
2 2
1 1
2 2
1 1
3 3
3 3
3 3

7 rows were affected.

После выполнения программы (копия из PCC)


<<<<<<<<<<<<<<<<<<<<<<<<
I1 I2
=========== ===========
1 1
2 2
1 1
3 3
3 3
3 3

6 rows were affected.

>>>>>>>>>>>>>>>>>>>>>>>>

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, Grids, DBGrids, pvtables, btvtables, pvip, StdCtrls,
pvsqltables, sqldataset, DBCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
pses: TPvSession;
Tbl: TPvTable;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
begin
pses.ServerName:= 'info-btr';
pses.Active:= True;
Tbl.DatabaseName:= 'Proba';
Tbl.TableName:= 'proba_del';
Tbl.Open;
Tbl.Filter:= 'i1 = 2';
Tbl.Filtered:= True;
Tbl.First;
while not Tbl.Eof do begin
Tbl.delete;
Tbl.Next;
end;
Tbl.Filtered:= False;
Tbl.Close;
pses.Active:= False;
end;

end.
...
Рейтинг: 0 / 0
08.11.2007, 17:09
    #34925920
werwolf_ua
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
удалить дублирующие записи в PERVASIVE
ссілку на нормальный PDAC для Delphi 6
...
Рейтинг: 0 / 0
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / удалить дублирующие записи в PERVASIVE / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]