Publish date: 2003-01-05

Work with parameters

function TPxBank.Add(const strBankName, strBankLocation: WideString;
                     intBankMFO: Integer; out intID: Integer): HResult;
var
  cmd: Command;
  ra: OleVariant;
begin
  Result := S_OK;
  cmd := CoCommand.Create;
  try
    cmd.Set_ActiveConnection(GetConnection);
    GetID(intID);
    cmd.CommandText := 'insert into banks (id_bank, bank, location, mfo) values (?, ?, ?, ?)';

    cmd.Parameters.Append(cmd.CreateParameter('id_bank', adInteger, adParamInput, -1, intID));
    cmd.Parameters.Append(cmd.CreateParameter('bank', adVarChar, adParamInput, length(strBankName), strBankName));
    cmd.Parameters.Append(cmd.CreateParameter('location', adVarChar, adParamInput, length(strBankLocation), strBankLocation));
    cmd.Parameters.Append(cmd.CreateParameter('mfo', adInteger, adParamInput, -1, intBankMFO));
    cmd.Execute(ra, EmptyParam, 0);
    SetComplete;
  except
    on E: Exception do begin
      Result := E_FAIL;
      SetAbort;
      raise;
    end;
  end;
end;