Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 14.05.2013, 14:25
Аватар для nobik
nobik nobik вне форума
Прохожий
 
Регистрация: 14.05.2013
Сообщения: 4
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию фильтр query

Всем привет, получается фильтрация слов, но не чисел, я раз сто переделывала код, бес толку, если интересно вот программа: http://webfile.ru/6518808 пароль:123

самое обидное , что программа практически готова, только из за такой мелочи не могу сдать (
Ответить с цитированием
  #2  
Старый 14.05.2013, 17:58
Аватар для Mrak
Mrak Mrak вне форума
Местный
 
Регистрация: 26.01.2013
Адрес: МО
Сообщения: 438
Версия Delphi: XE2
Репутация: 17
По умолчанию

напиши здесь запрос, что в фильтре
не охота ниче качать
__________________
Я за здоровый экстрим!
Спасибо за "спасибо")
Ответить с цитированием
Этот пользователь сказал Спасибо Mrak за это полезное сообщение:
nobik (14.05.2013)
  #3  
Старый 14.05.2013, 18:38
Аватар для nobik
nobik nobik вне форума
Прохожий
 
Регистрация: 14.05.2013
Сообщения: 4
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Код:
  qry1.Active:=False;
  qry1.SQL.Clear;
  qry1.SQL.Add('SELECT *');
  qry1.SQL.Add('FROM xochy');
  qry1.SQL.Add('WHERE количество комнат LIKE  '''+ cbb2.Text + '''' );
  qry1.Active:=True;
у меня там много вариантов, но этот мне кажется более правильным т.к. он из книги и не сразу выдает ошибку)

Последний раз редактировалось lmikle, 15.05.2013 в 06:43.
Ответить с цитированием
  #4  
Старый 14.05.2013, 19:31
Аватар для Yurk@
Yurk@ Yurk@ вне форума
Специалист
 
Регистрация: 07.09.2007
Адрес: Украина, г. Днепропетровск
Сообщения: 892
Версия Delphi: 7 + ОгнеПтица
Репутация: выкл
По умолчанию

Код:
  qry1.Close;
  qry1.SQL.Text := 'SELECT * FROM xochy WHERE [количество комнат] = ' + cbb2.Text;
  qry1.Open;
не?
__________________
Поживу - увижу, Доживу - узнаю, Выживу - учту.
[P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
Ответить с цитированием
Этот пользователь сказал Спасибо Yurk@ за это полезное сообщение:
nobik (14.05.2013)
  #5  
Старый 14.05.2013, 19:50
Аватар для nobik
nobik nobik вне форума
Прохожий
 
Регистрация: 14.05.2013
Сообщения: 4
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

сработало)) ты гений) оказывается так просто, над этими парочками строчек я так долго мучилась

а с ценой так же будет ? от 100 до 200 к примеру
Код:
qry1.SQL.Text := 'SELECT * FROM xochy WHERE [цена (руб)]> = ' + edt1.Text+ 'and цена (руб) <='+edt2.Text;
MAD: Ну вы понели!
компилирует, правда потом пишет что пропущен оператор=\

Последний раз редактировалось M.A.D.M.A.N., 15.05.2013 в 07:37.
Ответить с цитированием
  #6  
Старый 14.05.2013, 20:00
Аватар для Yurk@
Yurk@ Yurk@ вне форума
Специалист
 
Регистрация: 07.09.2007
Адрес: Украина, г. Днепропетровск
Сообщения: 892
Версия Delphi: 7 + ОгнеПтица
Репутация: выкл
По умолчанию

Код:
qry1.SQL.Text := 'SELECT * FROM xochy WHERE [цена (руб)] >= ' + Edt1.Text + ' AND  [цена (руб)] <= ' + Edt2.Text;
или
Код:
qry1.SQL.Text := 'SELECT * FROM xochy WHERE [цена (руб)] BETWEEN ' + Edt1.Text + ' AND ' + Edt2.Text;
а вообще правельнее будет использовать параметры в запросе.
__________________
Поживу - увижу, Доживу - узнаю, Выживу - учту.
[P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
Ответить с цитированием
Этот пользователь сказал Спасибо Yurk@ за это полезное сообщение:
nobik (14.05.2013)
  #7  
Старый 14.05.2013, 20:16
Аватар для nobik
nobik nobik вне форума
Прохожий
 
Регистрация: 14.05.2013
Сообщения: 4
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

странно, в обоих случаях выдает ошибку
в первом синтаксическую ошибку, а во втором про несоответствие типов

ну мне просто слегка сложновато это осваивать, поэтому смотрю по примерам)
Ответить с цитированием
  #8  
Старый 14.05.2013, 22:12
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

А вы в отладчике посмотрите, что у вас собственно получается после сборуи в qry1.SQL.Text.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #9  
Старый 15.05.2013, 06:00
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Немного не по теме, но в таком варианте база не откроется на другом компьютере, т.к. возможно не совпадет путь к файлу *.mdb. Для решения можно в процедуру TForm1.FormCreate добавить вот это
Код:
con1.ConnectionString:=
'Provider=Microsoft.Jet.OLEDB.4.0;' +
'User ID=Admin;' +
'Data Source='   + ExtractFileDir(ParamSTR(0)) + '\proba.mdb;' +
'Mode=Share Deny None;'     +
'Extended Properties="";'     +
'Jet OLEDB:System database="";' +
'Jet OLEDB:Registry Path="";'     +
'Jet OLEDB:Database Password="";'   +
'Jet OLEDB:Engine Type=5;'            +
'Jet OLEDB:Database Locking Mode=1;'    +
'Jet OLEDB:Global Partial Bulk Ops=2;'    +
'Jet OLEDB:Global Bulk Transactions=1;'     +
'Jet OLEDB:New Database Password="";'         +
'Jet OLEDB:Create System Database=False;'       +
'Jet OLEDB:Encrypt Database=False;'               +
'Jet OLEDB:Don''t Copy Locale on Compact=False;'    +
'Jet OLEDB:Compact Without Replica Repair=False;'     +
'Jet OLEDB:SFP=False';
con1.Connected:= true;
предварительно у con1 очистив содержимое строки ConnectionString и переведя его свойство Connected в false.
Ответить с цитированием
  #10  
Старый 15.05.2013, 07:41
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Цитата:
Сообщение от nobik
сработало)) ты гений) оказывается так просто, над этими парочками строчек я так долго мучилась

а с ценой так же будет ? от 100 до 200 к примеру
Код:
qry1.SQL.Text := 'SELECT * FROM xochy WHERE [цена (руб)]> = ' + edt1.Text+ 'and цена (руб) <='+edt2.Text;
MAD: Ну вы понели!
компилирует, правда потом пишет что пропущен оператор=\
Тётя (судя по ответам), видишь, что у тебя написано "> =" вместо ">="? Вот он и не понимает. Ну и пробел еще перед "and" пропущен.

Внимательней будь.

А вообще, чтобы такое не городить, надо использовать параметры:
Код:
qry1.SQL.Text := 'SELECT * FROM xochy WHERE [цена (руб)]>= :val1 and цена (руб) <= :val2'
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 18:31.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter