Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.06.2016, 22:27   #1
Ernest027
Форумчанин
 
Регистрация: 27.04.2015
Сообщений: 437
По умолчанию Добавление несуществующей записи

Привет всем)
Подскажите мою ошибку в этом коде:
Код:
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.
Буду очень признателен, а то уже неделю бьюсь.
Спасибо.

Последний раз редактировалось Ernest027; 20.06.2016 в 22:43.
Ernest027 вне форума Ответить с цитированием
Старый 21.06.2016, 07:33   #2
BARNEY
Участник клуба
 
Регистрация: 23.04.2009
Сообщений: 1,058
По умолчанию

Цитата:
select '+quotedstr(Form1.sLabel5.Caption)+ ' where
а FROM где?
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
BARNEY вне форума Ответить с цитированием
Старый 21.06.2016, 08:10   #3
Ernest027
Форумчанин
 
Регистрация: 27.04.2015
Сообщений: 437
По умолчанию

Цитата:
а FROM где?
я выбираю же не из таблицы, а из label, поэтому FROM не надо. Прошу поправить, если я не прав.
Код:
insert into Skins (ProgrammNumber) select '+quotedstr(Form1.sLabel5.Caption)+' where not exists (select * from Skins where ProgrammNumber='+quotedstr(Form1.sLabel5.Caption))
так все работает.
Ernest027 вне форума Ответить с цитированием
Старый 21.06.2016, 08:41   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Выбираешь строковую константу вообще-то. А SotrudnikID откуда возьмется, если from нет?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 21.06.2016, 11:27   #5
BARNEY
Участник клуба
 
Регистрация: 23.04.2009
Сообщений: 1,058
По умолчанию

А когда в delphi SQL стал из label выбирать?

Цитата:
select '+quotedstr(Form1.sLabel5.Caption)+ ' where not exists (select * from Skins where ProgrammNumber='+quotedstr(Form1.sL abel5.Caption))
Ещё раз для особо одарённых (мой классный руководитель)

У Вас получится
Код:
 select 'Caption'  ТУТ ДОЛЖЕН БЫТЬ FROM where
А лучше дайте текст запроса уже со вставленными параметрами.
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
BARNEY вне форума Ответить с цитированием
Старый 21.06.2016, 18:35   #6
Ernest027
Форумчанин
 
Регистрация: 27.04.2015
Сообщений: 437
По умолчанию

select label3.caption FROM ОТКУДА? С ФОРМЫ?
Ernest027 вне форума Ответить с цитированием
Старый 21.06.2016, 18:49   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

При чем здесь форма? Запрос ни чего о форме и прочем не знает.

Код:
insert into Skins (SotrudnikID,ProgrammNumber) 
  select Sotrudniki.SotrudnikID,'бла-бла-бла' 
    from Sotrudniki 
    where Sotrudniki.SotrudnikID=12345 and 
          not exists (select 0 from Skins where Skins.ProgrammNumber='бла-бла-бла')
Вместо констант 'бла-бла-бла' и 12345 подставь свои данные с формы.
Цитата:
Поясню: Таблица Skins связана с таблицей Sotrudniki полем SotrudnikID. Нужно в таблицу Skins в поле ProgrammNumber вставить новую запись (уникальную).
Коль связана, то нужно и внешний ключ во вновь создаваемую запись записать. И в поле новая запись не вставляется, а вставляется в таблицу. А может тебе update нужно для обновления поля Skins.ProgrammNumber существующей записи?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 21.06.2016 в 18:54.
Аватар вне форума Ответить с цитированием
Старый 22.06.2016, 08:51   #8
Ernest027
Форумчанин
 
Регистрация: 27.04.2015
Сообщений: 437
По умолчанию

Код:
insert into Skins (SotrudnikID,ProgrammNumber) select Sotrudniki.SotrudnikID,'1' where SotrudnikID=:SotrudnikID and not exists (select * from Skins where ProgrammNumber='1')
Не работает. Пишет "Недопустимое имя столбца SotrudnikID"

Последний раз редактировалось Ernest027; 22.06.2016 в 08:57.
Ernest027 вне форума Ответить с цитированием
Старый 22.06.2016, 08:58   #9
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А чего ему работать? В #7 не такой запрос
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 22.06.2016, 08:58   #10
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Код:
select 5 where sotrudnikID=:nn
где (в какой таблице) искать это самое sotrudnikID ??
чтобы узнать это и нужен from ...
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 22.06.2016 в 09:08.
evg_m вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавление записи из одного DBGrid в другой DBGrid c помощью кнопки, а также удаление записи Evgen7 БД в Delphi 20 16.02.2014 17:05
добавление записи в БД kuzmich БД в Delphi 2 13.12.2013 14:07
Добавление записи в бд yuta_86 БД в Delphi 10 31.05.2013 12:09
Добавление записи в БД Кротяка C++ Builder 5 20.05.2013 22:44
Добавление записи в бд Lokos БД в Delphi 8 15.12.2009 16:36