首页 > 解决方案 > 如何在 SQL Server 中调用 sp_prepexecrpc?

问题描述

我目前正在尝试通过 ODBC 在 SQL Server 中调用。我尝试执行如下查询:

Declare @Out int;
EXEC  @Out output,
     N'@myNumber int',
     N'EXEC OdbcOneParameterProcedure @myNumber',
     @myNumber = 0;
EXEC  @Out;

DECLARE @Out int;

EXEC  @Out OUTPUT,
     N'OdbcOneParameterProcedure',
     @myNumber = 0;
SELECT @Out

但我所看到的只是它在 Wireshark 的数据包跟踪中作为 SQL Batch 在 SQL Server 中被调用。我还应该尝试什么?

标签: sql-serverodbcwireshark

解决方案


我想通了,解决这个问题的一种方法是使用 PDO 通过 PHP 连接器到 ODBC 执行 StoredProcedure

$odbcDataSource = 'dataSource';
$user = 'userName';
$password = 'userPassword';

$call = "{CALL OdbcOneParameterProcedure( ? )}";

$connection = new PDO($odbcDataSource, $user, $password);
if (!$connection) {
    echo 'Connection failed' . odbc_errormsg();
} else {
    echo 'Connected';

    $param = 0;

    $statement = $connection->prepare($call);
    $statement->bindParam(1, $param, PDO::PARAM_INT);
    $statement->execute();

    // dump result to quickly verify correctness of query
    $result = $statement->fetchAll();
    var_dump($result);
}

$connection = null;

推荐阅读