gpt4 book ai didi

c - OCI UTF16 环境的 OCILogon 失败

转载 作者:太空宇宙 更新时间:2023-11-03 23:55:08 26 4
gpt4 key购买 nike

OCILogon 函数表示用户名、密码和数据库参数在 OCI_UTF16 环境模式下必须采用 UTF-16 编码。我按如下方式传递这些参数,

OCILogon(p_env, p_err, &p_svc,"scott", 5,"tiger",5,"test" , 4);

请让我知道如何以 UTF_16 格式传递。我必须使用 OCI_ATTR_CHARSET_ID 并将其设置为 OCI_UTF16 吗?

最佳答案

你是对的,Oracle documentation says它:

Must be in UTF-16 encoding in OCI_UTF16 environment mode.

为了将其转换为UTF-16,他们在这里没有说但是Oracle提供了一个简单的宏。它应该像这样简单:

rc = OCILogon(p_env, p_err, &p_svc, UTF16("scott"), 5, UTF16("tiger"), 5, UTF16("d458_nat"), 8);

文档 claims too你也可以使用“L”来使用宽字符串文字,所以这也应该有效:

 rc = OCILogon(p_env, p_err, &p_svc, L"scott", 5, L"tiger", 5, L"d458_nat", 8);

注意:您应该包含 ocilib.h 并链接到 ocilibw.Lib,如 oci 文档所述:

On Microsoft Windows, 32bits and 64bits (x86) DLLs are provided and can be easily recompiled. Unpack the current archive (ocilib-xyz-windows.zip)
Copy ocilib\include\ocilib.h
Copy ocilib\lib32 |64\ocilib [x].Lib
Copy ocilib\lib32|64\ocilib [x]. Dll [...]
Where [x] is the compiled version of OCILIB ('a'> -> ANSI, 'w' -> Unicode, 'm' -> Mixed)

关于c - OCI UTF16 环境的 OCILogon 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9733088/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com