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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.01.2014, 19:20   #1
alexpadre
Новичок
Джуниор
 
Регистрация: 07.01.2014
Сообщений: 10
По умолчанию Как перевести Edit.Text из String в Number (SQL-запрос)

В таблице Vakansii есть поле Vozrast типа Number. Как его сравнить с Edit.Text в SQL?
Пробовал так, неполучилось:
Код Delphi
Код:
1 Vakansii.Vozrast  like cast( '''+edit1.Text+''' as Number)
Простите, если вопрос глупый, только учусь программировать.
alexpadre вне форума Ответить с цитированием
Старый 09.01.2014, 19:29   #2
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,022
По умолчанию

не похоже на "учусь"..

зачем тут like, зачем тут cast, зачем тут edit1.Text?
eval вне форума Ответить с цитированием
Старый 09.01.2014, 19:43   #3
alexpadre
Новичок
Джуниор
 
Регистрация: 07.01.2014
Сообщений: 10
По умолчанию

SQL-запрос базы данных в Delphi
Хорошо вот полный код запроса
Код:
if checkbox1.Checked then s1:=' and  Vakansii.Vozrast  between cast( '''+edit1.Text+''' as Number)and cast('''+edit2.Text+''' as Number)' else s1:='';
 query1.SQL.Clear;
 query1.SQL.Add('SELECT * FROM Vakansii WHERE ' +s1 );
 query1.Open;
 dbgrid1.DataSource:=datasource2;
end;
Для типа Date работает

Последний раз редактировалось alexpadre; 09.01.2014 в 19:45.
alexpadre вне форума Ответить с цитированием
Старый 09.01.2014, 20:58   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
Для типа Date работает
Неужели? Если подставить s1, то получим
Код:
... WHERE and  Vakansii.Vozrast ...
Та в жизни это не будет работать. Дальнейшее в s1 даже и не смотрел
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 09.01.2014, 21:38   #5
alexpadre
Новичок
Джуниор
 
Регистрация: 07.01.2014
Сообщений: 10
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Неужели? Если подставить s1, то получим
Код:
... WHERE and  Vakansii.Vozrast ...
Та в жизни это не будет работать. Дальнейшее в s1 даже и не смотрел
and, потому что у меня идет поиск не по одному полю.
Если так будет Вам проще вот полный код:
Код:
procedure TForm7.Button1Click(Sender: TObject);
var s,s1,s2,s3:string;
begin
 if button1.Caption='Поиск' then button1.Caption:='Отменить поиск'
  else
   begin
    button1.Caption:='Поиск';
    dbgrid1.DataSource:=datasource1;
    exit;
   end;
 if checkbox1.Checked then s1:=' and  Doljnost.Doljnost like '''+edit1.Text+'%''' else s1:='';
 if checkbox2.Checked then s2:=' and  Obrazovanie.Obrazov like '''+edit2.Text+'%''' else s2:='';
 if checkbox3.Checked then s3:=' and  Vakansii.Data  between cast( '''+edit3.Text+''' as Date)and cast('''+edit4.Text+''' as Date)' else s3:='';
 s:=s1+s2+s3;
 query1.SQL.Clear;
 query1.SQL.Add('SELECT * FROM Vakansii,Staj,Obrazovanie,Region,Doljnost,Rabotodeely,Grajdanstvo,Pol WHERE Vakansii.ID_Doljnost=Doljnost.ID_Doljnost and Vakansii.ID_Obrazov=Obrazovanie.ID_Obrazov and Vakansii.ID_Staj=Staj.ID_Staj' +
 ' and Vakansii.ID_Region=Region.ID_Region and Vakansii.ID_Rabotodately=Rabotodeely.ID_Rabotodately and Vakansii.ID_Pol=Pol.ID_Pol and Vakansii.ID_Grajdan=Grajdanstvo.ID_Grajdan'+s);
 query1.Open;
 dbgrid1.DataSource:=datasource2;
end;
А теперь пожалуйста объясните как мне сделать IF для Vakansii.Vozrast типа Number, что бы искало between '''+edit5.Text+''' and '''+edit6.Text+'''

Последний раз редактировалось alexpadre; 09.01.2014 в 21:43.
alexpadre вне форума Ответить с цитированием
Старый 09.01.2014, 21:59   #6
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,022
По умолчанию

ужас в ночи

тут напрашивается переделка
если у вас есть справочники то давайте и выбор по ним а не лайками лайкать.. а поиск по соответствии делать на клиенте
вощем, порвать и сжечь

а после взять книжицу и прочитать про адо, параметры, и т.д.
eval вне форума Ответить с цитированием
Старый 09.01.2014, 22:12   #7
alexpadre
Новичок
Джуниор
 
Регистрация: 07.01.2014
Сообщений: 10
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
ужас в ночи

тут напрашивается переделка
если у вас есть справочники то давайте и выбор по ним а не лайками лайкать.. а поиск по соответствии делать на клиенте
вощем, порвать и сжечь

а после взять книжицу и прочитать про адо, параметры, и т.д.
Я знаю что Like это не совсем удачно, но у меня такое задание от преподавателя. Лучше б посоветовали по существу вопроса
alexpadre вне форума Ответить с цитированием
Старый 09.01.2014, 22:18   #8
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,022
По умолчанию

и как звучит задание?
Цитата:
по существу вопроса
а это
Цитата:
взять книжицу и прочитать про адо, параметры, и т.д
разве не по существу?
eval вне форума Ответить с цитированием
Старый 09.01.2014, 22:26   #9
alexpadre
Новичок
Джуниор
 
Регистрация: 07.01.2014
Сообщений: 10
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
и как звучит задание?

а это

разве не по существу?
Я спрашиваю, как привести поле Vozrast типа Number и поля Edit5.Text и Edit6.Text к одному типу, что бы записать Between
alexpadre вне форума Ответить с цитированием
Старый 09.01.2014, 22:37   #10
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,022
По умолчанию

вот когда почитаете, то поймете что ничего никуда переводить не надо
eval вне форума Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SQL-запрос по значению из Edit _Irina_ БД в Delphi 8 13.05.2011 14:51
Процедуры: Ввод(text)-Вычисление(string)-Вывод(text) FYBVFPFYBC Помощь студентам 2 06.05.2010 23:15
как перевести Pchar в string? green-shrek Помощь студентам 3 07.04.2010 19:01
Sql-запрос по значению, введенному в Edit setrik777 БД в Delphi 5 27.05.2009 15:26
Как перевести Point в String??? Chepa Общие вопросы Delphi 2 09.01.2007 09:26