![]() |
|
![]() ![]() ![]() |
|
MacTep |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1292 Регистрация: 4.8.2003 Где: г. Самара Репутация: нет Всего: 4 |
Есть таблица PFond.
Есть запрос: SELECT * FROM PFond WHERE Death="24.04.2000". Как сделать так, чтобы этот запрос выполнялся не только когда поле Death таблицы PFond равно 24.04.2000, а в любой другой момент, т.е. вместо статического запроса сделать динамический. Например, ввести переменную и сравнивать ее с Death. Мучался долго, но ничего не получилось. -------------------- (A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :) |
|||
|
||||
boevik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1452 Регистрация: 31.5.2004 Где: Израиль Репутация: нет Всего: 35 |
Очень не понятный вопрос.
1) Данный запрос будет выполнятся в не зависимости от значений в поле Death. (Будет результат или нет, это уже второй вопрос) 2) Где вводится переменная? 3) На каком языке пишется клиент. (Желательно пример кода с запускам запроса) 4) И на конец, какая база данных. (Хотя это менее важно, в данном вопросе) -------------------- Никогда не говори никогда |
|||
|
||||
MacTep |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1292 Регистрация: 4.8.2003 Где: г. Самара Репутация: нет Всего: 4 |
База данных - Paradox. Пишется все это дело на Дельфи. Есть форма, в которой вводится дата. А вот в самом запросе все должно сравниваться и выводится. Например есть записи с такими датами: 23.05.2001, 24.05.2001, 26.05.2001. Если запрос будет осуществлен при помощи переменной, то все будет окейно. Например:
d = '24.04.2000' // этот параметр получается из формы предыдущим шагом SELECT * FROM PFond WHERE Death>=d. Но ведь так нельзя писать. А как можно? Теперь понятно? -------------------- (A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :) |
|||
|
||||
boevik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1452 Регистрация: 31.5.2004 Где: Израиль Репутация: нет Всего: 35 |
IMHO, тебе надо просто склеить два стринга, что б получился SQL
SELECT * FROM PFond WHERE Death>='24.04.2000' . А ещё мне кажется, что этот вопрос ближе к теме Делфи, чем к базам данных. -------------------- Никогда не говори никогда |
|||
|
||||
Cashey |
|
|||
![]() Бессмертный ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3441 Регистрация: 13.11.2002 Где: в столице Репутация: нет Всего: 60 |
Ну, сначало программно напиши запрос, используя переменную, а потом пошли ее в TQuery
-------------------- библия учит любить ближнего, а камасутра обучает как именно |
|||
|
||||
MacTep |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1292 Регистрация: 4.8.2003 Где: г. Самара Репутация: нет Всего: 4 |
Так как же этот запрос-то правильно написать?
Я пишу так:
Но так ни фига не работает. Именно в этом-то мне и нужна помощь. boevik, я тебя вообще не понял про конкатенацию двух стрингов. Как это сделать? Какие именно стринги брать? -------------------- (A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :) |
|||
|
||||
MacTep |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1292 Регистрация: 4.8.2003 Где: г. Самара Репутация: нет Всего: 4 |
Все, парни, сделал. Понял, что хотел сказать мне boevik. Написал так: в стринговой переменной date хранится дата типа "29.04.2002". А дальше так:
Вот и все. Спасибо всем огромное. Благодарю! ![]() ![]() -------------------- (A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :) |
|||
|
||||
<Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 2 Всего: 64 |
MacTep ExecSQL делать не нужно - он применяется для DML конструкций.
-------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
gemoglobin |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 8.7.2004 Репутация: нет Всего: нет |
Вот ответ:
DataSource1.DataSet:=Query1; Query1.Close; Query1.SQL.Clear; Query1.SQL.Add('SELECT Fam, Name, Otch'); Query1.SQL.Add('FROM PFond'); Query1.SQL.Add('WHERE Death>= ![]() Query1.ParamByName('dd').Value = StrToDate("29.01.2001"); Query1.Open; |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Базы данных и репортинг" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |