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

Вниз

EDBEngineError Key Violation   Найти похожие ветки 

 
alexvan ©   (2002-08-16 12:46) [0]

Уважаемые мастера подскажите PLEASE
У меня есть некая резервная таблица. Перед новым использованием её очищаю. Далее вношу запись в уже пустую таблицу и идёт сообщении об ошибке.Первое поле Integer и ключевое.
begin
Table1.Active:=True;
If Table1.IsEmpty<>True then
begin
Table1.Last;
for n:=Table1.RecordCount downto 1 do
Table1.Delete;
end;
Table1.Active:=False;
...
Table1.Active:=True;
Table1.Insert;
Table1.Fields[0].AsInteger:=Nomer1;
TableResult.Fields[1].AsString:=String1;
TableResult.Post;


 
Johnmen ©   (2002-08-16 12:50) [1]

Нельзя так удалять !!!
Вот так
while not Table1.EOF do Table1.Delete;


 
sniknik ©   (2002-08-16 12:54) [2]

а Table1.EmptyTable не быстрее будет?


 
Leran2002 ©   (2002-08-16 12:55) [3]

> Table1.Active:=True;
> If Table1.IsEmpty<>True then
> begin
> Table1.Last;
> for n:=Table1.RecordCount downto 1 do
> Table1.Delete;
> end;
> Table1.Active:=False;


// Метод EmptyTable очищает таблицу, удаляя из нее все записи.
// Перед удалением таблица должна быть закрыта.
Table1.EmptyTable;



 
VAleksey ©   (2002-08-16 12:55) [4]

вообще надо все переписать покороче

begin
Table1.Active:=True;
If not Table1.IsEmpty then
while not Table1.EOF do Table1.Delete;
Table1.Active:=False;
...
Table1.Active:=True;
Table1.Insert;
Table1.Fields[0].AsInteger:=Nomer1;
TableResult.Fields[1].AsString:=String1;
TableResult.Post;
этот код для твоего размышления :)). А вообще

> Johnmen © (16.08.02 12:50)
на самом деле дал исчерпывающий ответ.
PS
Смотри, чтобы твой Nomer1 не содержал повторяющихся значений.


 
VAleksey ©   (2002-08-16 12:57) [5]

пардон написал поздно :)) господа sniknik © и Leran2002 © действительно еще правее чем господин Johnmen © :))
удачи ...


 
alexvan ©   (2002-08-16 13:02) [6]

Люди! Суть то не в удалении, а в Key Violation. Таблица пустая(проверено).
TO Johnman: Данный метод удаления приведён в качестве примера (Вл.Гофман, А.Хомоненко DELPHI 6), а сию строку while not Table1.EOF do Table1.Delete; я тоже пробовал


 
ZrenBy ©   (2002-08-16 13:04) [7]

>>Table1.Active:=True;
>>Table1.Insert;
>>Table1.Fields[0].AsInteger:=Nomer1;
>>TableResult.Fields[1].AsString:=String1;
>>TableResult.Post

Так Table1 или TableResult ?


 
Leran2002 ©   (2002-08-16 13:08) [8]


> alexvan © (16.08.02 13:02)

У тебя наверное индекс накрылся, хочешь утилитку вышлю для проверки и востановления Парадоховских таблиц.


 
alexvan ©   (2002-08-16 13:09) [9]

Table1.Active:=True;
>>Table1.Insert;
>>Table1.Fields[0].AsInteger:=Nomer1;
>> TableResult.Fields[1].AsString:=String1;
>> TableResult.Post
Естественно Table1. Это моя ошибка когда писал в форум. В проге всё ОК


 
alexvan ©   (2002-08-16 13:18) [10]

ТО LERAN2002 я только что проверил через Database Desktop. Именно так и есть. Буду очень признателен. Только шли еа мыло alex-gala@yandex.ru.
СПАСИБО ВСЕМ


 
Leran2002 ©   (2002-08-16 13:44) [11]

Все отправил...


 
alexvan ©   (2002-08-16 13:46) [12]

ТО LERAN2002 СПАСИБО!!!



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

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

Наверх




Память: 0.49 MB
Время: 0.011 c
3-13913
michael_b
2002-08-13 15:56
2002.09.05
Какое самое продвинутое CASE средство для InterBase


3-13924
Uran
2002-08-13 14:24
2002.09.05
Ограничение доступа с помощью BExpert


14-14273
Stah
2002-08-08 12:40
2002.09.05
Разработка приложений для морской навигации???


1-13980
ggg
2002-08-22 19:11
2002.09.05
регулятор громкости


6-14205
Fenix
2002-06-21 16:58
2002.09.05
Опять сокеты....