На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! информация о разделе
user posted imageДанный раздел предназначается для обсуждения вопросов использования баз данных, за исключением составления запросов на SQL. Для этого выделен специальный раздел. Убедительная просьба - соблюдать "Правила форума" и не пренебрегать "Правильным оформлением своих тем". Прежде, чем создавать тему, имеет смысл заглянуть в раздел "Базы данных: FAQ", возможно там уже есть ответ.

Модераторы: Chow, Bas, MIF
  
> Delphi:Paradox DB->Key Violation
    Такая фигня.
    есть таблица формата вида:

    MTDTID - аутоинкримент,рекрут,уник,кеу(*)
    MTID - integer,reqrut
    DTID - integer,reqrut

    так вот при добавлении С
    100\%уникальным MTDTID - ругаеться - key Violation

    в таблице уже есть набор данных...
    причем MTDTID - есть дырки т.е. ex 100,101,200,205....
    но даже когда ручками выставляешь MTDTID как последнее+1(ридонли снят с поля)
    то все равно ругаеться(ругается даже если добавлять заведомо уникальну записть)
    ////////////////////////////////////////////////////////////////////////
    ...
    TableMDTD.Filtered:=False;
    TableMDTD.Last;

    Idi:=TableMDTD.fieldByName('MTDTID').AsInteger+1;
    for i:=0 to high(sblDTID) do
    begin
    TableMDTD.Append;
    TableMDTD.fieldByName('MTDTID').AsInteger:=idi+i;
    TableMDTD.FieldByName('MTID').AsInteger:=id2;
    TableMDTD.FieldByName('DTID').AsInteger:=sbldtid[i];
    TableMDTD.Post;
    end;
    ...
      Autoincrement'ное поле изменять вручную нельзя.
        даже если не ставить значение полю все равно тоже самое.
          TableMDTD.Append;
          TableMDTD.FieldByName('MTID').AsInteger:=1;
          TableMDTD.FieldByName('DTID').AsInteger:=1;
          TableMDTD.Post;

          Такой код работает?
            такой код - нет
              Тогда ты неправильно указал структуру таблицы...
                не все правилно.... немного разобрался - удалил файлы *.px - все заработало....
                я так понял это был биты индек или что-то вроде... так вопрос а ЧТО ЭТО БЫЛО?
                  Конечно если удалить ключи то такая ошибка не возникнет! - гильотина лучшее средство от перхоти. Лучше разберись со структурой таблицы. Чудес не бывает - Key Violation возникает только при попытке создать запись с уже существующими значениями ключевых полей.
                    но все инменно так... структуру я указал правельно
                    кстате файлы *.px - не появлялись
                    0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                    0 пользователей:


                    Рейтинг@Mail.ru
                    [ Script execution time: 0,0220 ]   [ 15 queries used ]   [ Generated: 2.05.24, 06:54 GMT ]