Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
bf927e73
T
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1185
Star
22016
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
bf927e73
编写于
10月 29, 2020
作者:
F
freemine
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
macro to normalize str/len
上级
11f24b7c
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
32 addition
and
57 deletion
+32
-57
src/connector/odbc/src/todbc.c
src/connector/odbc/src/todbc.c
+32
-57
未找到文件。
src/connector/odbc/src/todbc.c
浏览文件 @
bf927e73
...
...
@@ -129,6 +129,15 @@ do { \
r_091c = SQL_SUCCESS; \
} while (0)
#define NORM_STR_LENGTH(obj, ptr, len) \
do { \
if ((len) < 0 && (len)!=SQL_NTS) { \
SET_ERROR((obj), "HY090", TSDB_CODE_ODBC_BAD_ARG, ""); \
return SQL_ERROR; \
} \
if (len==SQL_NTS) len = (ptr) ? (SQLSMALLINT)strlen((const char*)(ptr)) : 0; \
} while (0)
#define PROFILING 0
#define PROFILE(statement) \
...
...
@@ -277,22 +286,24 @@ static iconv_t sql_get_w2c(sql_t *sql) {
//
// static const char* tsdb_conn_conv_client_to_server(conn_t *conn, stack_buffer_t *buffer, const char *src, size_t len);
// static const char* tsdb_conn_conv_server_to_client(conn_t *conn, stack_buffer_t *buffer, const char *src, size_t len);
// static iconv_t sql_get_u2c(sql_t *sql) {
// if (sql->u2c == (iconv_t)-1) {
// sql->u2c = iconv_open("UTF-8", "UCS-4LE");
// }
// static const char* tsdb_conn_conv_wchars_to_server(conn_t *conn, stack_buffer_t *buffer, const char *src, size_t len);
// static const char* tsdb_conn_conv_server_to_wchars(conn_t *conn, stack_buffer_t *buffer, const char *src, size_t len);
//
// return sql->u2c;
// }
//
// static iconv_t sql_get_u2w(sql_t *sql) {
// if (sql->u2w == (iconv_t)-1) {
// sql->u2w = iconv_open("UCS-2LE", "UCS-4LE");
// }
//
// return sql->u2w;
// }
// static iconv_t sql_get_u2c(sql_t *sql) {
if
(
sql
->
u2c
==
(
iconv_t
)
-
1
)
{
sql
->
u2c
=
iconv_open
(
"UTF-8"
,
"UCS-4LE"
);
}
return
sql
->
u2c
;
}
static
iconv_t
sql_get_u2w
(
sql_t
*
sql
)
{
if
(
sql
->
u2w
==
(
iconv_t
)
-
1
)
{
sql
->
u2w
=
iconv_open
(
"UCS-2LE"
,
"UCS-4LE"
);
}
return
sql
->
u2w
;
}
static
SQLRETURN
doSQLAllocEnv
(
SQLHENV
*
EnvironmentHandle
)
{
...
...
@@ -431,21 +442,9 @@ static SQLRETURN doSQLConnect(SQLHDBC ConnectionHandle,
return
SQL_ERROR
;
}
if
(
NameLength1
<
0
&&
NameLength1
!=
SQL_NTS
)
{
SET_ERROR
(
conn
,
"HY090"
,
TSDB_CODE_ODBC_BAD_ARG
,
""
);
return
SQL_ERROR
;
}
if
(
NameLength2
<
0
&&
NameLength2
!=
SQL_NTS
)
{
SET_ERROR
(
conn
,
"HY090"
,
TSDB_CODE_ODBC_BAD_ARG
,
""
);
return
SQL_ERROR
;
}
if
(
NameLength3
<
0
&&
NameLength3
!=
SQL_NTS
)
{
SET_ERROR
(
conn
,
"HY090"
,
TSDB_CODE_ODBC_BAD_ARG
,
""
);
return
SQL_ERROR
;
}
if
(
NameLength1
==
SQL_NTS
)
NameLength1
=
ServerName
?
(
SQLSMALLINT
)
strlen
((
const
char
*
)
ServerName
)
:
0
;
if
(
NameLength2
==
SQL_NTS
)
NameLength2
=
UserName
?
(
SQLSMALLINT
)
strlen
((
const
char
*
)
UserName
)
:
0
;
if
(
NameLength3
==
SQL_NTS
)
NameLength3
=
Authentication
?
(
SQLSMALLINT
)
strlen
((
const
char
*
)
Authentication
)
:
0
;
NORM_STR_LENGTH
(
conn
,
ServerName
,
NameLength1
);
NORM_STR_LENGTH
(
conn
,
UserName
,
NameLength2
);
NORM_STR_LENGTH
(
conn
,
Authentication
,
NameLength3
);
if
(
NameLength1
>
SQL_MAX_DSN_LENGTH
)
{
SET_ERROR
(
conn
,
"HY090"
,
TSDB_CODE_ODBC_BAD_ARG
,
""
);
...
...
@@ -666,15 +665,7 @@ static SQLRETURN doSQLExecDirect(SQLHSTMT StatementHandle,
CHK_CONN
(
sql
);
CHK_CONN_TAOS
(
sql
);
if
(
!
StatementText
)
{
SET_ERROR
(
sql
,
"HY009"
,
TSDB_CODE_ODBC_BAD_ARG
,
"StatementText [%p] not allowed"
,
StatementText
);
return
SQL_ERROR
;
}
if
(
TextLength
<
0
&&
TextLength
!=
SQL_NTS
)
{
SET_ERROR
(
sql
,
"HY090"
,
TSDB_CODE_ODBC_BAD_ARG
,
""
);
return
SQL_ERROR
;
}
if
(
TextLength
==
SQL_NTS
)
TextLength
=
StatementText
?
(
SQLSMALLINT
)
strlen
((
const
char
*
)
StatementText
)
:
0
;
NORM_STR_LENGTH
(
sql
,
StatementText
,
TextLength
);
if
(
sql
->
rs
)
{
taos_free_result
(
sql
->
rs
);
...
...
@@ -1159,15 +1150,7 @@ static SQLRETURN doSQLPrepare(SQLHSTMT StatementHandle,
CHK_CONN
(
sql
);
CHK_CONN_TAOS
(
sql
);
if
(
!
StatementText
)
{
SET_ERROR
(
sql
,
"HY009"
,
TSDB_CODE_ODBC_BAD_ARG
,
"StatementText [%p] not allowed"
,
StatementText
);
return
SQL_ERROR
;
}
if
(
TextLength
<
0
&&
TextLength
!=
SQL_NTS
)
{
SET_ERROR
(
sql
,
"HY090"
,
TSDB_CODE_ODBC_BAD_ARG
,
""
);
return
SQL_ERROR
;
}
if
(
TextLength
==
SQL_NTS
)
TextLength
=
StatementText
?
(
SQLSMALLINT
)
strlen
((
const
char
*
)
StatementText
)
:
0
;
NORM_STR_LENGTH
(
sql
,
StatementText
,
TextLength
);
if
(
sql
->
rs
)
{
taos_free_result
(
sql
->
rs
);
...
...
@@ -2182,15 +2165,7 @@ static SQLRETURN doSQLDriverConnect(
return
SQL_ERROR
;
}
if
(
!
szConnStrIn
)
{
SET_ERROR
(
conn
,
"HY009"
,
TSDB_CODE_ODBC_BAD_ARG
,
"szConnStrIn [%p] not allowed"
,
szConnStrIn
);
return
SQL_ERROR
;
}
if
(
cbConnStrIn
<
0
&&
cbConnStrIn
!=
SQL_NTS
)
{
SET_ERROR
(
conn
,
"HY090"
,
TSDB_CODE_ODBC_BAD_ARG
,
""
);
return
SQL_ERROR
;
}
if
(
cbConnStrIn
==
SQL_NTS
)
cbConnStrIn
=
szConnStrIn
?
(
SQLSMALLINT
)
strlen
((
const
char
*
)
szConnStrIn
)
:
0
;
NORM_STR_LENGTH
(
conn
,
szConnStrIn
,
cbConnStrIn
)
// DSN=<dsn>; UID=<uid>; PWD=<pwd>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录