1 (edited by Igor 2016-07-21 14:29:48)

Topic: Вопрос по SQL запросу через скрипт

Дмитрий здравствуйте!
Сразу к вопросу. Существует таблица данных (см. скриншот)
http://myvisualdatabase.com/forum/misc.php?action=pun_attachment&item=2204

1. Запись в таблицу базы происходит по событию через скрипт

SQLExecute('INSERT INTO logs (NameUser, Action, PrefixOP, TabelN, DateTime) VALUES ("'+sUser+'", "Окончание смены", "'+sNameOP+'", "'+sTabelN+'", "'+ FormatDateTime('yyyy-MM-DD hh:mm:ss.000', now) +'"); ')

2. Далее мне необходимо вывести данные в текстовое поле, при определенных условиях поиска (см. запрос ниже ) . В данном запросе поиск выполняется по значениям переменных  sNameOP , sTabelN и
текущей датой с форматом Год,месяц,день  - (''' + FormatDateTime('yyyy-MM-DD ', now) + ''')

frmSearchOP.Edit11.Text := VarToStr( SQLExecute('SELECT DateTime FROM Logs WHERE (TabelN = ''' + sTabelN + ''')and(Action = ''Окончание смены'')and(''' + FormatDateTime('yyyy-MM-DD ', now) + ''');') );

Суть вопроса: Указанный скрипт по запросу из таблицы работает (ошибок не выдает) но выводит первую попавшуюся дату из таблицы учитывая значения двух переменных но игнорируя текущую дату. Где допущена ошибка в скрипте, помогите разобраться ?!

Post's attachments

Attachment icon Таблица.jpg 22.19 kb, 263 downloads since 2016-07-21 

Re: Вопрос по SQL запросу через скрипт

Вы забыли условие вписать


frmSearchOP.Edit11.Text := VarToStr( SQLExecute('
SELECT
DateTime
FROM Logs
WHERE
     (TabelN = ''' + sTabelN + ''') and
     (Action = ''Окончание смены'') and
     (DateTime >= ''' + FormatDateTime('yyyy-MM-DD hh:mm:ss.000', Int(now)) + ''');
')
);

Re: Вопрос по SQL запросу через скрипт

iacovlogica wrote:

Вы забыли условие вписать


frmSearchOP.Edit11.Text := VarToStr( SQLExecute('
SELECT
DateTime
FROM Logs
WHERE
     (TabelN = ''' + sTabelN + ''') and
     (Action = ''Окончание смены'') and
     (DateTime >= ''' + FormatDateTime('yyyy-MM-DD hh:mm:ss.000', Int(now)) + ''');
')
);

iacovlogica, спасибо вам за подсказку !

Действительно про условие поиска для даты я забыл, а вот про Int(now)) даже не знал. Еще раз спасибо, помогли!