Publish date: 2003-01-05

SELECT with parameter, Command and RecordSet

function TPxBank.GetInfo(intID: Integer; out strBankName, strLocation: WideString; out intMFO: Integer): HResult;
var
  rs: _RecordSet;
  cmd : _Command;
begin
  Result := S_OK;
  rs := CoRecordset.Create;
  cmd := CoCommand.Create;
  try
    cmd.Set_ActiveConnection(GetConnection);
    cmd.CommandText := 'select id_bank, bank, location, mfo from banks where id_bank = ?';
    cmd.Parameters.Append(cmd.CreateParameter('id_bank', adInteger, adParamInput, -1, intID));
    rs.Open(cmd, EmptyParam, adOpenKeyset, adLockOptimistic, adCmdText);
   if rs.RecordCount = 1 then begin
      strBankName := rs.Fields['BANK'].Value;
      strLocation := rs.Fields['LOCATION'].Value;
      intMFO := rs.Fields['MFO'].Value;
    end;
    SetComplete;
  except
    on E: Exception do begin
      Result := E_FAIL;
      SetAbort;
      raise;
    end;
  end;
end;