Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Query 
V
    Опции темы
apostolnikolai
Дата 13.9.2009, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 152
Регистрация: 19.3.2009

Репутация: нет
Всего: нет



Простите если глупый вопрос но немогу найти ответ !

Есть таблица нужно сделать выборку по дате с 01.01.01 по 30.01.02 

как сделать такой запрос


PM MAIL   Вверх
Данкинг
Дата 13.9.2009, 20:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Название топика весьма информативное.  smile В общем случае так:
Код

select * from table where date1>=01.01.01 and date1<=30.01.02

Но при чём здесь Дельфи? smile 

Это сообщение отредактировал(а) Данкинг - 13.9.2009, 20:25


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
apostolnikolai
Дата 13.9.2009, 20:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 152
Регистрация: 19.3.2009

Репутация: нет
Всего: нет



user posted image

выдает ошибку

Это сообщение отредактировал(а) apostolnikolai - 13.9.2009, 21:01
PM MAIL   Вверх
Данкинг
Дата 13.9.2009, 21:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Цитата(apostolnikolai @  13.9.2009,  21:58 Найти цитируемый пост)
выдает ошибку 

В 17-й строке? smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
apostolnikolai
Дата 13.9.2009, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 152
Регистрация: 19.3.2009

Репутация: нет
Всего: нет



ошибя этот скрин

Добавлено через 2 минуты и 27 секунд
select * from PBD where 
DTPlat>=01.08.2009 and 
DTPlat<=30.08.2009
PM MAIL   Вверх
Rodman
Дата 13.9.2009, 21:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 22
Всего: 122



код и траблу в студию
PM MAIL WWW Skype GTalk YIM MSN   Вверх
apostolnikolai
Дата 13.9.2009, 21:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 152
Регистрация: 19.3.2009

Репутация: нет
Всего: нет



тебя какой код интересует его много

Добавлено через 1 минуту и 5 секунд
аааааааааа во в базе нет строк с датой 01.08.2009

Добавлено через 2 минуты и 57 секунд
как можно в Query перехватить ошибку если таких данных нет 
PM MAIL   Вверх
apostolnikolai
Дата 13.9.2009, 22:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 152
Регистрация: 19.3.2009

Репутация: нет
Всего: нет



все спасибо разобрался 
PM MAIL   Вверх
Данкинг
Дата 13.9.2009, 22:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Ага, всё же Дельфи всё же при чём. Осталось выяснить, какая связь данной ошибка с БД. smile 

Цитата(apostolnikolai @  13.9.2009,  22:21 Найти цитируемый пост)
как можно в Query перехватить ошибку если таких данных нет  

Любую ошибку можно перехватить через try...except, только тут дело не в Query. Но если

Цитата(apostolnikolai @  13.9.2009,  23:02 Найти цитируемый пост)
разобрался  

- тогда отмечай тему решённой.

 smile 
Знаки вопроса что-то совсем не в почёте нонче. smile 







--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
apostolnikolai
Дата 13.9.2009, 22:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 152
Регистрация: 19.3.2009

Репутация: нет
Всего: нет



не рано всеже есть проблема 

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

Код

select * from PLBD where date1 = "01.01.01"


я переделал базу теперь поле с датой Data 

Код

select * from PLBD where date1>=01.01.01 and date1<=30.01.02


выдает ошибку опять 

так что вопрос открыт

Это сообщение отредактировал(а) apostolnikolai - 13.9.2009, 22:26
PM MAIL   Вверх
Данкинг
Дата 13.9.2009, 22:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Цитата(apostolnikolai @  13.9.2009,  23:25 Найти цитируемый пост)
выдает ошибку опять 

Какую ошибку на сей раз? СУБД, кстати, какая?


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
apostolnikolai
Дата 13.9.2009, 22:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 152
Регистрация: 19.3.2009

Репутация: нет
Всего: нет



user posted image

Добавлено через 1 минуту и 30 секунд
user posted image
PM MAIL   Вверх
Данкинг
Дата 13.9.2009, 22:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



По скринам:
1. Ну так смотри в коде, где пытаешься дату перевести в число с плавающей точкой, и там уже лови ошибку.
2. Попробуй выполнить запрос в самой СУБД.



--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Vas
Дата 14.9.2009, 07:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 830
Регистрация: 29.6.2005
Где: Stavropol region

Репутация: 23
Всего: 28



Цитата(apostolnikolai @  13.9.2009,  22:25 Найти цитируемый пост)
я переделал базу теперь поле с датой Data 

Код

select * from PLBD where date1>=01.01.01 and date1<=30.01.02

А даты в апострофы помещать не надо?

Код

select * from PLBD where date1 between '01.01.01' and '30.01.02'



--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
PM MAIL   Вверх
virtualmacar
Дата 14.9.2009, 07:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 11.9.2009

Репутация: нет
Всего: нет



Код

select * from PLBD where date1>=01.01.01 and date1<=30.01.02

если мне не изменяет память то к полю дата так обращаться нельзя, попробуй
Код

select * from PLBD where date1>=DATE('01.01.01') and date1<=DATE('30.01.02');
 
PM MAIL   Вверх
Romikgy
Дата 14.9.2009, 09:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 4
Всего: 146



Цитата(Данкинг @  13.9.2009,  21:28 Найти цитируемый пост)
СУБД, кстати, какая? 

?


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
apostolnikolai
Дата 14.9.2009, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 152
Регистрация: 19.3.2009

Репутация: нет
Всего: нет



Код

select * from PLBD where date1>=DATE('01.01.01') and date1<=DATE('30.01.02');


А теперь ругается на DATE и из проги и когда делаеш запрос в самой базе 
PM MAIL   Вверх
Frees
Дата 14.9.2009, 10:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 23
Всего: 54



используй параметры

Код

select * from PLBD where date1>=:DATE_FROM and date1<=:DATE_TO

и в коде передавай параметры в запрос перед открытием

Это сообщение отредактировал(а) Frees - 14.9.2009, 10:58


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
apostolnikolai
Дата 14.9.2009, 10:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 152
Регистрация: 19.3.2009

Репутация: нет
Всего: нет



ДЛЯ РАБОТЫ С БАЗОЙ ИСПОЛЬЗУЮ КОМПОНЕНТ DBISAM 
PM MAIL   Вверх
Данкинг
Дата 14.9.2009, 11:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Цитата(apostolnikolai @  14.9.2009,  11:59 Найти цитируемый пост)
ДЛЯ РАБОТЫ С БАЗОЙ ИСПОЛЬЗУЮ КОМПОНЕНТ DBISAM  

ХОРОШО А КАКАЯ ВСЁ ЖЕ СУБД

Добавлено @ 11:29
Цитата(apostolnikolai @  14.9.2009,  11:54 Найти цитируемый пост)
А теперь ругается на DATE

Видимо, твоя СУБД не знает функции DATE. Используй соответствующую функцию преобразования даты.

Это сообщение отредактировал(а) Данкинг - 14.9.2009, 11:30


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Romikgy
Дата 14.9.2009, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 4
Всего: 146



Код

    
select * from PLBD where date1>='2001-01-01' and date1<='2002-01-30';




--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
apostolnikolai
Дата 14.9.2009, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 152
Регистрация: 19.3.2009

Репутация: нет
Всего: нет



Делаю запрос в базе 

Код

select * from PBD where DTPlat between '01.01.01' and '30.01.02'


запрос ошибок не выдает ! но данные вообще другие кидает 

user posted image

Добавлено через 7 минут и 30 секунд
Код

select * from PBD where DTPlat>='10.09.2009' and DTPlat<='30.09.2009';


во это запрос тоже работает ! но данные выдает не только за 09 месяц как указано в запросе но и за 08 месяц
PM MAIL   Вверх
apostolnikolai
Дата 14.9.2009, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 152
Регистрация: 19.3.2009

Репутация: нет
Всего: нет



поле базы STRING
PM MAIL   Вверх
Romikgy
Дата 14.9.2009, 19:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 4
Всего: 146



Цитата(apostolnikolai @  14.9.2009,  14:17 Найти цитируемый пост)
DTPlat

это имеет тип
Цитата(apostolnikolai @  14.9.2009,  15:51 Найти цитируемый пост)
STRING 

?


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
apostolnikolai
Дата 15.9.2009, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 152
Регистрация: 19.3.2009

Репутация: нет
Всего: нет



ВОТ РЕШЕНИЕ ВСЕ РОБИТ 

Код


Query1.sql.text:='Select * From TableName Where (Date>:D1) and (Date<:D2)'; 
Query1.params.parsSql(Query1.sql.text, true); 
Query1.params.parambyname('d1').value:=Stringtodatetime('09.10.2002'); 
Query1.params.parambyname('d2').value:=Stringtodatetime('09.11.2002'); 
Query1.active:=true; 



всем кто отвитил СПАСИБО !!!!!!!!!!!!!!
PM MAIL   Вверх
Данкинг
Дата 15.9.2009, 23:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



apostolnikolai, да, параметры вообще в целом помогают. smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
toreh
Дата 12.4.2011, 20:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 11.4.2011

Репутация: нет
Всего: нет



ребята у меня такая же продбема на форе query dbgrid  datasourse  все между собой связал создал запрос он отобразился в dbgride  но я его не могу редактировать все что вы писали RequestLive = True сделал редактирует а то поле по которому ищу не редактирует выдает ощибку а со стальными все в порядке редактируются и да я не могу подключить dbedit  тоже ошибку выдает типо не опознаный объект а сам запрос выглядит такselect * from 'ABONENT.db' where FIO=:xFIO вот помогите что и как нужно с делать чтоб все поля редактировались  думаю так понятней будет немного суть моей проблемы 
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.1050 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.