Форум: "Базы";
Текущий архив: 2003.09.25;
Скачать: [xml.tar.bz2];
ВнизОшибка или я чтото не правильно делаю подскажите Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.009 c