$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);
-
我已经确认它连接了 .
-
当我运行$ 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,SQLPrepare中的SQL状态S1000位于第9行的/home/payomdousti/Developer/hana.php
我用这个来安装php odbc driver => sudo apt-get install php5-odbc
PHP Version
PHP 5.3.10-1ubuntu3.4与Suhosin-Patch(cli)(内置:2012年9月12日18:59:41)版权所有(c)1997-2012 PHP Group Zend Engine v2.3.0,Copyright(c)1998- 2012年Zend Technologies
我正在使用unixODBC,你可以看到Rev38 SAP HANA的HDB驱动程序 .
- 我能够使用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()
通过ODBC通过ODBC连接是一项业务需求 . 我们无法访问SAP XS,因此这是最佳选择 . 我对使用RFC,SOAP,OData或XMLA的解决方案不感兴趣
1 回答
根据您的错误,您使用的SAP HDB驱动程序看起来不支持可滚动游标 . 您是否尝试过创建不可滚动(仅向前)的游标?
例如,在Microsoft SQL Server中,您必须将
SQL_ATTR_CURSOR_TYPE
设置为SQL_CURSOR_FORWARD_ONLY
.