Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
0 / 25 / 13
Регистрация: 30.04.2014
Сообщений: 516

Добавление несуществующей записи

21.06.2016, 08:14. Показов 598. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем)
Подскажите мою ошибку в этом коде:
Delphi
1
insert into Skins (ProgrammNumber) select '+quotedstr(Form1.sLabel5.Caption)+' where SotrudnikID=:SotrudnikID and not exists (select * from Skins where ProgrammNumber='+quotedstr(Form1.sLabel5.Caption))
Поясню: Таблица Skins связана с таблицей Sotrudniki полем SotrudnikID. Нужно в таблицу Skins в поле ProgrammNumber вставить новую запись (уникальную).
При запуске пишет - Недопустимое имя столбца SotrudnikID.
Delphi
1
insert into Skins (ProgrammNumber) select '+quotedstr(Form1.sLabel5.Caption)+' where not exists (select * from Skins where ProgrammNumber='+quotedstr(Form1.sLabel5.Caption))
так все работает.

Буду очень признателен, а то уже неделю бьюсь.
Спасибо.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.06.2016, 08:14
Ответы с готовыми решениями:

Добавление записи в БД
Уважаемые форумачне, quwy! Помогите одолеть сложность: есть БД, в ней 2 таблицы, необходимо при добавлении новой записи в одной таблице,...

Добавление записи в бд
что-то не получается, вроде все правильно, tbl1.active=true;

Добавление записи в БД
Приветствую! Ребята хочу добавить запись в ручную, через edit, не получается, короткие слова вводит до 8 символов, свыше 8 выбивает...

11
5971 / 4547 / 1094
Регистрация: 29.08.2013
Сообщений: 28,168
Записей в блоге: 3
21.06.2016, 08:42
всю процедуру скиньте
0
0 / 25 / 13
Регистрация: 30.04.2014
Сообщений: 516
21.06.2016, 09:04  [ТС]
всю процедуру скиньте
Delphi
1
2
3
4
5
6
7
8
9
DataModule2.ADOQuery3.Close;
DataModule2.ADOQuery3.SQL.Clear;
DataModule2.ADOQuery3.SQL.Add('insert into Skins (ProgrammNumber) select '+quotedstr(sLabel3.Caption)+'where SotrudnikID=:SotrudnikID and not exists (select * from Skins where ProgrammNumber='+quotedstr(sLabel3.Caption)+')');
DataModule2.ADOQuery3.ExecSQL;
 
DataModule2.ADOQuery3.Close;
DataModule2.ADOQuery3.SQL.Clear;
DataModule2.ADOQuery3.SQL.Add('select * from Skins where SotrudnikID=:SotrudnikID and ProgrammNumber='+quotedstr(slabel3.Caption));
DataModule2.ADOQuery3.Open;
0
5971 / 4547 / 1094
Регистрация: 29.08.2013
Сообщений: 28,168
Записей в блоге: 3
21.06.2016, 09:16
Цитата Сообщение от Sky Walker Посмотреть сообщение
and not exists (select * from Skins where
вот эта конструкция странная

должно быть вроде так
SQL
1
AND SotrudnikID NOT IN (SELECT SotrudnikID FROM ....)
Добавлено через 2 минуты
вы используете параметр в запросе :SotrudnikID
а где он описан?
0
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
21.06.2016, 09:17
К тому же, при наличии параметра в запросах нет нигде присвоения ему значения.
0
5971 / 4547 / 1094
Регистрация: 29.08.2013
Сообщений: 28,168
Записей в блоге: 3
21.06.2016, 09:19
кстати,
SQL
1
SELECT '+quotedstr(sLabel3.Caption)+'WHERE SotrudnikID=:SotrudnikID AND NOT EXISTS (SELECT * FROM Skins WHERE ProgrammNumber='+quotedstr(sLabel3.Caption)+')'
если у вас код сотрудника повторяется, то запрос что выведет?
а потом то что выведет еще и вставит вам в таблицу

не проще ли сначала проверить SotrudnikID на уникальность, а потом уже что-то вставлять
0
0 / 25 / 13
Регистрация: 30.04.2014
Сообщений: 516
21.06.2016, 18:24  [ТС]
что-то не пойму.
Как вставить во вторую таблицу два новых (уникальных) значения? одно значение из первой таблицы, другое значение из label3?
Таблицы сделал не связными.

Добавлено через 1 минуту
Delphi
1
2
3
4
5
6
7
8
9
DataModule2.ADOQuery5.Close;
DataModule2.ADOQuery5.SQL.Clear;
DataModule2.ADOQuery5.SQL.Add('insert into Skins (ProgrammNumber, SotrudnikID) select '+quotedstr(sLabel5.Caption)+', Sotrudniki.SotrudnikID where not exists (select * from Skins where ProgrammNumber='+quotedstr(sLabel5.Caption)+')');
DataModule2.ADOQuery5.ExecSQL;
 
DataModule2.ADOQuery5.Close;
DataModule2.ADOQuery5.SQL.Clear;
DataModule2.ADOQuery5.SQL.Add('select * from Skins where ProgrammNumber='+quotedstr(slabel5.Caption));
DataModule2.ADOQuery5.Open;
так тоже не пашет
0
5971 / 4547 / 1094
Регистрация: 29.08.2013
Сообщений: 28,168
Записей в блоге: 3
21.06.2016, 21:16
бред потому что пишите и нифига не читаете
0
 Аватар для Пытливый
3763 / 2267 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
22.06.2016, 00:09
Вместо этой строчки:
Delphi
1
DataModule2.ADOQuery3.ExecSQL;
напишите:
Delphi
1
ShowMessage(DataModule2.ADOQuery3.SQL.Text);
и внимательно изучите что вы за запрос наваяли.
0
0 / 25 / 13
Регистрация: 30.04.2014
Сообщений: 516
22.06.2016, 17:13  [ТС]
Вместо этой строчки:
DelphiВыделить код
1
DataModule2.ADOQuery3.ExecSQL;
напишите:
DelphiВыделить код
1
ShowMessage(DataModule2.ADOQuery3.SQL.Te xt);
и внимательно изучите что вы за запрос наваяли.
Delphi
1
insert into Skins (SotrudnikID,ProgrammNumber) select Sotrudniki.SotrudnikID,'1' where SotrudnikID=:SotrudnikID and not exists (select * from Skins where ProgrammNumber='1')
Добавлено через 8 часов 8 минут
Delphi
1
2
3
4
INSERT INTO Skins (SotrudnikID, ProgrammNumber) 
SELECT Sotrudniki.SotrudnikID, '1' FROM Sotrudniki 
WHERE NOT EXISTS (SELECT * FROM Skins 
WHERE ProgrammNumber='1')
что не так?
Пишет "Недопустимое имя объекта Sotrudniki"
0
0 / 25 / 13
Регистрация: 30.04.2014
Сообщений: 516
24.06.2016, 17:51  [ТС]
неужели никто не знает?
0
5971 / 4547 / 1094
Регистрация: 29.08.2013
Сообщений: 28,168
Записей в блоге: 3
24.06.2016, 18:00
вам все написали, потрудитесь почитать
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.06.2016, 18:00
Помогаю со студенческими работами здесь

добавление записи
Подскажите пожалуйста,вот у меня Adoquery такого типа таблица в программе, там примерно 50 столбцов и надо создать форму для добавления...

Добавление записи в бд
Таблица "Служебные" id - счетчик Таблица "Личные" id - числовой Как добавлять записи одновременно? Ниже код, не работает ...

Добавление записи в БД
Здравствуйте, у меня возникла проблема. существует база данных, в ней есть справочник Магазины, мне нужно добавить туда новую запись. ...

Добавление записи в БД
День добрый помогите разобраться с ошибкой. При добавлении записи выдает ошибку о том что не может найти поля для ввода, хотя компонент...

Добавление записи в БД
Знаю тем много! сейчас разобрался как заполнять 1 табличку через sql запрос а как правильно написать запрос для добавление записи в...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru