Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
 Аватар для reiteriX
685 / 241 / 13
Регистрация: 02.04.2009
Сообщений: 692

Ошибка при добавлении кортежа

25.11.2009, 12:33. Показов 1868. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
При добавлении нового кортежа в базу происходит вот такая ошибка...
http://rediska0001.j-net.ru/get/photo/view/aaa.JPG


Хотелось бы избежать её)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.11.2009, 12:33
Ответы с готовыми решениями:

Ошибка при добавлении
Добрый день всем, знаю что подобных тем уже много, но тем немении, при добавлении новой записи возникает ошибка такого рода: (Скрин) База...

Ошибка при добавлении запроса
Всем добрый день! Делаю курсовую работу по БД (Access + Delphi). Проблема в следующем, при подключении запроса созданного в Access, через...

Ошибка при добавлении данных
При добавлении данных на главную форму, выводится ошибка, связанная с компонентом IBQuery2, расположенным на главной форме, подскажите...

13
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
25.11.2009, 12:49
reiteriX, там же все написано, у вас неверно сформирован запрос... причина указана в самой ошибке
1
 Аватар для reiteriX
685 / 241 / 13
Регистрация: 02.04.2009
Сообщений: 692
25.11.2009, 13:58  [ТС]
Странно, вроде всё так...

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
if sel=1 then
    begin
      qtxt:= 'Select max(PostID)+1 as NP From Post';
        Try with Query2 do
        begin
          sql.Clear;
          sql.Add(qtxt);
          open;
        end;
        except end;
      qtxt:=
        'Insert into Post(PostID,PostName,PostAd,PostTel)'+
        ' Values ('''+IntToStr(Query2['NP'])+''', ''' +Edit2.Text+ ''', ''' +Edit3.Text+ '''+''' +Edit4.Text+ ''')';
      soob:= 'add';
    end;
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
25.11.2009, 14:02
reiteriX,а у вас все поля текстовые?
1
 Аватар для reiteriX
685 / 241 / 13
Регистрация: 02.04.2009
Сообщений: 692
25.11.2009, 14:07  [ТС]
Кроме PostID - integer. Остальные - да.
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
25.11.2009, 14:11
reiteriX, для целых чисел кавычки не нужны... а такая запись катит -Query2['NP']? впервые вижу просто... обычно юзаю FieldByName... а еще у вас указано 4 поля, но 3 значения - '''+''' - я думаю, тут вам нужна запятая
1
 Аватар для reiteriX
685 / 241 / 13
Регистрация: 02.04.2009
Сообщений: 692
25.11.2009, 14:14  [ТС]
Цитата Сообщение от Lord_Voodoo Посмотреть сообщение
такая запись катит -Query2['NP']
и еще как) половина программы так сделана)
Пойду чудить дальше.. спасибо.






Спасибо, да, всё было из-за последнего "+".
0
 Аватар для reiteriX
685 / 241 / 13
Регистрация: 02.04.2009
Сообщений: 692
26.11.2009, 11:37  [ТС]
К сожалению новая проблема...
http://rediska0001.j-net.ru/ge... янный1.JPG


Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
    begin
        qtxt:= 'Select max(ChekID)+1 as NC From ChekTov';
        Try with Query2 do
        begin
          sql.Clear;
          sql.Add(qtxt);
          open;
        end;
        except end;
      qtxt:= 'Select TovID From Tov Where TovName= ''' + (Edit2.Text)+''' ';
        Try with Query3 do
        begin
          sql.Clear;
          sql.Add(qtxt);
          open;
        end;
        except end;
      qtxt:=               //ОШИБКА ТУТ
        'Insert into Chek(ChekID,ChekNom,ChekDate) '+  
        'Values ('+IntToStr(Query2['NC'])+', ''' +Edit1.Text+''', '''+DateToStr(DateTimePicker1.Date)+''')';
      Try with Query4 do
        begin
          sql.Clear;
          sql.Add(qtxt);
          ExecSQL;
        end;
        except end;
 
     
 qtxt:=    'Insert into ChekTov(ChekID,TovID) '+
        ' Values ('+IntToStr(Query2['NC'])+', ''' +IntToStr(Query3['TovID'])+''')';
   end;
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
Отношения:
1) 
CREATE TABLE [dbo].[Chek](
    [ChekID] [int] NOT NULL,
    [ChekNom] [varchar](10) NOT NULL,
    [ChekDate] [datetime] NOT NULL,
PRIMARY KEY CLUSTERED 
(
    [ChekID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
 
2) 
CREATE TABLE [dbo].[ChekTov](
    [ChekID] [int] NOT NULL,
    [TovID] [int] NOT NULL,
PRIMARY KEY CLUSTERED 
(
    [ChekID] ASC,
    [TovID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
 
GO
 
ALTER TABLE [dbo].[ChekTov]  WITH CHECK ADD FOREIGN KEY([ChekID])
REFERENCES [dbo].[Chek] ([ChekID])
ON UPDATE CASCADE
ON DELETE CASCADE
GO
 
ALTER TABLE [dbo].[ChekTov]  WITH CHECK ADD FOREIGN KEY([TovID])
REFERENCES [dbo].[Tov] ([TovID])
ON UPDATE CASCADE
ON DELETE CASCADE
GO
 
3) 
CREATE TABLE [dbo].[Tov](
    [TovID] [int] NOT NULL,
    [TovName] [varchar](50) NOT NULL,
    [TovArt] [varchar](15) NOT NULL,
PRIMARY KEY CLUSTERED 
(
    [TovID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

Добавлено через 18 минут
Ничего не получилось((( Help me please. Thanks.
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
26.11.2009, 11:54
ну там же по-русски написано, что нарушено ограничение основного ключа, пытаетесь дубликат вставить
1
 Аватар для reiteriX
685 / 241 / 13
Регистрация: 02.04.2009
Сообщений: 692
26.11.2009, 12:03  [ТС]
ChekNom должен быть такой же как ChekID.
Цитата Сообщение от Lord_Voodoo Посмотреть сообщение
пытаетесь дубликат вставить
В смысле?

Если ChekNom ставить такой же как будующий ChekID то ошибки нет. И результата тоже нет...вообще...
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
26.11.2009, 12:08
у тебя ChekID - primary key?
1
 Аватар для reiteriX
685 / 241 / 13
Регистрация: 02.04.2009
Сообщений: 692
26.11.2009, 17:27  [ТС]
В отношении Chek - да, первичный. А в ChekTov, ChekID и первичный, и внешний.
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
26.11.2009, 17:31
reiteriX, так ведь ругается на добавлении в таблицу, где он ключевой
1
 Аватар для reiteriX
685 / 241 / 13
Регистрация: 02.04.2009
Сообщений: 692
27.11.2009, 13:37  [ТС]
Вроде как разобрался. Завтра попробую. Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.11.2009, 13:37
Помогаю со студенческими работами здесь

Ошибка при добавлении контакта в БД
procedure TForm1.Button1Click(Sender: TObject); Есть форма с 5ю Эдитами (Номер Имя Фамилия Отчество Адресс) при нажатии на кнопку...

Ошибка при добавлении в базу
Здравствуйте! Подскажите пожалуйста в чем ошибка? Выдает ошибку, что необходимо поставить точку с запятой в конце конструкции SQL, однако...

Ошибка при добавлении изображения
Собственно вот ошибка cannot modify a read-only dataset. Прошарил все форумы, вообще нигде не было описано решение данной проблемы....

Ошибка при добавлении данных БД
procedure TForm16.Button1Click(Sender: TObject); var s,m:String; begin begin s:='INSERT INTO Заказы (, , , ,,) VALUES...

Ошибка при добавлении записи
Пишу интерфейс для базы данных автопроката. В Adotable создал lookup-ы. Таблица выводится в dbgrid. Когда через DBnavigator пытаюсь...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru