php odbc hana hdb错误

时间:2013-01-22 19:11:54

标签: php odbc sap

$db_name = "hana";
$username = "SYSTEM";
$password = "my_real_password";

$conn = odbc_connect($db_name, $username, $password) or die(odbc_error_msg()); 
$sql = "SELECT REGION_NAME, SUM(SALES_AMOUNT) FROM \"_SYS_BIC\".\"mydemo/CV_SALES\" GROUP BY REGION_NAME"; 
$result = odbc_prepare($conn, $sql);

odbc_close($conn); 
  1. 我已经确认它已连接。

  2. 当我运行$ result = odbc_prepare($ conn,$ sql);它抛出了我的错误

      

    PHP警告:odbc_prepare():SQL错误:[unixODBC] [SAP AG] [LIBODBCHDB SO] [HDB]一般错误; -10808功能(SCROLLABLE RESULT)尚未在模块中实现:/ HDB / IMP / NewDB100_REL / src /// sys / src / Inter,第9行/home/payomdousti/Developer/hana.php中SQLPrepare中的SQL状态S1000

    我用这个来安装php odbc driver => sudo apt-get install php5-odbc

    PHP版

      

    PHP 5.3.10-1ubuntu3.4与Suhosin-Patch(cli)(内置:2012年9月12日18:59:41)   版权所有(c)1997-2012 PHP小组   Zend Engine v2.3.0,版权所有(c)1998-2012 Zend Technologies

    我正在使用unixODBC,你可以看到Rev38 SAP HANA的HDB驱动程序。

  3. 我可以使用pyodbc使用以下代码在Python中成功准备和执行查询。

    import pyodbc
    conn = pyodbc.connect('DSN=hana;UID=SYSTEM;PWD=my_real_password')
    cursor = conn.cursor()
    cursor.execute("SELECT REGION_NAME, SUM(SALES_AMOUNT) FROM \"_SYS_BIC\".\"mydemo/CV_SALES\" GROUP BY REGION_NAME")
    print cursor.fetchall()
    conn.close()
    
  4. 通过ODBC通过ODBC进行连接是一项业务需求。我们无法访问SAP XS,因此这是最佳选择。我对使用RFC,SOAP,OData或XMLA的解决方案不感兴趣

1 个答案:

答案 0 :(得分:0)

根据您的错误,您使用的SAP HDB驱动程序看起来不支持可滚动游标。您是否尝试过创建不可滚动(仅向前)的游标?

例如,在Microsoft SQL Server中,您必须将SQL_ATTR_CURSOR_TYPE设置为SQL_CURSOR_FORWARD_ONLY