Форум: "Базы";
Текущий архив: 2002.09.05;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c