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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.04.2016, 18:41   #1
x_X-x3
Пользователь
 
Регистрация: 25.05.2013
Сообщений: 14
По умолчанию Проблема с SQL запросом

Здравствуйте.Помогите решить проблему.Задача программа такова:
Имеется база и нужна фильтрация.Допустим есть столбец 'Расстояние действия' и 'Масса' в таблице 'Видеокамеры'.И при вводе в компонент Edit допустим значение по 'Расстоянию' и 'Массе' 15,он все что ниже 15 убирает из DBGrid.
Но есть проблема.Вылезает ошибка "неопределенная функция IntToStr в выражении"

А вот сам код

procedure TForm3.FormCreate(Sender: TObject);
begin
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add( 'SELECT * FROM [Видеокамеры] WHERE [Расстояние действия] > + StrToInt(Edit1.Text)');
Showmessage(ADOQuery1.SQL.Text);
ADOQuery1.Active:=True;
end;
x_X-x3 вне форума Ответить с цитированием
Старый 15.04.2016, 19:26   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Еще бы. Нет функции StrToInt в sql. И Edit1.Text тоже нет. Посмотри внимательно на кавычки и на то, что в запрос попадает
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 15.04.2016, 19:57   #3
Dvoishnik
Форумчанин
 
Регистрация: 12.02.2011
Сообщений: 808
По умолчанию

чувствую себя гениальным программистом)
Код:
'SELECT * FROM [Видеокамеры] WHERE [Расстояние действия] > ' + Edit1.Text
Терпение!Дежурный экстрасенс скоро свяжется с вами!
Dvoishnik вне форума Ответить с цитированием
Старый 15.04.2016, 21:10   #4
x_X-x3
Пользователь
 
Регистрация: 25.05.2013
Сообщений: 14
По умолчанию

Цитата:
Сообщение от Dvoishnik Посмотреть сообщение
чувствую себя гениальным программистом)
Код:
'SELECT * FROM [Видеокамеры] WHERE [Расстояние действия] > ' + Edit1.Text
смею огорчить,но так вылезает ошибка "Ошибка синтаксиса(пропущен оператор) в выражении запроса Расстояние действия > +Edit1.Text' "
x_X-x3 вне форума Ответить с цитированием
Старый 15.04.2016, 22:38   #5
NEymexa:c
Пользователь
 
Регистрация: 26.02.2015
Сообщений: 24
По умолчанию

Возможно так:
Код:
ADOQuery1.SQL.Add( 'SELECT * FROM [Видеокамеры] WHERE [Расстояние действия] > values(:M)');
ADOQuery1.Parameters.ParamByName('M').Value:=StrToInt(Edit1.Text);
NEymexa:c вне форума Ответить с цитированием
Старый 15.04.2016, 22:45   #6
x_X-x3
Пользователь
 
Регистрация: 25.05.2013
Сообщений: 14
По умолчанию

Цитата:
Сообщение от NEymexa:c Посмотреть сообщение
Возможно так:
Код:
ADOQuery1.SQL.Add( 'SELECT * FROM [Видеокамеры] WHERE [Расстояние действия] > values(:M)');
ADOQuery1.Parameters.ParamByName('M').Value:=StrToInt(Edit1.Text);
Спасибо,но теперь вылезает ошибка "is not integer value"
x_X-x3 вне форума Ответить с цитированием
Старый 15.04.2016, 23:34   #7
Dvoishnik
Форумчанин
 
Регистрация: 12.02.2011
Сообщений: 808
По умолчанию

Цитата:
Сообщение от x_X-x3 Посмотреть сообщение
смею огорчить,но так вылезает ошибка "Ошибка синтаксиса(пропущен оператор) в выражении запроса Расстояние действия > +Edit1.Text' "
смею вас расстроить вы не умеете копировать.
Терпение!Дежурный экстрасенс скоро свяжется с вами!
Dvoishnik вне форума Ответить с цитированием
Старый 16.04.2016, 08:35   #8
x_X-x3
Пользователь
 
