After reading some articles and discussions on this topic, my conclusion is:
It is a myth to use all inline/dynamic SQL for all the queries in the application.
It is a myth to use all Stored Procedure for all the queries in the application.
Use Stored Procedure when the query is very complicated, easily will need changes and with many business logics. Reason is easier maintenance. Business logic easily change. Changes in Stored Procedure does not required re-compile of code.
Use Stored Procedure when the query will take long time to complete it. Reason is better performance.
Other that the two situations above, use inline/dynamic SQL in the code, but it needs to be a parametrized SQL. (classic ASP doesn’t have this but ASP.NET)