水曜日, 6月 16, 2010
[C言語・C++]OCIで次のエラー?!「kgepop: no error frame to pop to for error 21500」
▼質問
OCIThreadからOCIConnectionPoolを使ってOCILogon2にログインすると次のエラーが出るんだ。
「kgepop: no error frame to pop to for error 21500」
どうしてこうなるか教えてくれ!!
▼回答
OCIInitialize()をコールした時のmodeを確認してくれ!!
OCIThreadを使う時のmodeは、次の様な指定の仕方にするんだ。
「(ub4)(OCI_THREADED | OCI_OBJECT)」
OCIInitialize( (ub4)(OCI_THREADED | OCI_OBJECT), (dvoid *)0,
( dvoid * (*)(dvoid *, size_t) )0,
( dvoid * (*)(dvoid *, dvoid *, size_t) )0,
( void (*)(dvoid *, dvoid *) )0 );
OCIEnvCreate()をコールした時の指定の仕方。
OCIEnvCreate( (OCIEnv **)&envhp, (ub4)OCI_THREADED, (dvoid *)0,
( dvoid * (*)(dvoid *, size_t) )0,
( dvoid * (*)(dvoid *, dvoid *, size_t) )0,
( void (*)(dvoid *, dvoid *) )0, (size_t)0, (dvoid **)0 );
■参考サイト
Re: kgepop: no error frame to pop to for error 21500
Oracle ABC Wiki: Ora 19999 Ora 24279 Jp
OCIThreadからOCIConnectionPoolを使ってOCILogon2にログインすると次のエラーが出るんだ。
「kgepop: no error frame to pop to for error 21500」
どうしてこうなるか教えてくれ!!
▼回答
OCIInitialize()をコールした時のmodeを確認してくれ!!
OCIThreadを使う時のmodeは、次の様な指定の仕方にするんだ。
「(ub4)(OCI_THREADED | OCI_OBJECT)」
OCIInitialize( (ub4)(OCI_THREADED | OCI_OBJECT), (dvoid *)0,
( dvoid * (*)(dvoid *, size_t) )0,
( dvoid * (*)(dvoid *, dvoid *, size_t) )0,
( void (*)(dvoid *, dvoid *) )0 );
OCIEnvCreate()をコールした時の指定の仕方。
OCIEnvCreate( (OCIEnv **)&envhp, (ub4)OCI_THREADED, (dvoid *)0,
( dvoid * (*)(dvoid *, size_t) )0,
( dvoid * (*)(dvoid *, dvoid *, size_t) )0,
( void (*)(dvoid *, dvoid *) )0, (size_t)0, (dvoid **)0 );
■参考サイト
Re: kgepop: no error frame to pop to for error 21500
Oracle ABC Wiki: Ora 19999 Ora 24279 Jp