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

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

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.05.2009, 14:41   #1
Gromsky
Пользователь
 
Аватар для Gromsky
 
Регистрация: 27.02.2008
Сообщений: 64
Радость Построение запроса

Ув. умы! У меня возник такой вопрос: нужно построить запрос который проверял бы на существование идентичных значений в таблице.. таблица проста id и name... нужно вставлять только уникальный name.
Возможен ли такой запрос... просьба заранее, не смеятся...:
Код:
INSERT 
INTO Subjects 
VALUES (NULL, '"+Edit1->Text+"') 
WHERE '"+Edit1->Text+"' not in (SELECT Name FROM Subjects)";
Заранее спасибо.
Ученье свет, а неученье - чуть свет и на работу
Gromsky вне форума Ответить с цитированием
Старый 11.05.2009, 15:41   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

в запросе INSERT не допускается ключевое слово WHERE
другими словами, нельзя вставлять "с условием"

Так Вы задачу не решите.
Вам просто надо предварительно проверить, есть ли вставляемое значение. Приблизительно так (синтаксис подправите под себя):
Код:
AdoQuery1.SQL.Clear;
AdoQuery1.SQL.Add('SELECT COUNT(*) AS CNT FROM Subjects WHERE NAME = '''+Edit1->Text+''');
AdoQuery1.Open;
CntRecord := AdoQuery1.FieldByName('CNT').AsInteger;
AdoQuery1.Close;
if CntRecord =0 then begin
  // тут вставляем нужное значение
end
else
   ShowMessage('Нельзя вставлять дубликаты: '+Edit1->Text);
Serge_Bliznykov вне форума Ответить с цитированием
Старый 11.05.2009, 22:21   #3
Gromsky
Пользователь
 
Аватар для Gromsky
 
Регистрация: 27.02.2008
Сообщений: 64
По умолчанию

Спасибо за ответ...
Еще один вопрос... проблемма с вставкой даты из DateTimePicker в базу данных... как? напрямую date вставить неполучается, неподходит формать для mysql
Ученье свет, а неученье - чуть свет и на работу
Gromsky вне форума Ответить с цитированием
Старый 12.05.2009, 00:23   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

вообще-то, правилами форума запрещено в одной теме задавать больше одного вопроса. (потом если кто будет искать - проблемы будут)...
но, пока по шапке не дали, выскажу своё мнение.
Имхо, дата такая мерзкая штука, что только два способа более-менее позволяют использовать её в запросах: либо писать запрос в прямым преобразованием строки в дату средствами конкретной СУБД, либо, предпочтительней, использовать параметрические запросы (добавить параметер) и передавать дату в DataTime формате ( Parameter(...)...asDateTime := )
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.05.2009, 01:57   #5
Gromsky
Пользователь
 
Аватар для Gromsky
 
Регистрация: 27.02.2008
Сообщений: 64
По умолчанию

спасибо за ответ...
А на счет нескольких вопросов... просто как-то плодить 50 тем за день не хочется- нехорошо
Ученье свет, а неученье - чуть свет и на работу
Gromsky вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
результат запроса Ko$tello БД в Delphi 7 18.04.2012 12:13
Нужна ваша помощь - построение запроса alex2008ean Microsoft Office Access 2 18.12.2008 20:11
Адрес GET запроса mager PHP 4 24.10.2008 10:52
Формирование запроса BlackOmen JavaScript, Ajax 6 15.06.2008 12:37
построение запроса с датой.. bufer Microsoft Office Access 1 06.12.2007 17:13