Поиск:

Ответ в темуСоздание новой темы Создание опроса
> > DELPHI Paradox 5.x Выборка за промижуток дат и в 
:(
    Опции темы
Akella
Дата 10.1.2009, 22:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



Цитата(Ripperr @  9.1.2009,  23:13 Найти цитируемый пост)
CallBegin >= '01.01.2008 00:00:00' 


Цитата(Ripperr @  9.1.2009,  23:13 Найти цитируемый пост)
CallBegin <= '12.22.2008 23:00:00'


Цитата(Ripperr @  9.1.2009,  23:13 Найти цитируемый пост)
Type missmach in expression

ты ж сам меня упрекал, что не хранится в поле время  smile

Добавлено через 40 секунд
Цитата(Ripperr @  9.1.2009,  23:13 Найти цитируемый пост)
WHERE  CallDate + CallBegin >=

сомневаюсь, что так правильно

Добавлено через 1 минуту и 40 секунд
Я уже запутался, что у тебя там в полях и какие типы smile

Добавлено через 2 минуты и 48 секунд
Цитата(pseud @  10.1.2009,  19:13 Найти цитируемый пост)
в дельфи - это как?

вот так видимо
Цитата(Ripperr @  10.1.2009,  18:28 Найти цитируемый пост)
query1:='SELECT * FROM Statist WHERE  CallDate + CallBegin >= ''01/01/2008 00:00'' AND CallDate + CallBegin <= ''12/22/2008 23:59'''; 


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


Шустрый
*


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

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



Цитата(pseud @ 10.1.2009,  19:13)
Код

SELECT 
  * 
FROM 
  Statist 
WHERE  
  CallDate + CallBegin >= '01/01/2008' 
  AND CallDate + CallBegin <= '12/22/2008'

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

PM MAIL ICQ   Вверх
pseud
Дата 12.1.2009, 10:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

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



Цитата(Ripperr @  11.1.2009,  03:31 Найти цитируемый пост)
просто по датам работает а при наложении времни показывает чуш


т.е. таки показывает? отбирает? может все таки CallDate + CallBegin - переосмыслить?


--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
Ripperr
Дата 12.1.2009, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



чтото выбирает но несовсем коректо пишу с  1 по 3 в реальности отбражает с 2 по 3
PM MAIL ICQ   Вверх
pseud
Дата 12.1.2009, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

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



Цитата(Ripperr @  12.1.2009,  12:35 Найти цитируемый пост)
чтото выбирает но несовсем коректо пишу с  1 по 3 в реальности отбражает с 2 по 3

ты про числа или про время?


--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
Ripperr
Дата 12.1.2009, 20:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Числа в запросе с 1/01/2009 по 3/01/2009 а в результате с 2 по 3 щас выложу сурс...

http://upload.com.ua/get/900643896/

запросы добавляй просто в ADOQuery и отредактируй путь к базе в Adoconnection


Это сообщение отредактировал(а) Ripperr - 12.1.2009, 20:40
PM MAIL ICQ   Вверх
pseud
Дата 13.1.2009, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

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



Цитата(Ripperr @  12.1.2009,  20:37 Найти цитируемый пост)
http://upload.com.ua/get/900643896/


upload.com.ua
не хватило меня на просмотр ссылок на сомнительные ресурсы, не гарантирующий таки загруку.
залей плиз на ifolder.ru


--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
Akella
Дата 13.1.2009, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



pseud, нормально там всё качается
PM MAIL   Вверх
pseud
Дата 13.1.2009, 14:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

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



первые грабли ADO
в твой TADOQuery ввел запрос без параметров:
Код

SELECT 
      CallDate
     , CallBegin
     , UserName
     , Duration
     , PhoneNumber
     , Country
  FROM Statist
 WHERE CallDate + CallBegin >= '01.01.1990'
  AND CallDate + CallBegin <= '01.01.2050'

получил интересную картину по CallBegin (который якобы просто Time)
user posted image


--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
pseud
Дата 13.1.2009, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

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



с параметрами - НЕ РАБОТАЕТ
копать здесь:
  во-первых не
Код

SELECT 
  CallDate
  , CallBegin
  , UserName
  , Duration
  , PhoneNumber
  , Country
FROM 
  Statist
WHERE 
  CallDate + CallBegin >= ':firstDate'
  AND CallDate + CallBegin <= ':secondDate'

а
Код

SELECT 
  CallDate
  , CallBegin
  , UserName
  , Duration
  , PhoneNumber
  , Country
FROM 
  Statist
WHERE 
  CallDate + CallBegin >= :firstDate
  AND CallDate + CallBegin <= :secondDate

кликаем в дизайне в Parameters и видим что наши параметры типа 
DataType = ftFixedChar
даже если руками ставим ftDate(ftDateTime)
все-равно лажа. ПУСТО.
Parameters.ParseSQL(SQL.Text,True) - возвращает на местах наших параметров ?

РЕШЕНИЕ:
Код

procedure TMainForm.UpdateSourceActionExecute(Sender: TObject);
const
  S_SQL = 'SELECT' + #13#10 +
          '  CallDate' + #13#10 +
          '  , CallBegin' + #13#10 +
          '  , UserName' + #13#10 +
          '  , Duration' + #13#10 +
          '  , PhoneNumber' + #13#10 +
          '  , Country' + #13#10 +
          'FROM' + #13#10 +
          '  Statist' + #13#10 +
          'WHERE' + #13#10 +
          '  CallDate + CallBegin >= %d' + #13#10 +
          '  AND CallDate + CallBegin <= %g';
var
  c: Char;
begin
  with MainDataModule.TestQuery do
  begin
    Active := False;
    c := DecimalSeparator;
    try
      DecimalSeparator := '.';
      SQL.Text := Format(S_SQL, [Trunc(StartDate.Date), Trunc(EndDate.Date) + 1 - 1/(24*60*60*1000)]);
      ShowMessage(SQL.Text);
    finally
      DecimalSeparator := c;
    end;
    Active := True;
  end;
end;


выводы - с парадоксом следует работать через бде (правда его придется ставить на все машины)


Это сообщение отредактировал(а) pseud - 13.1.2009, 15:42


--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
Ripperr
Дата 13.1.2009, 20:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



О спасибо болшое я поробую просто я с таким сталкнулся первый раз и с бде некогда не работал.... Спасибо за основательный подход
PM MAIL ICQ   Вверх
Ripperr
Дата 14.1.2009, 04:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



А как всетаки быть  с временем мне надо ограничивать типо с 1.01.09 12:00 по 10.01.09 12:00
PM MAIL ICQ   Вверх
pseud
Дата 14.1.2009, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

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



замени строки
Код

          '  CallDate + CallBegin >= %g' + #13#10 +
          '  AND CallDate + CallBegin <= %g';

и
Код

      SQL.Text := Format(S_SQL, [Trunc(StartDate.Date) + Frac(StartTime.Time), Trunc(EndDate.Date) + Frac(EndTime.Time)]);

StartTime и EndTime - контролы для ввода времени


--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
Ripperr
Дата 14.1.2009, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Спс шас попробую а что значит "#13#10 "


а как можно видоизменить просто я хотел чтобы в зависимостри от того что выбрал видоизменялся запрос


Так у меня было ранше ....

Код

function QueryGeneration(query:string): string;
{разбивка строки, пустые строки НЕ добавляются}
var
ifbegin: Bool;
day_from, month_from, year_from, day_to, month_to, year_to :integer;
begin
ifbegin:=False;
// если надо искать по дате
if ifbegin=False  then  ifbegin:=True else query:=query+' AND ';   //Первый запрос ?
query:=query+' CallDate BETWEEN :firstDate AND :secodDate';
//query:=query+' CallDate <= :firstDate AND CallDate =>  :secodDate';

// если надо искать по времени
if form1.CheckBox2.Checked=TRUE then
begin
if ifbegin=False then  ifbegin:=True else query:=query+' AND ';   //Первый запрос ?
end;

// если надо искать в Группе
if form1.ComboBox1.Text <> 'Все группы' then
begin
if ifbegin=False then  ifbegin:=True else query:=query+' AND ';   //Первый запрос ?
query:=query+' Groups='''+form1.ComboBox1.Text+''' ';
end;
// если надо искать Определенного Абонента
if form1.ComboBox2.Text <> 'Все абоненты' then
begin
if ifbegin=False then  ifbegin:=True else query:=query+' AND ';   //Первый запрос ?
query:=query+' USERname='''+form1.ComboBox2.Text+''' ';
end;

// если надо искать Определенную Гор. линию
if form1.ComboBox3.Text <> 'Все гор. линии' then
begin
if ifbegin=False then  ifbegin:=True else query:=query+' AND ';   //Первый запрос ?
query:=query+' TEL='''+form1.ComboBox3.Text+''' ';
end;
 result:=query;
end;



Код

procedure TForm1.Image5Click(Sender: TObject);
var
query1: string;
query2: string;
a,b: string;
begin
// Базовый запрос
//query1:=QueryGeneration('SELECT CallDate, UserName, Duration, PhoneNumber, Country, ROUND(SumMoney,2) AS SumMoney FROM Statist WHERE ');
query2:=QueryGeneration('SELECT ROUND(SUM(SumMoney),2) AS Total FROM Statist WHERE ');
query1:=QueryGeneration('SELECT CallDate, UserName, Duration, PhoneNumber, Country, ROUND(SumMoney,2) AS SumMoney FROM Statist WHERE ');
form1.Memo1.Text:=query1;

//ВЫПОЛНЕНИЕ ЗАПРОСА
form1.ADOQuery1.SQL.Clear;
form1.ADOQuery1.SQL.Add(query1);
form1.ADOQuery1.Parameters.ParamByName('firstDate').Value:=' '+SplitString(datetostr(form1.DateTimePicker1.Date),'.',1)+'/'+SplitString(datetostr(form1.DateTimePicker1.Date),'.',0)+'/'+SplitString(datetostr(form1.DateTimePicker1.Date),'.',2)+'';
form1.ADOQuery1.Parameters.ParamByName('secodDate').Value:=' '+SplitString(datetostr(form1.DateTimePicker2.Date),'.',1)+'/'+SplitString(datetostr(form1.DateTimePicker2.Date),'.',0)+'/'+SplitString(datetostr(form1.DateTimePicker2.Date),'.',2)+'';
//form1.ADOQuery1.Parameters.ParamByName('firstDate').Value:='01/01/2008';
//form1.ADOQuery1.Parameters.ParamByName('secodDate').Value:='12/31/2008';
form1.ADOQuery1.Active:=true;
//ShowMessage(form1.ADOQuery1.sql.GetText);
//--ВЫПОЛНЕНИЕ ЗАПРОСА



//КАЛЬКУЛЯЦИЯ СУММЫ
DataModule3.ADOQuery1.SQL.Clear;
DataModule3.ADOQuery1.SQL.Add(query2);
DataModule3.ADOQuery1.Parameters.ParamByName('firstDate').Value:=' '+SplitString(datetostr(form1.DateTimePicker1.Date),'.',1)+'/'+SplitString(datetostr(form1.DateTimePicker1.Date),'.',0)+'/'+SplitString(datetostr(form1.DateTimePicker1.Date),'.',2)+'';
DataModule3.ADOQuery1.Parameters.ParamByName('secodDate').Value:=' '+SplitString(datetostr(form1.DateTimePicker2.Date),'.',1)+'/'+SplitString(datetostr(form1.DateTimePicker2.Date),'.',0)+'/'+SplitString(datetostr(form1.DateTimePicker2.Date),'.',2)+'';
//form1.ADOQuery1.Parameters.ParamByName('firstDate').Value:='01/01/2008';
//form1.ADOQuery1.Parameters.ParamByName('secodDate').Value:='12/31/2008';
DataModule3.ADOQuery1.Active:=true;
form1.Label20.Caption:=DataModule3.ADOQuery1.Fields.FieldByName('Total').Asstring;
//--КАЛЬКУЛЯЦИЯ СУММЫ
end;


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


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

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



Цитата(Ripperr @  14.1.2009,  15:45 Найти цитируемый пост)
а как можно видоизменить просто я хотел чтобы в зависимостри от того что выбрал видоизменялся запрос


читай мою подпись.
от много жирного бывет изжога.
во-первых. вопрос решен. ставь птицу.
во-вторых. ты издеваешься.
в-третьих. если таки ты и вправду не в силах разложить свою кашу по тарелкам, то помогу разложить позже... возможно... если будет настроение...


--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
Страницы: (4) Все 1 2 [3] 4 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0992 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


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

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