Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
慢慢CG
TDengine
提交
22187705
T
TDengine
项目概览
慢慢CG
/
TDengine
与 Fork 源项目一致
Fork自
taosdata / TDengine
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
22187705
编写于
1月 06, 2021
作者:
sangshuduo
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[TD-2598] feature: C# taosdemo, remove .dll to support both Linux and Windows.
上级
fc166e9c
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
118 addition
and
118 deletion
+118
-118
src/connector/C#/TDengineDriver.cs
src/connector/C#/TDengineDriver.cs
+118
-117
tests/examples/C#/taosdemo/TDengineDriver.cs
tests/examples/C#/taosdemo/TDengineDriver.cs
+0
-1
未找到文件。
src/connector/C#/TDengineDriver.cs
浏览文件 @
22187705
...
...
@@ -19,136 +19,137 @@ using System.Runtime.InteropServices;
namespace
TDengineDriver
{
enum
TDengineDataType
{
TSDB_DATA_TYPE_NULL
=
0
,
// 1 bytes
TSDB_DATA_TYPE_BOOL
=
1
,
// 1 bytes
TSDB_DATA_TYPE_TINYINT
=
2
,
// 1 bytes
TSDB_DATA_TYPE_SMALLINT
=
3
,
// 2 bytes
TSDB_DATA_TYPE_INT
=
4
,
// 4 bytes
TSDB_DATA_TYPE_BIGINT
=
5
,
// 8 bytes
TSDB_DATA_TYPE_FLOAT
=
6
,
// 4 bytes
TSDB_DATA_TYPE_DOUBLE
=
7
,
// 8 bytes
TSDB_DATA_TYPE_BINARY
=
8
,
// string
TSDB_DATA_TYPE_TIMESTAMP
=
9
,
// 8 bytes
TSDB_DATA_TYPE_NCHAR
=
10
// unicode string
}
enum
TDengineInitOption
{
TSDB_OPTION_LOCALE
=
0
,
TSDB_OPTION_CHARSET
=
1
,
TSDB_OPTION_TIMEZONE
=
2
,
TDDB_OPTION_CONFIGDIR
=
3
,
TDDB_OPTION_SHELL_ACTIVITY_TIMER
=
4
}
class
TDengineMeta
{
public
string
name
;
public
short
size
;
public
byte
type
;
public
string
TypeName
()
enum
TDengineDataType
{
switch
((
TDengineDataType
)
type
)
{
case
TDengineDataType
.
TSDB_DATA_TYPE_BOOL
:
return
"BOOLEAN"
;
case
TDengineDataType
.
TSDB_DATA_TYPE_TINYINT
:
return
"BYTE"
;
case
TDengineDataType
.
TSDB_DATA_TYPE_SMALLINT
:
return
"SHORT"
;
case
TDengineDataType
.
TSDB_DATA_TYPE_INT
:
return
"INT"
;
case
TDengineDataType
.
TSDB_DATA_TYPE_BIGINT
:
return
"LONG"
;
case
TDengineDataType
.
TSDB_DATA_TYPE_FLOAT
:
return
"FLOAT"
;
case
TDengineDataType
.
TSDB_DATA_TYPE_DOUBLE
:
return
"DOUBLE"
;
case
TDengineDataType
.
TSDB_DATA_TYPE_BINARY
:
return
"STRING"
;
case
TDengineDataType
.
TSDB_DATA_TYPE_TIMESTAMP
:
return
"TIMESTAMP"
;
case
TDengineDataType
.
TSDB_DATA_TYPE_NCHAR
:
return
"NCHAR"
;
default
:
return
"undefine"
;
}
TSDB_DATA_TYPE_NULL
=
0
,
// 1 bytes
TSDB_DATA_TYPE_BOOL
=
1
,
// 1 bytes
TSDB_DATA_TYPE_TINYINT
=
2
,
// 1 bytes
TSDB_DATA_TYPE_SMALLINT
=
3
,
// 2 bytes
TSDB_DATA_TYPE_INT
=
4
,
// 4 bytes
TSDB_DATA_TYPE_BIGINT
=
5
,
// 8 bytes
TSDB_DATA_TYPE_FLOAT
=
6
,
// 4 bytes
TSDB_DATA_TYPE_DOUBLE
=
7
,
// 8 bytes
TSDB_DATA_TYPE_BINARY
=
8
,
// string
TSDB_DATA_TYPE_TIMESTAMP
=
9
,
// 8 bytes
TSDB_DATA_TYPE_NCHAR
=
10
// unicode string
}
}
class
TDengine
{
public
const
int
TSDB_CODE_SUCCESS
=
0
;
enum
TDengineInitOption
{
TSDB_OPTION_LOCALE
=
0
,
TSDB_OPTION_CHARSET
=
1
,
TSDB_OPTION_TIMEZONE
=
2
,
TDDB_OPTION_CONFIGDIR
=
3
,
TDDB_OPTION_SHELL_ACTIVITY_TIMER
=
4
}
[
DllImport
(
"taos.dll"
,
EntryPoint
=
"taos_init"
,
CallingConvention
=
CallingConvention
.
Cdecl
)]
static
extern
public
void
Init
();
class
TDengineMeta
{
public
string
name
;
public
short
size
;
public
byte
type
;
public
string
TypeName
()
{
switch
((
TDengineDataType
)
type
)
{
case
TDengineDataType
.
TSDB_DATA_TYPE_BOOL
:
return
"BOOLEAN"
;
case
TDengineDataType
.
TSDB_DATA_TYPE_TINYINT
:
return
"BYTE"
;
case
TDengineDataType
.
TSDB_DATA_TYPE_SMALLINT
:
return
"SHORT"
;
case
TDengineDataType
.
TSDB_DATA_TYPE_INT
:
return
"INT"
;
case
TDengineDataType
.
TSDB_DATA_TYPE_BIGINT
:
return
"LONG"
;
case
TDengineDataType
.
TSDB_DATA_TYPE_FLOAT
:
return
"FLOAT"
;
case
TDengineDataType
.
TSDB_DATA_TYPE_DOUBLE
:
return
"DOUBLE"
;
case
TDengineDataType
.
TSDB_DATA_TYPE_BINARY
:
return
"STRING"
;
case
TDengineDataType
.
TSDB_DATA_TYPE_TIMESTAMP
:
return
"TIMESTAMP"
;
case
TDengineDataType
.
TSDB_DATA_TYPE_NCHAR
:
return
"NCHAR"
;
default
:
return
"undefine"
;
}
}
}
[
DllImport
(
"taos.dll"
,
EntryPoint
=
"taos_cleanup"
,
CallingConvention
=
CallingConvention
.
Cdecl
)]
static
extern
public
void
Cleanup
();
class
TDengine
{
public
const
int
TSDB_CODE_SUCCESS
=
0
;
[
DllImport
(
"taos.dll"
,
EntryPoint
=
"taos_options
"
,
CallingConvention
=
CallingConvention
.
Cdecl
)]
static
extern
public
void
Options
(
int
option
,
string
value
);
[
DllImport
(
"taos"
,
EntryPoint
=
"taos_init
"
,
CallingConvention
=
CallingConvention
.
Cdecl
)]
static
extern
public
void
Init
(
);
[
DllImport
(
"taos.dll"
,
EntryPoint
=
"taos_connect
"
,
CallingConvention
=
CallingConvention
.
Cdecl
)]
static
extern
public
IntPtr
Connect
(
string
ip
,
string
user
,
string
password
,
string
db
,
short
port
);
[
DllImport
(
"taos"
,
EntryPoint
=
"taos_cleanup
"
,
CallingConvention
=
CallingConvention
.
Cdecl
)]
static
extern
public
void
Cleanup
(
);
[
DllImport
(
"taos.dll"
,
EntryPoint
=
"taos_errstr"
,
CallingConvention
=
CallingConvention
.
Cdecl
)]
static
extern
private
IntPtr
taos_errstr
(
IntPtr
res
);
static
public
string
Error
(
IntPtr
res
)
{
IntPtr
errPtr
=
taos_errstr
(
res
);
return
Marshal
.
PtrToStringAnsi
(
errPtr
);
}
[
DllImport
(
"taos"
,
EntryPoint
=
"taos_options"
,
CallingConvention
=
CallingConvention
.
Cdecl
)]
static
extern
public
void
Options
(
int
option
,
string
value
);
[
DllImport
(
"taos.dll"
,
EntryPoint
=
"taos_errno
"
,
CallingConvention
=
CallingConvention
.
Cdecl
)]
static
extern
public
int
ErrorNo
(
IntPtr
res
);
[
DllImport
(
"taos"
,
EntryPoint
=
"taos_connect
"
,
CallingConvention
=
CallingConvention
.
Cdecl
)]
static
extern
public
IntPtr
Connect
(
string
ip
,
string
user
,
string
password
,
string
db
,
short
port
);
[
DllImport
(
"taos.dll"
,
EntryPoint
=
"taos_query"
,
CallingConvention
=
CallingConvention
.
Cdecl
)]
static
extern
public
IntPtr
Query
(
IntPtr
conn
,
string
sqlstr
);
[
DllImport
(
"taos"
,
EntryPoint
=
"taos_errstr"
,
CallingConvention
=
CallingConvention
.
Cdecl
)]
static
extern
private
IntPtr
taos_errstr
(
IntPtr
res
);
static
public
string
Error
(
IntPtr
res
)
{
IntPtr
errPtr
=
taos_errstr
(
res
);
return
Marshal
.
PtrToStringAnsi
(
errPtr
);
}
[
DllImport
(
"taos.dll"
,
EntryPoint
=
"taos_affected_rows
"
,
CallingConvention
=
CallingConvention
.
Cdecl
)]
static
extern
public
int
AffectRows
(
IntPtr
res
);
[
DllImport
(
"taos"
,
EntryPoint
=
"taos_errno
"
,
CallingConvention
=
CallingConvention
.
Cdecl
)]
static
extern
public
int
ErrorNo
(
IntPtr
res
);
[
DllImport
(
"taos.dll"
,
EntryPoint
=
"taos_field_count
"
,
CallingConvention
=
CallingConvention
.
Cdecl
)]
static
extern
public
int
FieldCount
(
IntPtr
res
);
[
DllImport
(
"taos"
,
EntryPoint
=
"taos_query
"
,
CallingConvention
=
CallingConvention
.
Cdecl
)]
static
extern
public
IntPtr
Query
(
IntPtr
conn
,
string
sqlstr
);
[
DllImport
(
"taos.dll"
,
EntryPoint
=
"taos_fetch_fields"
,
CallingConvention
=
CallingConvention
.
Cdecl
)]
static
extern
private
IntPtr
taos_fetch_fields
(
IntPtr
res
);
static
public
List
<
TDengineMeta
>
FetchFields
(
IntPtr
res
)
{
const
int
fieldSize
=
68
;
List
<
TDengineMeta
>
metas
=
new
List
<
TDengineMeta
>();
if
(
res
==
IntPtr
.
Zero
)
{
return
metas
;
}
int
fieldCount
=
FieldCount
(
res
);
IntPtr
fieldsPtr
=
taos_fetch_fields
(
res
);
for
(
int
i
=
0
;
i
<
fieldCount
;
++
i
)
{
int
offset
=
i
*
fieldSize
;
TDengineMeta
meta
=
new
TDengineMeta
();
meta
.
name
=
Marshal
.
PtrToStringAnsi
(
fieldsPtr
+
offset
);
meta
.
type
=
Marshal
.
ReadByte
(
fieldsPtr
+
offset
+
65
);
meta
.
size
=
Marshal
.
ReadInt16
(
fieldsPtr
+
offset
+
66
);
metas
.
Add
(
meta
);
}
return
metas
;
}
[
DllImport
(
"taos"
,
EntryPoint
=
"taos_affected_rows"
,
CallingConvention
=
CallingConvention
.
Cdecl
)]
static
extern
public
int
AffectRows
(
IntPtr
res
);
[
DllImport
(
"taos.dll"
,
EntryPoint
=
"taos_fetch_row
"
,
CallingConvention
=
CallingConvention
.
Cdecl
)]
static
extern
public
IntPtr
FetchRows
(
IntPtr
res
);
[
DllImport
(
"taos"
,
EntryPoint
=
"taos_field_count
"
,
CallingConvention
=
CallingConvention
.
Cdecl
)]
static
extern
public
int
FieldCount
(
IntPtr
res
);
[
DllImport
(
"taos.dll"
,
EntryPoint
=
"taos_free_result"
,
CallingConvention
=
CallingConvention
.
Cdecl
)]
static
extern
public
IntPtr
FreeResult
(
IntPtr
res
);
[
DllImport
(
"taos"
,
EntryPoint
=
"taos_fetch_fields"
,
CallingConvention
=
CallingConvention
.
Cdecl
)]
static
extern
private
IntPtr
taos_fetch_fields
(
IntPtr
res
);
static
public
List
<
TDengineMeta
>
FetchFields
(
IntPtr
res
)
{
const
int
fieldSize
=
68
;
[
DllImport
(
"taos.dll"
,
EntryPoint
=
"taos_close"
,
CallingConvention
=
CallingConvention
.
Cdecl
)]
static
extern
public
int
Close
(
IntPtr
taos
);
}
}
\ No newline at end of file
List
<
TDengineMeta
>
metas
=
new
List
<
TDengineMeta
>();
if
(
res
==
IntPtr
.
Zero
)
{
return
metas
;
}
int
fieldCount
=
FieldCount
(
res
);
IntPtr
fieldsPtr
=
taos_fetch_fields
(
res
);
for
(
int
i
=
0
;
i
<
fieldCount
;
++
i
)
{
int
offset
=
i
*
fieldSize
;
TDengineMeta
meta
=
new
TDengineMeta
();
meta
.
name
=
Marshal
.
PtrToStringAnsi
(
fieldsPtr
+
offset
);
meta
.
type
=
Marshal
.
ReadByte
(
fieldsPtr
+
offset
+
65
);
meta
.
size
=
Marshal
.
ReadInt16
(
fieldsPtr
+
offset
+
66
);
metas
.
Add
(
meta
);
}
return
metas
;
}
[
DllImport
(
"taos"
,
EntryPoint
=
"taos_fetch_row"
,
CallingConvention
=
CallingConvention
.
Cdecl
)]
static
extern
public
IntPtr
FetchRows
(
IntPtr
res
);
[
DllImport
(
"taos"
,
EntryPoint
=
"taos_free_result"
,
CallingConvention
=
CallingConvention
.
Cdecl
)]
static
extern
public
IntPtr
FreeResult
(
IntPtr
res
);
[
DllImport
(
"taos"
,
EntryPoint
=
"taos_close"
,
CallingConvention
=
CallingConvention
.
Cdecl
)]
static
extern
public
int
Close
(
IntPtr
taos
);
}
}
tests/examples/C#/taosdemo/TDengineDriver.cs
已删除
120000 → 0
浏览文件 @
fc166e9c
../../../../
src
/
connector
/
C
#
/
TDengineDriver
.
cs
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录