Error Message SQL Server 2005 : CDbCommand failed to execute the SQL statement: SQLSTATE[24000]: [Microsoft][SQL Server Native Client 10.0]Invalid cursor state.

Studi Kasus : eksekusi Store Procedure

EXECUTE add_paket_lrs @nim=’200811058′, @year=’2013′

 

Dikarenakan semua operasi dalam store procedur memiliki result dan kemungkinan salah satu proses tidak memiliki field dan memberikan nilai return seperti ‘1 row(s) affected)’.

 

Solusi dari permasalahan tersebut yaitu dengan menambahkan SET NOCOUNT ON sebelum code awal. Penggunaan ‘SET NOCOUNT ON;’ dal am store procedure hanya akan memberikan 1 result seperti OK atau error code.

Penggunaan pada Yii Framework :

Yii::app()->db->createCommand(“SET NOCOUNT ON; EXECUTE add_paket_lrs @nim='”.$id.”‘, @year='”.$registrationYear.”‘”)->query();

 

Sumber : http://www.yiiframework.com/forum/index.php/topic/17167-queryall-failed-if-stored-procedure-returns-nothing/