Регистрация: 25.05.2013
Сообщений: 14
По умолчанию

Цитата:
Сообщение от Dvoishnik Посмотреть сообщение
смею вас расстроить вы не умеете копировать.
Вот код программы,то что вы предложили,уже давно испробовано
Код:
ADOQuery1.SQL.Add( 'SELECT * FROM Видеокамеры  WHERE Расстояние действия > ' + Edit1.Text);
И вылезает все таже самая "Ошибка синтаксиса(пропущен оператор) в выражении запроса Расстояние действия > "
x_X-x3 вне форума Ответить с цитированием
Старый 16.04.2016, 11:58   #9
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
Сообщение от x_X-x3 Посмотреть сообщение
Вот код программы,то что вы предложили,уже давно испробовано
Код:
ADOQuery1.SQL.Add( 'SELECT * FROM Видеокамеры  WHERE Расстояние действия > ' + Edit1.Text);
И вылезает все таже самая "Ошибка синтаксиса(пропущен оператор) в выражении запроса Расстояние действия > "
Главное спакоино.! смотрите пример и тренируйте
Код:
procedure TForm1.Edit1Change(Sender: TObject);
begin
 if Trim(Edit1.Text)<>'' then
 begin
  with ADOQuery1 do
  begin
    SQL.Clear;
    SQL.Add('SELECT * FROM [Видеокамеры] '+
            'WHERE [Расстояние действия] > :MyCh ');
    Parameters.ParamByName('MyCh').Value := Trim(Edit1.Text);
    Open;
  end;
 end;
end;

end.
Можно скачать проект и смотрет когда вам будеть удобно https://yadi.sk/d/tuECMOeVr3Zjf

Цитата:
Сообщение от Dvoishnik Посмотреть сообщение
чувствую себя гениальным программистом)
Код:
'SELECT * FROM [Видеокамеры] WHERE [Расстояние действия] > ' + Edit1.Text
Сожалению не добрались до вашего уровня . Вы здесь один "единственный и гениальный"

Цитата:
Сообщение от Dvoishnik Посмотреть сообщение
смею вас расстроить вы не умеете копировать.
Смеяться можно да .! Но я боюсь что вы так не остались на всю жизнь

Последний раз редактировалось xxbesoxx; 17.04.2016 в 02:02.
xxbesoxx вне форума Ответить с цитированием
Старый 16.04.2016, 16:15   #10
x_X-x3
Пользователь
 
Регистрация: 25.05.2013
Сообщений: 14
По умолчанию

Цитата:
Сообщение от xxbesoxx Посмотреть сообщение
Главное спакоино.! смотрите пример и тренируйте
Код:
procedure TForm1.Edit1Change(Sender: TObject);
begin
 if Trim(Edit1.Text)<>'' then
 begin
  with ADOQuery1 do
  begin
    SQL.Clear;
    SQL.Add('SELECT * FROM [Видеокамеры] '+
            'WHERE [Расстояние действия] > :MyCh ');
    Parameters.ParamByName('MyCh').Value := Trim(Edit1.Text);
    Open;
  end;
 end;
end;

end.
Можно скачать проект и смотрет когда вам будеть удобно https://yadi.sk/d/tuECMOeVr3Zjf


Сожалению не добрались до вашего уровня . Вы здесь один "единственный и гениальный"


Смеяться можно да .! Но я боюсь что вы так не остаются на всю жизнь
Большое спасибо вам за проделанную работу)
Все работает как часы!
Еще раз спасибо
x_X-x3 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с SQL-запросом julia9311 Microsoft Office Access 3 10.12.2012 02:27
Проблема с SQL запросом Alexsandr БД в Delphi 7 06.07.2011 12:32
Проблема с SQL-запросом stscolt БД в Delphi 5 19.02.2010 16:47
Проблема с SQL запросом Bilargo БД в Delphi 4 27.11.2009 19:10
Проблема с SQL Запросом Worms БД в Delphi 7 13.01.2008 23:09