Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 2
Регистрация: 29.03.2013
Сообщений: 54

Можно ли в условии запроса WHERE использовать символы подстановки типа * ?

31.10.2015, 09:29. Показов 905. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
может быть вопрос не совсем по дельфи, но

можно ли в условии запроса WHERE использовать символы подстановки типа * ?

мне нужно выбрать данные по тегу, что-то типа так
SQL
1
2
3
SELECT   TOP(1)  DateTime, TagName, VALUE
FROM         History
WHERE     (TagName = 'Temp') AND (DateTime = '2015-10-30 11:1*')
данные сыпятся в бд раз в 20-30 секунд и мне нужно делать часовые выборки за сутки(время часа выборки будет меняться)

можно написать типа
SQL
1
WHERE     (TagName = 'Temp') AND (DateTime > '2015-10-31 11:00') AND (DateTime < '2015-10-31 11:03')
но это как-то неуклюже выглядит или другого варианта у меня нет?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.10.2015, 09:29
Ответы с готовыми решениями:

Какие суммы можно уплатить монетами по 3 и 5 рублей при условии, что нужно использовать оба типа монет?
Какие суммы можно уплатить монетами по 3 и 5 рублей при условии, что нужно использовать оба типа монет? Обобщение: какие числа...

Можно ли в коде в Visual Studio использовать в именах переменных подстрочные знаки, спец. символы (типа ∑, ° и т.п.)?
Хотелось бы иметь возможность вместо вот этого: double dP = pResPresent - pResLast; double tempC = 20; для повышения читаемости кода...

