Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.25;
Скачать: CL | DM;

Вниз

Ошибка или я чтото не правильно делаю подскажите   Найти похожие ветки 

 
DelphiM ©   (2003-09-03 01:51) [0]

юзаю BDE в Query1 запрос такой SELECT DISTINCT .....
в TUpdateSQL пи удалении записи запрос такой
delete from .... where ..
и если в таблише болше одной одноименной записи выдает ошибку !
этоо если Query1 >>> SELECT DISTINCT
не должен же веть выдавать ошибку, должен уничтожить все записи с соответствуюшии этой записи !!


 
Sergey13 ©   (2003-09-03 09:12) [1]

А слабо оба запроса полностью привести?


 
HSolo ©   (2003-09-03 09:19) [2]

> должен уничтожить все записи с соответствуюшии этой записи !!
Не должен. Каждый запрос в TUpdateSQL должен обрабатывать только одну запись; если их больше - получится то, что получилось у Вас. Ну так уж оно сделано...


 
DelphiM ©   (2003-09-04 06:04) [3]

Значить если в запросе есть строка SELECT DISTINCT то удалить корректно запись при помаши UpdateSQL не всегда можно ?


 
Anatoly Podgoretsky ©   (2003-09-04 09:00) [4]

DelphiM © (03.09.03 01:51)
Должно в случае правильных запросов.


 
VAleksey ©   (2003-09-04 10:41) [5]


> HSolo ©

Хм... Весьма странное утверждение. Как бы хотелось бы проверить. Поробую.


> DelphiM ©

Текст ошибки в студию.


 
Zacho ©   (2003-09-04 10:47) [6]


> VAleksey © (04.09.03 10:41) [5]
>
> > HSolo ©
>
> Хм... Весьма странное утверждение. Как бы хотелось бы проверить.
> Поробую.

Ничего странного. Вот кусок из DBTables.pas Ни о чем не говорит ?
procedure TUpdateSQL.ExecSQL(UpdateKind: TUpdateKind);
begin
with Query[UpdateKind] do
begin
Prepare;
ExecSQL;
if RowsAffected <> 1 then DatabaseError(SUpdateFailed);
end;
end;


 
Vlad ©   (2003-09-04 10:52) [7]

Это получается, что если тупо глушить Exception то все будет работать как надо ?


 
VAleksey ©   (2003-09-04 10:54) [8]


> Zacho ©

Да все :-), я уже сам посмотрел.


 
DelphiM ©   (2003-09-05 03:17) [9]

ВИЖУ ТОЛЬКО ОДИН ВЫХОД

unit UpdateSQLm;

interface

uses
SysUtils, Classes, DBTables, DB;

type
TupdateSQLm = class(TUpdateSQL)
public
procedure ExecSQL(UpdateKind: TUpdateKind);override;
end;

procedure Register;

implementation

procedure TupdateSQLm.ExecSQL(UpdateKind: TUpdateKind);
begin
with Query[UpdateKind] do
begin
Prepare;
ExecSQL;
end;
end;

procedure Register;
begin
RegisterComponents("ModernBDE", [TupdateSQLm]);
end;

end.



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

Текущий архив: 2003.09.25;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.026 c
14-82396
Q
2003-09-09 12:26
2003.09.25
Шевроле


14-82502
data
2003-09-05 14:30
2003.09.25
сказка о сисадмине - 2


3-82128
Layner
2003-09-04 13:06
2003.09.25
В FastReport (в любом) отражаю числовое поле из БД, как это поле


14-82393
lipskiy
2003-09-01 17:14
2003.09.25
Для желающих потестировать.


1-82291
Micah'GF
2003-09-15 16:59
2003.09.25
Компонент с цветами