Выполнение хранимой процедуры на сервере sql с использованием CakeStack Overflow

Мне интересно, если это правильный синтаксис при запуске хранимых процедур Microsoft SQL Server, используя cakePHP. Это правильный синтаксис при выполнении хранимой процедуры в CakePHP?

$this->Main->query("Exec uspGetVendorVehicleManifest '1/6/2014', 'wali.americantour', @pcolVehicleVendorIDInt = 1,@pRouteFrom = 0, @pRouteTo = 0");

Хранимая процедура имеет следующие параметры:

    @pDate              AS DATE,
@pUserID            AS VARCHAR(50),
@pRegionIDInt       AS INT,
@pPortIDInt         AS INT,
@pcolVehicleVendorIDInt AS INT,

@pStartRow          AS INT,
@pMaxRow            AS INT,
@pLoadType          AS INT,
@pOrderby           AS VARCHAR(20),

@pRouteFrom         AS TINYINT,
@pRouteTo           AS TINYINT,
@pCityFrom          AS VARCHAR(5),
@pCityTo            AS VARCHAR(5),
@pStatus            AS VARCHAR(4),
@pRole              AS VARCHAR(50)

Я использую только некоторые параметры, так как другие параметры не являются необходимыми.

Это правильно?

3

Решение

Я наконец нашел решение для этого. Вы можете использовать команду exec, а затем добавить значение к параметрам, которые вы будете использовать.

$this->ControllerName->query("exec storedProcedure @param1 = 1");

Хотя я заметил, что когда я запускаю его на cakephp, с php 5.5 сервис apache, скорее всего, вылетает. Вероятно, потому что я использую неофициальный phppdo.

3

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

попробуй вот так

Я предполагаю, что ваша процедура называется uspGetVendorVehicleManifest

$query = "call uspGetVendorVehicleManifest('1/6/2014', 'wali.americantour', @pcolVehicleVendorIDInt = 1,@pRouteFrom = 0, @pRouteTo = 0)";

$result = $this->query($query);

Я использую метод процедуры с mysql, так как под капотом cakephp использует pdo, я думаю, что этот метод должен работать .. дайте мне знать, что происходит, так как я также хотел узнать, как это делается.

1

По вопросам рекламы [email protected]