Всё у тебя правильно наверху. Просто при выполнении нужно указать, что параметер, который ты передаёшь - не простой, а OUTPUT (кстати, someone312002 в своем первом примере это указал).
В SQLе так:
delcare @count int
execute Col_zap @col output
в ADO у объекта
Parameter есть свойство
Direction, которое может принимать несколько значений, среди которых есть adParamInputOutput (=3) и adParamOutput (=2).
В ADO.NET тоже самое есть у объекта SqlParameter.