Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 12.03.2007, 21:01
Washington Washington вне форума
Прохожий
 
Регистрация: 14.02.2007
Сообщения: 29
Репутация: 10
По умолчанию Работа с SQL-запросами

Вот такой код:
with Form1.ADOQuery3 do
begin
close;
SQL.Clear;
SQL.Add('Select Index');
SQL.Add('from tPayments');
SQL.Add('Where Date=Date');
Parameters.ParseSQL(SQL.Text,True);
Prepared:=true;
Parameters.ParamValues['pdate']:=date;
open;
end;
ADOQuery3.Last;
Label1.Caption:=IntToStr(ADOQuery3.FieldByName('In dex').asInteger);
Index1:=StrToInt(Label1.Caption)+6;
//////////////////////////////////////////
with Form4.ADOQuery2 do
begin
Close;
SQL.Clear;
SQL.Add('Select Date, Payments');
SQL.Add('From tPayments');
SQL.Add('Where Index<=Index');
Parameters.ParseSQL(SQL.Text,True);
Prepared:=true;
Parameters.ParamValues['pIndex']:=Index1;
open;

Так вот в Label'е горит НУЛЬ, а в таблице отображаются совсе не те записи, которые мне нужны. Почему, кто-нить подскажет?
__________________
Ну это нормально...
Ответить с цитированием
  #2  
Старый 13.03.2007, 10:48
Аватар для NiiliT
NiiliT NiiliT вне форума
Прохожий
 
Регистрация: 02.03.2007
Сообщения: 15
Репутация: 10
По умолчанию

Цитата:
Сообщение от Washington
Так вот в Label'е горит НУЛЬ, а в таблице отображаются совсе не те записи, которые мне нужны. Почему, кто-нить подскажет?

1) в каком Label'е ? надеюсь что в нем: Label1.Caption ...
2) ну типа такого: я не знаю что у тебя в таблице хранится

3) Parameters.ParamValues['pdate']:=date; это мне не нравится!!!!!!!!!!!! т.к. будучи в здавом уме и трезвой памяти: дата обычно пишется в формате:'14/03/2007 10:45:00' а когда ты приравниваешь так то получается:
Цитата:
'14/03/2007 10:45:00' = '14/03/2007 00:00:00'
т.е время округляется в нули!!! и это: вытаскивай из поля дату!!!))
4) ну и ADOQuery3.Last; переход на последнюю запись

ЗЫ: опять же какая БД? структура таблиц? и данные? (все надо!!!)
ЗЫЗЫ: буду предсказателем
Ответить с цитированием
  #3  
Старый 13.03.2007, 11:14
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Я полагаю в первом запросе задача стоит получить максимальный индекс на конкретную дату:
Код:
With Query do
  begin
    SQL.Text:='SELECT MAX(Index) as MaxIndex '+
                   'FROM tPayments '+
                   'WHERE [Date]=:CurDate';
    Parameters.ParseSQL(SQL.Text,True);
    Parameters.ParamByName('CurDate'):=YourDate;
    Open;
    if RecordCount>0 then
      MyMaxIndex:=FieldByName('MaxIndex').AsInteger
    else
      MyMaxIndex:=-1;
    Close;
  end;
if MyMaxIndex=-1 then
  MessageDLG('Error in query :(',mtError,[mbOk],0);
Второй запрос понятен еще меньше Получить данные о датах и платежах для которых значение индекса меньше, чем значение индекса увеличенное на 6 (? - откуда цифира) полученное из первого запроса?
Может объяснишь что хотел получить в результате этих довольно таки запутанных действий?
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 07:58.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter