-1
$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ドライバーをインストールしました=> sudo apt-get install php5-odbc

    PHP バージョン

    PHP 5.3.10-1ubuntu3.4 with Suhosin-Patch (cli) (ビルド: 2012 年 9 月 12 日 18:59:41) Copyright (c) 1997-2012 The PHP Group Zend Engine v2.3.0、Copyright (c) 1998-2012ゼンド・テクノロジーズ

    Rev38 SAP HANA の HDB ドライバーでわかるように、私は unixODBC を使用しています。

  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()
    

PHP over ODBC 経由で接続することはビジネス要件です。私たちは SAP XS にアクセスできないので、これが本当に最良の選択肢です。RFC、SOAP、OData、または XMLA を使用したソリューションには興味がない

4

1 に答える 1

0

エラーによると、使用している SAP HDB ドライバーはスクロール可能なカーソルをサポートしていないようです。スクロール不可 (前方のみ) のカーソルを作成しようとしましたか?

たとえば、Microsoft SQL Server では、に設定SQL_ATTR_CURSOR_TYPEする必要がありますSQL_CURSOR_FORWARD_ONLY

于 2013-07-18T19:07:17.860 に答える