Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
3-13946
3asys
2002-08-12 23:59
2002.09.05
Record is deleted


8-14186
SerVS - S
2002-04-25 10:28
2002.09.05
Проблема с OpenGL


1-14030
Андрусь
2002-08-24 12:31
2002.09.05
добавления элемента в отсортированный массив


4-14318
asmer
2002-07-02 14:34
2002.09.05
EditBox


3-13919
Иван
2002-08-15 11:50
2002.09.05
Как обновить дату/время?





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