Показаны сообщения с ярлыком sqlite. Показать все сообщения
Показаны сообщения с ярлыком sqlite. Показать все сообщения

четверг, 21 апреля 2011 г.

Выборка записей по году. Lazarus+SQLite

Частенько спрашивают как выбрать записи по году (т.е. указав только год) в Lazarus+SQLite.
Отвечаю - вот так:

            with SQLQuery1 do
            begin
            Close;
            SQL.Clear;
            SQL.Add('select tDate,tRemark from Table1 where tDate BETWEEN '+QuotedStr(cbxYear.Text +'-01-01')+'AND '+QuotedStr(cbxYear.Text +'-12-31')+';');   //у меня в таблице формат даты ГГГГ-ММ-ДД! потому так и ищу!
            Open;
            end;

Вот бинарник примера:
date_bin.zip
И исходник:
date_src.zip

четверг, 14 апреля 2011 г.

SQLIte подмена значений при выборке

Столкнулся с проблемой подменять значения непосредственно при выборке.
Первым вариантом было использовать оператор:
IIF( expression, true-value1, false-value )
Но тут же обнаружилось что для SQLite этот метод не подходит. Порывшись в документации обнаружил аналог данной функции:
case ПОЛЕ when ЗНАЧЕНИЕ1 then ''НА ЧТО ЗАМЕНИЛИ'' when ЗНАЧЕНИЕ2 then ''НА ЧТО ЗАМЕНИЛИ2'' end
Тут же приведу пример как использовать:
select Number,tDate,tChto,tSerial,tChtoInd,tSerialInd,tTelefon, case tSost when 0 then ''У Мастера'' when 1 then ''Готово'' when 2 then ''Выдано'' end as tSost,tSum,tOplat,tRemark from kvit;