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

воскресенье, 17 апреля 2011 г.

Узнать количество записей в фильтрованном Dataset в Lazarus.

procedure TFmMain.Button1Click(Sender: TObject);
var
cnt: Integer;
bmk: TBookmark;
begin
inherited;
DbGrid1.DataSource.DataSet.DisableControls; // Это - датасет грида
cnt := 0;
bmk := DbGrid1.DataSource.DataSet.GetBookmark; // Запомнили позицию
try // Считаем
DbGrid1.DataSource.DataSet.First;
while not FmMain.ListKvit.DataSource.DataSet.Eof do
begin
Inc(cnt);
DbGrid1.DataSource.DataSet.Next;
end;
DbGrid1.DataSource.DataSet.GotoBookmark(bmk); // Вернулись
finally
DbGrid1.DataSource.DataSet.FreeBookmark(bmk);
DbGrid1.DataSource.DataSet.EnableControls;
end;
ShowMessage('Всего записей = ' + IntToStr(cnt));
end;                 

четверг, 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;

пятница, 10 сентября 2010 г.

Реализация NTLM в Indy 10

Заметка на память.
{$APPTYPE CONSOLE}

uses
SysUtils,
IdAuthentication,
IdAuthenticationNTLM,
IdHTTP;

type
TDummyProxy = class
private
class procedure OnProxyAuthorization( Sender: TObject;
Authentication : TIdAuthentication; var Handled : Boolean );
end;

{ TDummyProxy }

class procedure TDummyProxy.OnProxyAuthorization(Sender: TObject;
Authentication: TIdAuthentication; var Handled: Boolean);
begin
Authentication.Reset;
Authentication.Username := '...';
Authentication.Password := '...';
Handled := true;
end;

begin
with TIdHTTP.Create( nil ) do
try
OnProxyAuthorization := TDummyProxy.OnProxyAuthorization;
ProxyParams.ProxyServer := '...';
ProxyParams.ProxyPort := 3128;
ProxyParams.BasicAuthentication := false;
HTTPOptions := HTTPOptions + [ hoInProcessAuth ];
WriteLn( Get('http://ya.ru') );
finally
Free
end;
end.