Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Key violation [D6, Paradox]


Russko ©   (2003-10-02 13:00:00) 

Подскажите пожалуйста, почему в таблице при переходе ко второй записи: DataModule2.Table2.Next возникает ошибка:"Key violation".


Russko   (2003-10-02 13:53:00) [1]

>Johnmen может и полетит)))


Johnmen   (2003-10-02 13:51:00) [2]

>Russko © (02.10.03 13:49)
>...просто не покатит.

а если просто полетит ?


Russko   (2003-10-02 13:49:00) [3]

Нет, не слабо, просто не покатит.


MsGuns   (2003-10-02 13:47:00) [4]

Да уж, код супертяжелый ! А вот использовать вместо этажерок типа
DataMudule2.Table1.FieldByName().As...

структурных записей (record) или хотя бы конструкции with .. do слабо ?


Russko   (2003-10-02 13:45:00) [5]

Всё путём, всем спасибо. Я просто поставил DataModule2.Table3.Append; в начало цикла ивсё)))


DenK_vrtz   (2003-10-02 13:37:00) [6]

Круто!!!!
А для копирования данных BatchMove не помогает?


Johnmen   (2003-10-02 13:36:00) [7]

Срочно Edit, Append, Post, Next + F1 !!!


Johnmen   (2003-10-02 13:33:00) [8]

>Reindeer Moss Eater © (02.10.03 13:04)
>Потому что переход ко второй записи инициирует insert записи в
>таблицу

:)) Кем/чем инициируется ???


Anatoly Podgoretsky   (2003-10-02 13:33:00) [9]

Ты создаешь жве пустые записи, а больше одной никак не получится.


Russko   (2003-10-02 13:31:00) [10]

До такого я и сам дошёл. Вот сам кусок, где возникает ошибка:
DataModule2.Table2.First;
while not DataModule2.Table2.Eof do begin
DataModule2.DataSource3.Edit;
DataModule2.Table3.FieldByName("N").AsString:=DataModule2.Table2.FieldByName("N").AsString;
DataModule2.Table3.FieldByName("Oboznachenie").AsString:=DataModule2.Table2.FieldByName("Oboznachenie").AsString;
DataModule2.Table3.FieldByName("Material").AsString:=DataModule2.Table2.FieldByName("Material").AsString;
DataModule2.Table3.FieldByName("Priznak").AsString:=DataModule2.Table2.FieldByName("Priznak").AsString;
DataModule2.Table3.FieldByName("Profil").AsString:=DataModule2.Table2.FieldByName("Profil").AsString;
DataModule2.Table3.FieldByName("Width").AsString:=DataModule2.Table2.FieldByName("Width").AsString;
DataModule2.Table3.FieldByName("Height").AsString:=DataModule2.Table2.FieldByName("Height").AsString;
DataModule2.Table3.FieldByName("Number").AsString:=DataModule2.Table2.FieldByName("Number").AsString;

DataModule2.Table2.Next;
DataModule2.Table3.Append;
end;


DenK_vrtz   (2003-10-02 13:27:00) [11]

DataModule2.Table2.eof


Russko   (2003-10-02 13:25:00) [12]

Извеняюсь, но представьте что я профан. Подскажите какими свойствами воспользоваться???


MsGuns   (2003-10-02 13:09:00) [13]

Перед Next проверять конец ли это НД


Russko   (2003-10-02 13:08:00) [14]

И как это можно исправить???


Reindeer Moss Eater   (2003-10-02 13:04:00) [15]

Потому что переход ко второй записи инициирует insert записи в таблицу в которой нарушается ограничение первичного ключа


Наверх

Титульная страница Поиск, карта сайта Написать письмо