2009-07-21 4 views
2

Windowsで動作するIngresとCの両方のアプリケーションであるOpenAPIを通じて、Ingresから提供されたdemodbに接続する必要があります。私がしたこと:CからのIngresの接続

  1. Ingres Network Utilityで "usernode"という名前の "node"を作成しました。
  2. Ingresインストールで作成されたユーザーアカウント(「ユーザー」パスワード「ユーザー」)とWindowsユーザー管理(同じクレジット)
  3. データベースのユーザーに必要な権限が与えられました。
  4. Cコードでは、IIAPI_CONNPARM構造体でIIapi_connect()関数を呼び出しました。 用いた部材: co_target = "usernode :: DEMODB"、 co_username = "ユーザー"、 co_password = "ユーザー"

しかしIIapi_connect()呼び出しのエラーを返します。

「ユーザーが提供vnodeはデータベース名の一部(vnode :: dbname)に含まれていますが、そのvnodeの接続情報がありません.NetworkUTILを使用してvnodeの接続情報を入力してください。

誰もが奇妙な概念「ノード」を知っていますか?

接続に成功するために必要な最小限の手順(データベース管理および関数パラメータの受け渡し)は何ですか?

答えて

2

ユーザーIDがサーバーに追加されていないため、次のエラーが表示されます。

"User provided a vnode as part of the database name (vnode::dbname), but connection information for that vnode is missing. Enter connection information for the vnode using NETUTIL."

私は全体で渡されるユーザーIDは仮想ノード(別名のvnode)定義で定義されており、それがサーバ上のユーザリストに追加する必要があり、そのユーザーのことを推測しています。以下は、コマンドラインからユーザーを追加し、追加したいユーザ名にユーザー名を変更します:Windowsの場合

sql iidbdb <<EOSQL 
create user USERNAME\g 
\q 

:UNIX/Linuxの/ OS Xの場合

echo "create user USERNAME\g" | sql iidbdb 

代わりに、co_targetがすべての接続情報(ユーザーの詳細を含む)を指定するように、接続で動的なvnodeを使用することができます。

@localhost,tcp_ip,II[ingres,secret]::iidbdb 

あなたがIngresのPECL拡張子を見てみましょうIngresのためのOpenAPIのコードの作業例を参照したい場合の例

ため

1
  1. OSにパスワードなしのアカウントを作成する必要があります。
  2. OSと同じユーザ名とパスワードでノードを作成する必要があります。例えば、 "Connection Information"ブロックの "Remote Node"パラメータを "localhost"(!)に割り当てることを忘れないでください。それは本当の住所です(!)。 「Listen Address」パラメータはポートに内部変換されます。 「II」のままにしておきます。
  3. VDBAでは、ADMIN NODE内に「ユーザー」アカウントが作成されている可能性があります。したがって、そのアカウントにはどのパスワード(!)も使用しないでください。既存のパスワードチェックボックス「古いパスワードを削除する」を入力して削除することができます。
  4. 承認の場合、通常はプロセスの資格情報を使用します。
  5. したがって、user :: demodbパラメータco_target = "usernode :: demodb"のままにしてください。

質問がありますか?