2013-10-10 6 views
0

У меня возник вопрос о хранимой процедуре, которая создается на сервере sql server 2005 года. У меня есть код ColdFusion для вызова процедуры. В первый раз, когда я попробовал, он провалился, потому что у процедуры не было прав, поэтому я добавил нового пользователя, который равен db_owner, и добавлен в процедуру, а затем он работает правильно.Проблема, вызывающая хранимую процедуру

Но потом я заметил, что что-то не так в БД. Мой вопрос в том, что, хотя я видел ошибку, вы думаете, что процедура уже запущена? , и он был остановлен ненадлежащим образом (возможно, нет необходимых параметров, не удалось связаться с каждой таблицей?), Из-за проблемы с разрешением? Также, как вы думаете, это может привести к сбою базы данных?


<cftry> 
    <cfstoredproc procedure="test" datasource="test" result="proc_results"> 
     <cfprocparam cfsqltype="cf_sql_varchar" variable ="A" value="#GetToken(form.test_A)#"> 
     <cfprocparam cfsqltype="cf_sql_varchar" variable ="B" value="#GetToken(form.test_B)#"> 
    </cfstoredproc> 
    <cfcatch type="any"> 
     Error! 
    </cfcatch> 
</cftry> 

+1

Нижняя линия, вам необходимо предоставить больше информации, прежде чем кто-нибудь может ответить на ваш вопрос. * что-то неправильно в БД * В частности, что пошло не так? Как уже упоминалось ниже, вам нужно сбросить фактическую ошибку, а не просто «Ошибка!». * RE: Вы думаете, что процедура уже запущена? Это зависит от типа произошедшей ошибки. Дамп ошибки и [изменить свой вопрос] (http://stackoverflow.com/posts/19306881/edit), чтобы включить полное сообщение об ошибке. – Leigh

ответ

0

Сохраненная ошибка процедура не будет вообще крах всей базы данных, если он не делает некоторые очень неординарные вещи. Базы данных, такие как SQL Server, предназначены для предотвращения таких случаев.

Что касается запуска хранимой процедуры: когда вы попытались запустить ее без правильных разрешений, она не началась. Если вы скажете, что он «работает правильно», когда вы добавили правильные разрешения, он запустился. Это будет зависеть от особенностей хранимой процедуры относительно того, действительно ли оно что-либо делало или что-то изменило, или вышло без ошибок и ничего не предпринимало.

Вам нужно будет предоставить код хранимых процедур и соответствующих частей структуры базы данных, прежде чем кто-либо сможет сказать с какой-либо определенностью.

1

Попытка демпинг некоторые из деталей ошибки:

<cfcatch> 
<cfoutput> 
    #cfcatch.message# 
    #cfcatch.detail# 
</cfoutput> 
</cfcatch> 

Или даже

<cfcatch> 
    <cfdump var="#cfcatch#"> 
<cfcatch> 
Смежные вопросы