None of those.
1.When you need to do more queryies at once
2. when you dont need a resultset (if you do ,use stored procedure)
3. when you reached limit of relational db querying --> you need to parse resultset
4. when you decide to be better to have most of things done on db side, not on client side.