Topic: Проблема со скриптом

Есть таблица stat с 2 полями:
ID_Klient (связьс другой таблицей)
Data (дата)

Есть форма с 3 элементами:
DateTimePicker1
TableGrid2
Label1

Нужно посчитать количество записей из таблицы stat где
ID_Klient = выбранной записи из TableGrid2
Data = DateTimePicker1
и вывести этот результат в Label1

Имеющийся скрипт

procedure test_TableGrid2_OnCellClick(Sender: string; ACol, ARow: Integer);
var
   f:string;
   d:TDateTime;
begin
d:=now;
test.DateTimePicker1.format:='dd.MM.yyyy';
test.DateTimePicker1.datetime:=d;
f:= VarToStr( SQLExecute('SELECT count(id) FROM stat WHERE (id_klient=''' + IntToStr(test.TableGrid2.dbItemID) + ''') and (date='''+test.DateTimePicker1.datetime+''');') );
test.Label1.Caption:=(f);
end;

ругается на второе условие.
Подскажите кто может где ошибка

Re: Проблема со скриптом

Но здесь нет условий.
Попробуйте так

procedure test_TableGrid2_OnCellClick(Sender: string; ACol, ARow: Integer);
var
   f:string;
   sDate: string;
begin
    test.DateTimePicker1.datetime:=now; // это строка не обязательна

    sDate := '"'+ FormatDateTime('yyyy-MM-DD 00:00:00.000', now) + '"';
    f:= SQLExecute('SELECT count(id) FROM stat WHERE (id_klient=' + IntToStr(test.TableGrid2.dbItemID) + ') and (date='+ sDate +');');
    test.Label1.Caption:= f;
end;

была путаница с кавычками в запросе, и формат даты для ее поиска через SQL запрос, был неверный
и test.Label1.Caption:=(f); тут скобки не нужны


если не получится, пришлите пожалуйста проект на support@drive-software.com

Dmitry.

Re: Проблема со скриптом

спасибо заработало. Только я не понял почему тип переменной sDate: string;
ну да неважно.

Re: Проблема со скриптом

Чучкин Евгений
SQL запрос это прежде всего просто текст, поэтому мы подготовили дату для SQL запроса в текстовом формате )

Dmitry.