IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> БД, фильрация
сообщение
Сообщение #1


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Господа, выручайте срочно, горю !

Что имеем :


class TfrmReport = class(TForm)
//....

mskEdtStart: TMaskEdit;
mskEdtEnd: TMaskEdit;
//...
end;

procedure TfrmReport.FormCreate(Sender: TObject);
begin
// ...
mskEdtStart.EditMask := '##.##.##';
mskEdtStart.Text := '';
mskEdtEnd.EditMask := '##.##.##';
mskEdtEnd.Text := '';
// ...
end;

procedure TfrmReport.btnPreviewClick(Sender: TObject);
var
startDate, endDate: TDateTime;
// ...
begin
// ...
try
startDate := StrToDate(mskEdtStart.Text);
endDate := StrToDate(mskEdtEnd.Text);
except
...
end;
// ...
with frmMain.tblCard do begin
Filter := 'C_Date >= ' + DateToStr(startDate) + ' AND C_Date <= ' + DateToStr(endDate); <-------------- ТУТ ОШИБКА
Filtered := true;
end;
//...
end;
end;


C_Date - поле типа Date (Paradox)

Что за точку он там нашел ? что я делаю не правильно, подозревают что MaskEdit мне тут карину портит, но как ?!

ps если пробовать проводить в этом-же месте фильтрацию по другим полям, то все ок.


Эскизы прикрепленных изображений
Прикрепленное изображение

--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


а ты случаем Date и DateTime не попутал?
и, кстати, # позволяет ввести цифру, а также + и -. Если тебе только цифры нужны - ставь 9.

Сообщение отредактировано: мисс_граффити -


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Поменял на TDate (startDate, endDate)

НО даже при таком раскладе всеравно ошибка таже самая :

(* TEST*)
startDate := Now;
endDate := Now;
(*TEST*)
with frmMain.tblCard do begin
Filtered := false;
Filter := 'C_Date >= ' + DateToStr(startDate) + ' AND C_Date <= ' + DateToStr(endDate);
Filtered := true;
end;







9-ки пробовал


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


нашла книжечку, там вот что пишут:
(совместимость значений полей разных типов)
TDateTimeField AsString - преобразование возможно
TDateField AsString - преобразование происходит, если оно возможно и часто зависит от формата отображения (свойство DisplayFormat).

а что такое DateToStr - это родное делфино или сам писал?
AsString - это свойство, если что. Может, через него попробовать?

Сообщение отредактировано: мисс_граффити -


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






Попробуй:
Filter := 'C_Date >= ' + QuotedStr(DateToStr(startDate)) + ' AND C_Date <= ' + QuotedStr(DateToStr(endDate));
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Спасибо всем за помощь !

Filter := 'C_Date >= ' + QuotedStr(DateToStr(startDate)) + ' AND C_Date <= ' + QuotedStr(DateToStr(endDate));


yes2.gif

Цитата
а что такое DateToStr - это родное делфино или сам писал?


Родное ;)

Цитата
Unit

SysUtils

Category

date/time routines

function DateToStr(Date: TDateTime): string;

Description

Use DateToStr to obtain a string representation of a date value that can be used for display purposes. The conversion uses the format specified by the ShortDateFormat global variable.



Что-то мне подсказывает, что с этим ShortDateFormat можно тоже поигарться, щас посмотрю что там.

Спасибо еще раз !


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 19.09.2020 18:13
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name