Символы в переменной типа bool и в условии
что обозначают третья и четвёртая строки в данном куске кода? for (i = 0; i &lt; array.Length; ++i) { ...

10
5978 / 4553 / 1095
Регистрация: 29.08.2013
Сообщений: 28,181
Записей в блоге: 3
31.10.2015, 10:07
maxn,
какая у вас база?

если MSSQL то можно делать выборку по частям даты
Delphi
1
select * from t where DATEPART(year,ПОЛЕ)='2015' and DATEPART(month,ПОЛЕ)='10'
year yy, yyyy
quarter qq, q
month mm, m
dayofyear dy, y
day dd, d
week wk, ww
weekday dw
hour hh
minute mi, n
second ss, s
millisecond ms


Пример:

SELECT DATEPART(month, GETDATE())
1
0 / 0 / 2
Регистрация: 29.03.2013
Сообщений: 54
31.10.2015, 13:06  [ТС]
qwertehok, спасибо
правда работает как-то странно
если делаю так
SQL
1
2
3
SELECT     TOP (1) DateTime, TagName, VALUE
FROM         History
WHERE     (TagName = 'Temp') AND (DATEPART(HOUR, DateTime) = '10')
то открывает данные за вчерашнее число
если так:
SQL
1
2
3
SELECT     TOP (1) DateTime, TagName, VALUE
FROM         History
WHERE     (TagName = 'Temp') AND (DateTime > '2015-10-31') AND (DATEPART(HOUR, DateTime) = '10')
то работает правильно. не знаю в чем фишка, но в общем-то мне пойдет

И у меня еще один вопрос, есть ли аналог TOP(1)
чтобы выборка брала не последний результат часа, а самый первый ?
0
554 / 484 / 191
Регистрация: 11.12.2013
Сообщений: 2,507
31.10.2015, 14:09
Насчет top (1) - используйте order by
1
5978 / 4553 / 1095
Регистрация: 29.08.2013
Сообщений: 28,181
Записей в блоге: 3
31.10.2015, 15:02
Цитата Сообщение от maxn Посмотреть сообщение
И у меня еще один вопрос, есть ли аналог TOP(1)
чтобы выборка брала не последний результат часа, а самый первый ?
делай ORDER BY для сортировки от min до max
или ORDER BY DESC для сортировки от max до min
1
0 / 0 / 2
Регистрация: 29.03.2013
Сообщений: 54
31.10.2015, 16:31  [ТС]
чего-то совсем запутался..
на первой форме выборка работает
открываю по кнопке вторую форму, делаю на ней выборку - хрен, ничего не получает, хотя и ошибок коннекта не выдает. делаю все идентично первой форме, только компоненты продублировал
0
5978 / 4553 / 1095
Регистрация: 29.08.2013
Сообщений: 28,181
Записей в блоге: 3
31.10.2015, 17:22
maxn,
компоненты вообще не надо дублировать
достаточно 1 Connection и 1 Query
только нужно делать Connection.Connect:=false;
и Query.Active:=false;
0
0 / 0 / 2
Регистрация: 29.03.2013
Сообщений: 54
31.10.2015, 18:42  [ТС]
qwertehok, у меня с первой формы вызывается вторая Form2.Show()
для этого надо в uses добавить юнит второй формы
соответственно, чтобы использовать ADOConnection и ADOQuery во второй форме, надо в юните второй формы в uses прописать первую, но тогда получается зацикливание - компилятор ругается. поэтому я дублировал компоненты
0
554 / 484 / 191
Регистрация: 11.12.2013
Сообщений: 2,507
31.10.2015, 18:51
ADOConnection должен располагаться в TDataModul и использоваться в unit1 и unit2.
0
5978 / 4553 / 1095
Регистрация: 29.08.2013
Сообщений: 28,181
Записей в блоге: 3
31.10.2015, 18:53
maxn,
у вас на что-то другое ругается

вполне допускается использование на второй форме
Delphi
1
Form1.Connection.Connect:=false;
ну даже если продублировали, то тоже ничего. никакой ошибки быть не должно. Показывайте код.

Добавлено через 37 секунд
Алекcей, Connection должен создаваться динамически и удаляться после получения данных.
0
0 / 0 / 2
Регистрация: 29.03.2013
Сообщений: 54
01.11.2015, 06:05  [ТС]
Алекcей, а как это? я просто кидаю этот компонент на форму1 и все

код завтра покажу, если не получится ничего. он на работе остался

Добавлено через 11 часов 6 минут
в общем странно..

от ошибки зацикливания юнитов избавился, перенес uses unit1 под implementation
на второй форме использую компоненты первой:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
sql1:='SELECT TOP(1) * FROM History WHERE (TagName=''Temp'')';
 
 try
  Form1.AdoConnection1.Open;
 
  Form1.ADOQuery1.SQL.Text:=sql1;ф
  Form1.ADOQuery1.Active:=true;
  Form1.ADOQuery1.Open;
  except
    Form1.ADOQuery1.Active := False;
    Label1.Caption:='Нет подключения к серверу';
    Form1.AdoConnection1.Close;
 end;
 
 Label1.Caption:=Form1.DBText1.Caption;
 
 Edit3.Text:=DBText1.Caption;
 
 Form1.ADOQuery1.Close;
 Form1.AdoConnection1.Close;
в DBText1 формы1 значение выводится
но в DBText1 распоолженный на 2-й форме(который через object inspector также настроен на ADOQuery первой формы) ничего не выводится. в этом видимо и был косяк изначально, а почему этот DBText не получает данные не понятно, хотелось бы через него получать, чтобы данные не пересекались с первой формой никак.

Добавлено через 6 минут
короче проблема была в DBText1 второй формы, я в инспекторе не прописал в его свойствах поле DataField
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.11.2015, 06:05
Помогаю со студенческими работами здесь

Можно ли использовать метод в условии if?
Всем привет,есть такой вопрос, можно ли использовать методы в условиях if Пример Есть метод q1 public void q1() { ...

Как использовать символы из русского алфавита, а так же символы типа "█" "░" и т.д.?
Как использовать символы из русского алфавита, а так же символы типа &quot;█&quot; &quot;░&quot; и т.д.?

Можно ли вернуть функцией два значения при условии что она будет вещественного типа?
Вот само задание...уже пол часа думаю есть ли такая возможность или я что то не так понимаю.Написать программу с реализацией в виде вызова...

Зачем использовать символы l или L для обозначения числа типа long?
Приветствую ув. форумчане, начал изучать Java самостоятельно, но возник вопрос: Зачем использовать символы l или L для обозначения числа...

Какие символы можно использовать для рисования в консоли?
Есть ли это под linux (элементы рамок, стрелки, символы-рисунки и тому подобное)? И коды, пожалуйста.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru