Offhand with only three or four commands, you can probably put all as buttons and links in each row. This provides the user a fast way to execute the commands for a single row –one click per action –while the alternative selection-action model requires two clicks. However there are some considerations.
Selection-action may be better for executing the same action on multiple rows. If some of these actions result in a delay (e.g., it takes a second or two to refresh the table after a delete) or a dialog box (e.g., for download, the user must specify a local folder to download to), selection-action is faster in allowing users to multiselect a bunch of items and process them at once.
While you only have a few commands now, consider how many you may have with future versions or in other pages of the app (e.g., Insert New, Cut, Copy, Paste). You want to be internally consistent. Rows of repeating controls for five or more commands are likely to be excessively cluttering.
If you go with selection-action, you should implement other interaction features to make it really work well.
Don’t use check boxes, which can be confused with a record attribute, rather than a selected state. Use highlighting, either of the whole row or of a row icon, to indicate selection.
Support multi-selection with ctrl-clicking, shift-clicking, and dragging a selection box (the latter two allowing selection-action to be faster than in-row controls for multiple items). Note that some users don’t know these conventions, so if multi-selection is part of the usual workflow that non-power users need to do, consider a different UI entirely.
Support shortcuts, like using the delete key to delete a record and a right-click context menu that includes all actions.
As far as combining in-row with selection-action, View Detail can be supported by controls in the row in any case by making the record’s functional identifier into a link (as long as there is no need to edit the identifier), or allowing the user to double click on the record icon (the latter being an expert activation that should be redundant with a button).
I’m not clear what “mark” means. Set a flag? That sounds like an attribute of a record. Whether you use selection-action or in-row for the rest of the actions, that means marking should be done with a control like a checkbox in the table row so users can both see and set the value.