procedure TSQLParams.LoadForSQL( _iSQL_ID : integer ); var i : integer; b : boolean; vValue : variant; pParam : TSQLParam; pSQLParam : TSQLParam; pOldValues : TDictionary < string, variant >; begin pOldValues := TDictionary < string, variant >.Create; try { -- save old values of params } for i := 0 to self.Count - 1 do begin pParam := TSQLParam( Items[ i ] ); if not VarIsNull( pParam.vValue ) then pOldValues.Add( pParam.sIdent, pParam.vValue ); end; { -- clear all } clear; { - get info } if DB_SP.sp_params_by_sql_id.Active then DB_SP.sp__params_by_sql_id.Close; DB_SP.sp_params_by_sql_id.ParamByName( '@sql_id' ).AsInteger := _iSQL_ID; DB_SP.sp_sql_detail_params_by_sql_id.Open; DB_SP.sp_params_by_sql_id.First; while not DB_SP.sp_params_by_sql_id.Eof do begin { create new param } pSQLParam := TSQLParam( self.Add ); pSQLParam.sIdent := DB_SP.sp_params_by_sql_id.FieldByName( 'ident' ).AsString.ToLower; pSQLParam.vValue := Variants.null; { - try to find old saved value } b := pOldValues.TryGetValue( pSQLParam.sIdent, vValue ); if b then pSQLParam.vValue := vValue; { - next row } DB_SP.sp_params_by_sql_id.Next; end; finally pOldValues.Free; end; end;
Microsoft AX 2012, X++, C#, SQL server, SSRS, Java, JavaFX, Oracle, PL/SQL, Delphi - codes examples, step-by-step tutorials, experiences.
Tuesday, June 19, 2018
DELPHI - How to work with TDirectory (generic)
TDictionary is collection of key-value. In this example is it used for saving previous values - and its refreshing.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment