Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.01 c
1-82277
Юлия
2003-09-14 08:57
2003.09.25
Работа с датой


14-82506
Nik8.
2003-09-05 12:20
2003.09.25
Supreme


3-82102
pkert
2003-09-04 18:41
2003.09.25
View в Interbase6.0


14-82427
SergP
2003-09-07 20:34
2003.09.25
Посоветуйте прогу для закачки файлов.


1-82301
Kostik
2003-09-12 17:14
2003.09.25
Защита от копирования





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