Главная страница
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.018 c
1-14167
Ник
2002-08-25 17:11
2002.09.05
Помогите сделать массив объектов


3-13975
Krizalis
2002-08-16 17:33
2002.09.05
Помогите с INTERBASE


1-14112
Бегинер
2002-08-23 18:54
2002.09.05
Свойства объектов


1-14136
-=Владимир=-
2002-08-24 13:25
2002.09.05
Рабочий стол.


4-14345
rival
2002-06-14 16:43
2002.09.05
Запуск приложения из своей программы