![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 30.10.2007
Сообщений: 20
|
![]()
Project Project1.exe raised exception class EIBInterBaseError with message 'violation of PRIMARY or UNIQUE KEY constraint "INTEG_2" on table "LOG"'. Process stopped. Use Step or Run to continue.
Подскажите что нужно поправить? Вот код: Код:
Последний раз редактировалось Alex21; 07.11.2007 в 10:53. Причина: заключайте код в специальные теги |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 28.07.2007
Сообщений: 361
|
![]()
Опишите структуру таблицы которую вы пытаетесь редактировать и содержимое свойства SQL в IBQuery1.
Таблица должна обязательно содержать ключевое поле. Вы должны получить значение этого поля: К примеру есть таблица MyTable. Поля таблицы: MYTABLE_ID: BIGINT MYINTFIELD: INTEGER MYSTRINGFIELD: VARCHAR(20) В ней первое поле MyTable_ID: BIGINT - первичный ключ. Для генерации уникального значения, должен быть создан генератор (это такой счетчик или ещё называют последовтельность) GEN_MYTABLE_ID(к примеру. В IBExpert смотри раздел генераторы). Form1.IBQuery1.SQL - содержит следующий SQL запрос: Код:
которая генерит уникальное значение первичного ключа(Primary key) - IBDatabase1.GenID('Имя_Генератора_д ля_таблицы', IncValue); Здесь IncValue - значение на которое нужно увеличить уникальный счетчик, обычно 1. В вашем коде нигде нет заполнения ключевого поля уникальным значением. Второй вариант: Я не знаю содержимое вашей базы и SQL запросов, если уникальное значение первичного ключа у вас всё же генерится, например в триггере, то такая ошибка будет выпадать, если какое либо поле(не первичный ключ) имеет уникальный индекс, такой индекс не разрешит добавить в таблицу записи с одинаковыми значениями по этому полю. Проверте, нет ли в вашей таблице уникальных индексов, кроме первичного ключа... В вашем примере совершенно ясно одно, поле INTEG_2 имеет уникальный индекс, возможно это первичный ключ, вы автор вам виднее и в это поле вы пытаетесь добавить значение, которое уже есть в в этом поле в предидущих записях.... В вашем коде INTEG_2 нигде не заполняется. Если это первичный ключ, то нужно добавить: Form1.IBQuery1.Params.ParamByName(' INTEG_2').Value := IBDatabase1.GenID('ИМЯ_ГЕНЕРАТОРА', 1); или сделать тоже самое в триггере перед вставкой(BEFORE INSERT). Последний раз редактировалось Alex21; 07.11.2007 в 10:53. Причина: заключайте код в специальные теги |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 30.10.2007
Сообщений: 20
|
![]()
Project Project1.exe raised exception class EIBInterBaseError with message 'arithmetic exception, numeric overflow, or string truncation
Cannot transliterate character between character sets'. Process stopped. Use Step or Run to continue. Данные в таблицу записывались отлично... но через некоторое время вылетело это. |
![]() |
![]() |
![]() |
#4 | |
Пользователь
Регистрация: 30.10.2007
Сообщений: 20
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#5 | |
Форумчанин
Регистрация: 28.07.2007
Сообщений: 361
|
![]() Цитата:
1. Проверьте кодировку текстовых полей вашей таблицы, там где кодировка полей с типом CHAR, VARCHAR не указана, поставте Win1251 и коллате Win1251(или другую, если вас интересует другая напрмер UTF8) и посмотрите, указывали ли вы кодировку по умолчанию при создании базы. 2. Некорректные данные, например вы пытаетесь в поле с типом INTEGER записать не целое число и т.д. Последний раз редактировалось Rik; 07.11.2007 в 12:31. |
|
![]() |
![]() |
![]() |
#6 | |
Пользователь
Регистрация: 30.10.2007
Сообщений: 20
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
interbase+delphi | KiSH333 | БД в Delphi | 3 | 15.08.2008 09:53 |
Си и InterBase | Edimus | Общие вопросы C/C++ | 2 | 23.11.2007 16:32 |
Delphi и InterBase | Edimus | БД в Delphi | 12 | 06.11.2007 14:18 |
Как из Delphi залезть в системный таблицы InterBase | Leee | БД в Delphi | 0 | 21.04.2007 21:04 |
InterBase 6.5 | san4es | БД в Delphi | 0 | 12.12.2006 20:03 |