首页 > 解决方案 > 无法在运行时使用带参数的查询创建用户

问题描述

我正在使用 C++ Builder 10.2.3 (Rad Studio Tokyo 10.2.3) 和 Interbase 2017 我需要在运行时为我的用户注册创建用户。如果我在运行时创建查询,在这种情况下没有参数,它可以工作。但这会产生 MBCS 字符的问题,我将在后面解释。如果我在设计时使用参数创建查询并尝试在运行时设置参数。我收到以下错误消息:

[Application: ]
[Error] -104 335544569 Dynamic SQL Error
SQL error code = -104
Token unknown - line 2, char 14
 ?

我正在使用的查询如下:

CREATE USER myuser 
SET PASSWORD :mypass, 
FIRST NAME :myfirstname, 
LAST NAME :myname;

我在运行时替换了查询的第一行,所以没有字符。毕竟,Interbase 无法处理 USERNAME 中的 MBCS 字符。我需要使用带参数的查询,因为我的应用程序处理多字节字符 (MBCS),例如中文和日文。这是确保在 Interbase 中正确转换为 UTF8 的唯一选择。因为如果没有完成 MBCS 字符的转换,我就无法备份和恢复我的数据库。当我尝试使用名字和姓氏中的 MBCS 字符进行恢复时,我收到一条错误消息,指出 Interbase 无法在字符集之间进行音译。

根据错误消息,在我看来它无法识别查询参数。我尝试了“TIBQuery”和“TIBSQL”。同样的问题。也不可能使用存储过程。不识别创建词。那么,如何解决呢?

标签: interbasembcs

解决方案


推荐阅读