Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с параметрами 
:(
    Опции темы
Eva1
Дата 14.4.2006, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Всем привет!

БД MSAccess, механизм доступа ADO.

На форме имеются кнопки InputAplayButton (выбирает строки, значение поля дата, которых равно значению в переменной login_id)
Код

procedure TForm5.SortingAplayButtonClick(Sender: TObject);
begin
    ADOQuery1.Close;
    ADOQuery1.SQL.Clear;
    ADOQuery1.SQL.Add('select date, produce, price, login_id');
    ADOQuery1.SQL.Add('from Expenditure_Book');

    //сортировка по убыванию
if SortByDesc.Checked
then begin
    if flag=1
    then begin
    ADOQuery1.SQL.Add('where (date >= :d1) 
                                                and (date <= :d2) and (login_id = :l)');
    ADOQuery1.Parameters.ParseSQL.ADOQuery1.SQL.text, true);
                ADOQuery1.Parameters.ParamByName('d1').value:=
                DateToStr(SelectDate1.Date);
                ADOQuery1.Parameters.ParamByName('d2').value:=
                DateToStr(SelectDate2.Date);
    ADOQuery1.Parameters.ParamByName('l').value:=
                IntToStr(login_id);
                ADOQuery1.SQL.Add('order by date desc');
                end
               
                else begin
                ADOQuery1.SQL.Add('where login_id = :l');
    ADOQuery1.Parameters.ParseSQL(ADOQuery1.SQL.text, true);
    ADOQuery1.Parameters.ParamByName('l').value:=
                IntToStr(login_id);
                ADOQuery1.SQL.Add('order by date desc');
               end;
    
end    
    // сортировка по возрастанию  ...
    
    // нет сортировки             ...
    
    ADOQuery1.Open;    
end;
,
SortingAplayButtonClick (сортирует по убыванию или возрастанию, если была нажата кнопка InputAplayButton строки, значение поля дата, которых равно значению в переменной login_id либо все строки).
Код

procedure TForm5.InputAplayButtonClick(Sender: TObject);
begin

    ADOQuery1.Close;
    ADOQuery1.SQL.Clear;
    ADOQuery1.SQL.Add('select date, produce, price, login_id');
    ADOQuery1.SQL.Add('from Expenditure_Book');
    ADOQuery1.SQL.Add('where (date>=:d1) and (date<=:d2) 
                                                      and (login_id like :l)');
    ADOQuery1.Parameters.ParseSQL(ADOQuery1.SQL.text, true);
    ADOQuery1.Parameters.ParamByName('d1').value:=
                DateToStr(SelectDate1.Date);
    ADOQuery1.Parameters.ParamByName('d2').value:=
                DateToStr(SelectDate2.Date);
    ADOQuery1.Parameters.ParamByName('l').value:=
                IntToStr(login_id);
    ADOQuery1.Open;

    flag=1;
end;

Если не была нажата кнопка InputAplayButton и нажать на кнопку SortingAplayButtonClick, то все нормально.
Если нажать на кнопку InputAplayButtonи и не нажать на кнопку SortingAplayButtonClick, то все нормально.
Если была нажата кнопка InputAplayButton(flag=1) и далее нажать на кнопку SortingAplayButtonClick, то вызывается ошибка "Отсутствует значение одного или нескольких параметров" (никаких параметров, кроме d1, d2, l, больше нет).
Что необходимо сделать, чтобы запрос нормально выполнялся?
ЗАРАНЕЕ СПАСИБО!
PM MAIL   Вверх
SPrograMMer
Дата 16.4.2006, 01:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Спамер :)
**


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

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



Цитата(Eva1 @ 14.4.2006, 17:33 Найти цитируемый пост)
чтобы запрос нормально выполнялся
было уже.... "проблема с датами в Access`e"....
Дату нуно обрамить спец символами, кажется решёткками, т е:
Код

...where (date>=#:d1#) and (date<=#:d2#)....




--------------------
животное = зверь
законченный гентушник
PM MAIL ICQ Jabber   Вверх
Eva1
Дата 16.4.2006, 23:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



SPrograMMer,

Так выводит ошибку:
"Не правильный формат даты 
where (date>=#d1#) and (date<=#smile2#) and (login_id like '14')".

Можно с датами вообще без параметров обойтись?

Заранее спасибо!

    

Это сообщение отредактировал(а) Eva1 - 16.4.2006, 23:34
PM MAIL   Вверх
Pakshin A. S.
Дата 16.4.2006, 23:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



А может стоит открыть Access, составить там вопрос (через конструктор) и уже от него отталкиваться? 
PM   Вверх
Eva1
Дата 16.4.2006, 23:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



В конструкторе пишется такой формат даты #10\10\2000#, еще куча скобок, где надо, был испробован такой вариант и все равно ошибки с форматом, когда используются параметры ошибок с форматом нет, зато ошибки с параметрами. 
PM MAIL   Вверх
McDevil
Дата 17.4.2006, 00:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 8.12.2005
Где: Казахстан, Павлод ар

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



Цитата(Eva1 @  14.4.2006,  17:33 Найти цитируемый пост)
where (date>=smile1) and (date<=smile2

Было бы интересно если бы он работал... smile 
У меня время в нете кончается с минуты на минуту поэтому буду предельно краток, если что  непонятно извените уж...
И ваш первый топик я не читаю боюсь времени не хватит, но по топику SPrograMMer кажется догнал суть вопроса...
Писать надо так:
Код

 ...
 ADOQuery1.SQL.Add('where (date>='+DateToStr(d1)+') and (date<='+DateToStr(d2)+')')
 ...

Надеюсь, что вы поймете
Удачи...  smile    

Это сообщение отредактировал(а) McDevil - 17.4.2006, 00:09


--------------------
 мы знаем столько, сколько можем, а можем столько, сколь хотим... 

Тестируем программу: SPL-программа аналогов функций  
PM MAIL WWW ICQ   Вверх
Eva1
Дата 17.4.2006, 00:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



McDevil
Я так обязательно попробую, но уже получается решить проблему такой записью
'where ( date >= DateValue('''  + '10.10.2000' + ''') ) ....

Большое всем спасибо! 
PM MAIL   Вверх
Eva1
Дата 19.4.2006, 23:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



В одном месте приложения перестает появляться ошибка  "Отсутствует значение одного или нескольких требуемых параметров", в другом появляется. У меня нет не единой строчки про параметры (в ресурсах тоже не заданы)  и вылезает эта...
Код

ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select fio, address, telephone, birtday, login_id');
ADOQuery1.SQL.Add('from Address_Book');
ADOQuery1.SQL.Add('where login_id = ' + IntToStr(login_id));
ADOQuery1.Open;


Кто-нибудь может подсказать из-за чего м. б. эта ошибка? 
(БД - MSAccess, механизм доступа - ADO) 
PM MAIL   Вверх
Savek
Дата 20.4.2006, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 355
Регистрация: 10.4.2006
Где: Воронеж

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



Возможно ошибка в названии одного из полей 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

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

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


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

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

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


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

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


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

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


 




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


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

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