$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,第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驱动程序。
我可以使用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的解决方案不感兴趣
答案 0 :(得分:0)
根据您的错误,您使用的SAP HDB驱动程序看起来不支持可滚动游标。您是否尝试过创建不可滚动(仅向前)的游标?
例如,在Microsoft SQL Server中,您必须将SQL_ATTR_CURSOR_TYPE
设置为SQL_CURSOR_FORWARD_ONLY
。