2013-12-10 3 views
0

Я подключаю сервер sql 2008 r2 на cakephp. Мне нужно тянуть первенствовать, для которого я создал хранимую процедуру, как показано нижеНеверное состояние курсора в Cakephp/mssql

ALTER procedure [dbo].[pullatm_card] 
@date varchar(25) 

as 
begin 
declare @sql as varchar(1000) 
set @sql='INSERT INTO scts 
(
terminal, 
account_number, 
txn_amount, 
txn_date, 
txn_tim, 
trace_code 
) 

select 
f2 as terminal, 
f6 as account_number, 
f10 as txn_amount, 
f14 as txn_date, 
f22 as txn_time, 
f27 as trace_code 
FROM OPENROWSET(''Microsoft.Jet.OLEDB.4.0'', 
       ''Excel 8.0;Database=C:\rbl\sct\'[email protected]+'\excel\atm\cards.xls;IMEX=1'', 
       ''SELECT * FROM [Sheet1$]'') 

       where f14 is not null' 

exec(@sql)   

когда я огонь

exec pullatm_card'DEC01_2013EXCEL' on sql server query editor it is running sucessfully. 

Но когда я попробовать то же самое в CakePHP, как показано ниже

public function admin_add() { 
     if ($this->request->is('post')) { 
      //call three procedure here 
      $date=$this->request->data['Sct']['date']; 

      $this->Sct->query("exec pullatm_card"."'".$date."'"); 
      $this->Sct->query("exec pullatm_loro"."'".$date."'"); 
      $this->Session->setFlash(__('SCT record(s) been saved')); 
      $this->redirect(array('action' => 'add')); 

      } 
    } 

Он выдает ошибку ниже

Database Error 
Error: SQLSTATE[24000]: [Microsoft][SQL Server Native Client 10.0]Invalid cursor state 

SQL Query: exec pullatm_card'DEC01_2013EXCEL' 

Но результаты exec pullatm_card'DEC01_2013EXCEL 'вставляются в базу данных и останавливают все остальные операции после того, как запрос под ним (см. Php) не будет запущен?

В чем может быть проблема?

ответ

Смежные вопросы