Я подключаю сервер 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) не будет запущен?
В чем может быть проблема?