ZF2 Zend \ Paginator \ Adapter \ DbВыбрать в DB2 i Series

Я создаю службу REST приложения Zend APIgility и имею проблему с моей функцией fetchAll Mapper.

Я подключаюсь к базе данных IBM DB2, работающей на сервере i Series (AS / 400) через DB2 Connect на сервере приложений Windows.

Мое соединение сделано в моем local.php как таковой:

return array(
'db' => array(
'driver' => 'IbmDb2',
'database' => $database,
'username' => $user,
'password' => $password,
'hostname' => $host,
'port' => $port,
'driver_options' => array(
'i5_naming' => DB2_I5_NAMING_ON,
'i5_lib' => 'LIBWEB',
),
),
);

Функция fetchAll () в моем классе Mapper:

public function fetchAll()
{
$select = new Select('WBRESOURCE');
$paginatorAdapter = new DbSelect($select, $this->adapter);
$collection = new ResourcesCollection($paginatorAdapter);
return $collection;
}

Когда я нажимаю DbSelect, ZF2 выдает следующую ошибку DB2 Connect:

"[IBM][CLI Driver][AS] SQL0204N \"*LIBL.WBRESOURCE\" is an undefined name. SQLSTATE=42704"

Я не уверен, почему он использует * LIBL (пользовательский список библиотек), так как я определил библиотеку (SCHEMA) для использования в качестве LIBWEB в моем варианте подключения.

Заранее спасибо!

обкрадывать

3

Решение

Попробуйте изменить этот раздел:

'driver_options' => array(
'i5_naming' => DB2_I5_NAMING_ON,
'i5_lib' => 'LIBWEB',

Изменить на «:

'driver_options' => array(
'i5_naming' => DB2_I5_NAMING_OFF,    <=== change
'i5_lib' => 'LIBWEB',

Используя DB2_I5_NAMING_OFF, вы должны получить режим именования SQL. Использование режима именования DB2 i5 приведет к таким вещам, как зависимость от списка библиотек задания.

Увидеть PHP: db2-connect для некоторой информации о параметре.

1

Другие решения

Других решений пока нет …