SQL Server armut MDB2 sınıf ve raiserror istisnalar

1 Cevap php

SQL Server bu RAISERROR () ile bir hata yükseltmek mümkündür. Ben bağlantıyı kesmez bir şiddeti, kullanmak istiyorum. Bu hata, bir saklı yordam yükseltilir. SQL Management Studio tüm ince ve bu SP çalıştırırken benim hata kodu almak. Ama PHP5'ta mdb2 ile bu SP yürütmek çalışırken bu işe yaramazsa. Ben olsun tüm boş bir dizidir.

MDB2 nesne (Gerekli seçenekleri dahil) üzerinden oluşturulur:

$db =& MDB2::connect($dsn);
$db->setFetchMode(MDB2_FETCHMODE_ASSOC);
$db->setOption('portability',MDB2_PORTABILITY_ALL ^ MDB2_PORTABILITY_EMPTY_TO_NULL);

Aşağıdaki çalışmaları (Ben bir PEAR hatası olsun):

$db->query("RAISERROR('test',11,0);");

Ama yoluyla bu hatayı yükselten bir saklı yordamı çağrılırken

$db->query("EXEC sp_raise_error");

çıkışı yoktur. Ne oldu?

1 Cevap

Yoluyla döndürülen sonuç nesneleri doğrulamak

$res = $db->query(..)
if (MDB2::isError($res)) {
    echo $res->getMessage() . "\n" . $res->getUserInfo();
    die();
}

Bkz http://pear.php.net/manual/en/package.database.mdb2.intro-fetch.php