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

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

25.11.2009, 12:33. Показов 1837. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru