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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.02.2014, 13:21   #1
serj-07
Пользователь
 
Аватар для serj-07
 
Регистрация: 07.03.2009
Сообщений: 68
По умолчанию Проверить данные из EDIT

Помогите с запросом:
Проверить данные из EDIT

Код:
 if   dm.ADOQuery1.SQL.Add('SELECT Naimen FROM postavshchiki')<>Edit1.Text then
или
Код:
if  not  dm.ADOQuery1.SQL.Add('SELECT Naimen FROM postavshchiki WHILE'"Edit1.Text%") then
Спасибо
Мы все учились понемногу
Чему-нибудь и как-нибудь!!!
serj-07 вне форума Ответить с цитированием
Старый 03.02.2014, 13:49   #2
Dark_Spirit
Форумчанин
 
Аватар для Dark_Spirit
 
Регистрация: 05.02.2009
Сообщений: 324
По умолчанию

Цитата:
Код:
Код:
 if   dm.ADOQuery1.SQL.Add('SELECT Naimen FROM postavshchiki')<>Edit1.Text then
это бред какой-то.....
Цитата:
или
Код:
Код:
if  not  dm.ADOQuery1.SQL.Add('SELECT Naimen FROM postavshchiki WHILE'"Edit1.Text%") then
аналогично....
Я вот с трудом понимаю - зачем вы проверяете добавление текста запроса в компонент? быстрей всего вам нужно проверить результат выполнения этого запроса, это можно сделать когда запрос уже выполнился, ну или не выполнился в зависимости от текста....
во втором примере самого запроса после WHERE нужно указывать условие отбора, а не просто текст с EDIT-a
Тяжело быть бестолковым.....
Dark_Spirit вне форума Ответить с цитированием
Старый 03.02.2014, 13:49   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
 with dm.ADOQuery1 do begin
  SQL.Text:=SELECT count(*) FROM postavshchiki where Naimen='+QuotedStr(Edit1.Text));
  Open;
  if eof then ShowMessage('Не найдено');
  close;
 end;
Ясна идея?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.02.2014, 16:32   #4
serj-07
Пользователь
 
Аватар для serj-07
 
Регистрация: 07.03.2009
Сообщений: 68
По умолчанию

Stilet,Dark_Spirit Спасибо.

Решил для самопознания переделать на запросы свою программу, заодно научиться SQL, раньше запросами не пользовался.

Исходный листинг:

Код:
rocedure TForm3.Button4Click(Sender: TObject);
begin
  if   Edit1.Text<>'' then
    begin
      if not DM.postavTable.Locate('Naimen', Edit1.Text, [])then
        begin
          With DM.postavTable do
            begin
              Insert;
              FieldByName('Naimen').Value:=Edit1.Text;
              FieldByName('Adres').Value:=Edit2.Text;
              FieldByName('Telefon').Value:=Edit3.Text;
              Post;
            end;
       end
    else
      begin
        ShowMessage('Поставщик существует');
      end;
    Edit1.Text:='';
    Edit2.Text:='';
    Edit3.Text:='';
    end
  else
    ShowMessage('Введите поставщика');
end;
Подскажите где неправильно, не сохраняет
Код:
procedure TForm3.Button25Click(Sender: TObject);
begin
  with dm.ADOQuery1 do
    begin
      Close;
      SQL.Clear;
      SQL.Add('SELECT*FROM postavshchiki WHERE Naimen LIKE'+QuotedStr(edit1.Text)) ;
      Open;
      if eof then
        begin
          Close;
          SQL.Clear;
          SQL.Add('INSERT INTO postavshchiki (Naimen,Adres) VALUES ("'+edit1.Text+'","'+edit2.Text+'")');
          Open;
        end
      else
        ShowMessage('Поставщик  существует');
    end;
end;
спасибо
Мы все учились понемногу
Чему-нибудь и как-нибудь!!!

Последний раз редактировалось serj-07; 03.02.2014 в 18:51.
serj-07 вне форума Ответить с цитированием
Старый 03.02.2014, 19:22   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Код:
SQL.Add('INSERT INTO postavshchiki (Naimen,Adres) VALUES ("'+edit1.Text+'","'+edit2.Text+'")');
          Open;
для операций изменения данных нужно вызывать метод ExecSQL (а не Open)

p.s. лучше использовать ОТДЕЛЬНЫЙ AdoQuery для манипуляции данными..
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.02.2014, 19:35   #6
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

с кавычками каша
eval вне форума Ответить с цитированием
Старый 03.02.2014, 19:50   #7
serj-07
Пользователь
 
Аватар для serj-07
 
Регистрация: 07.03.2009
Сообщений: 68
По умолчанию

Ошибка
Код:
 begin
          Close;
          SQL.Clear;
          SQL.Add('INSERT INTO postavshchiki (Naimen) VALUES'+QuotedStr(edit1.Text));
          ExecSQL;
        end
Мы все учились понемногу
Чему-нибудь и как-нибудь!!!
serj-07 вне форума Ответить с цитированием
Старый 03.02.2014, 20:39   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Ошибка
Синтаксическая )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.02.2014, 23:22   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

я бы добавил скобки для значения:
Код:
SQL.Add('INSERT INTO postavshchiki (Naimen) VALUES ('+QuotedStr(edit1.Text)+')');
а вообще, лучше использовать параметрический запрос. (это когда в тексте запроса вместо значения параметер).

p.s. если поле adres не допускает значение NULL, будет ошибка!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как проверить есть ли данные в поле Lecter2009 БД в Delphi 0 12.10.2010 10:59
как проверить введенные даннные в edit на формат ? бедный_студент Помощь студентам 2 17.12.2009 21:05
Проверить текст в Edit Nikone Общие вопросы Delphi 5 15.12.2009 18:46
Данные в Edit program123 Общие вопросы Delphi 5 08.05.2009 18:12
проверить изменились ли данные dr.Chas Общие вопросы Delphi 2 30.07.2007 17:03