当前位置: 首页 > news >正文

TDengine 配置 ODBC 数据源

简介

TDengine ODBC 是为 TDengine 实现的 ODBC 驱动程序,支持 Windows 系统的应用(如 PowerBI 等)以及用户自定义开发的应用程序,通过 ODBC 标准接口访问本地、远程和云服务的 TDengine 数据库。

TDengine ODBC 提供基于 WebSocket(推荐)和 原生连接两种方式连接 TDengine 数据库,使用时可以为 TDengine 数据源设置不同的连接方式。访问云服务时必须使用 WebSocket 连接方式。

TDengine ODBC 提供 64 位 和 32 位 两种驱动程序。但 32 位仅企业版支持,且仅支持 WebSocket 连接方式。

注意:

  • 驱动管理器:确保使用与应用程序架构匹配的 ODBC 驱动管理器。32 位应用程序需要使用 32 位 ODBC 驱动管理器,64 位应用程序需要使用 64 位 ODBC 驱动管理器。
  • 数据源名称(DSN):32 位和 64 位 ODBC 驱动管理器都可以看到所有 DSN,用户 DSN 标签页下的 DSN 如果名字相同会共用,因此需要在 DSN 名称上去区分。

想更多了解 TDengine 时序时序数据库的使用,可访问 TDengine官方文档。

ODBC 版本兼容性

支持 ODBC 所有版本

安装

  1. 仅支持 Windows 平台。Windows 上需要安装过 VC 运行时库,可在此下载安装 VC运行时库 如果已经安装VS开发工具可忽略。

  2. 安装 TDengine Windows 客户端。版本在 3.2.1.0 或以上,包含 TDengine 的 ODBC 64 位驱动;版本在 3.3.3.0 或以上,包含 TDengine 的 ODBC 32/64 位驱动。

配置数据源

数据源连接类型与区别

TDengine ODBC 支持两种连接 TDengine 数据库方式:WebSocket 连接与 Native 连接,其区别如下:

  1. 访问云服务仅支持使用 WebSocket 连接方式。

  2. 32 位应用程序仅支持使用 WebSocket 连接方式。

  3. WebSocket 连接的兼容性更好,一般不需要随着 TDengine 数据库服务端升级而升级客户端的库。

  4. Native 连接通常性能更好一点,但是必须与 TDengine 数据库服务端的版本保持一致。

  5. 对于一般用户,建议使用 WebSocket 连接方式,性能与 Native 差别不大,兼容性更好。

WebSocket 连接

  1. 【开始】菜单搜索打开【ODBC 数据源(32 位)】或者【ODBC 数据源(64 位)】管理工具

  2. 选中【用户 DSN】标签页,通过【添加(D)】按钮进入"创建数据源"界面

  3. 选择想要添加的数据源,这里我们选择【TDengine】

  4. 点击完成,进入 TDengine ODBC 数据源配置页面,填写如下必要信息

在这里插入图片描述

4.1 【DSN】:Data Source Name 必填,为新添加的 ODBC 数据源命名4.2【连接类型】:必选,选择连接类型,这里选择 【WebSocket】4.3【URL】必填,ODBC 数据源 URL,示例:`http://localhost:6041`, 云服务的 url 示例:`https://gw.cloud.taosdata.com?token=your_token`4.4【数据库】选填,需要连接的默认数据库4.5【用户名】仅供第5步测试连接使用,选填,数据库用户名,如果不填,TDengine 默认 root4.6【密码】仅供第5步测试连接使用,选填,数据库用户密码,如果不填,TDengine 默认 taosdata4.7【兼容软件】支持对工业软件 KingSCADA、Kepware 等的兼容性适配,通常情况下,选择默认值 General 即可
  1. 点【测试连接】测试连接情况,如果成功,提示"成功连接到URL"

  2. 点【确定】,即可保存配置并退出

  3. 也可以在第2步选择已经配置好的数据源名通过【配置】按钮进入配置页面,修改已有配置

原生连接(不支持云服务和 32 位应用程序)

  1. 【开始】菜单搜索打开【ODBC 数据源(64 位)】管理工具(注意不要选择ODBC 数据源(32 位))

  2. 选中【用户 DSN】标签页,通过【添加(D)】按钮进入"创建数据源"界面

  3. 选择想要添加的数据源,这里我们选择【TDengine】

  4. 点击完成,进入 TDengine ODBC 数据源配置页面,填写如下必要信息

    在这里插入图片描述

    4.1 【DSN】:Data Source Name 必填,为新添加的 ODBC 数据源命名

    4.2 【连接类型】:必选,选择连接类型,这里选择 【Native】 原生连接;

    4.3 【服务器】必填,ODBC 数据源 服务器 地址,示例:localhost:6030

    4.4 【数据库】选填,需要连接的默认数据库

    4.5 【用户名】仅供第5步测试连接使用,选填,数据库用户名,如果不填,TDengine 默认 root

    4.6 【密码】仅供第5步测试连接使用,选填,数据库用户密码,如果不填,TDengine 默认 taosdata

    4.7【兼容软件】支持对工业软件 KingSCADA、Kepware 等的兼容性适配,通常情况下,选择默认值 General 即可

  5. 点【测试连接】测试连接情况,如果成功,提示"连接成功"

  6. 点【确定】,即可保存配置并退出

  7. 也可以在第2步选择已经配置好的数据源名通过【配置】按钮进入配置页面,修改已有配置

支持的平台

  • 原生连接方式支持的平台和 TDengine Windows X64版 客户端驱动支持的平台一致。
  • WebSocket 连接方式除此之外还支持 Windows X64系统上运行的 32 位应用程序上使用。

版本历史

taos_odbc 版本主要变化TDengine 版本
v1.1.01. 支持视图功能;
2. 支持 VARBINARY/GEOMETRY 数据类型;
3. 支持 ODBC 32 位 WebSocket 连接方式(仅企业版支持);
4. 支持 ODBC 数据源配置对话框设置对工业软件 KingSCADA、Kepware 等的兼容性适配选项(仅企业版支持);
3.3.3.0 及更高版本
v1.0.2支持 CP1252 字符编码;3.2.3.0 及更高版本
v1.0.11. 支持 DSN 设置 BI 模式,在 BI 模式下 TDengine 数据库不返回系统数据库和超级表子表信息;
2. 重构字符集转换模块,提升读写性能;
3. ODBC 数据源配置对话框中默认修改默认连接方式为“WebSocket”;
4. ODBC 数据源配置对话框增加“测试连接”控件;
5. ODBC 数据源配置支持中文/英文界面;
-
v1.0.0.0发布初始版本,支持与 TDengine 数据库交互以读写数据,具体请参考“API 参考”一节3.2.2.0 及更高版本

数据类型映射

下表说明了 ODBC 连接器如何将服务器数据类型映射到默认的 SQL 和 C 数据类型。

TDengine TypeSQL TypeC Type
TIMESTAMPSQL_TYPE_TIMESTAMPSQL_C_TIMESTAMP
INTSQL_INTEGERSQL_C_SLONG
INT UNSIGNEDSQL_INTEGERSQL_C_ULONG
BIGINTSQL_BIGINTSQL_C_SBIGINT
BIGINT UNSIGNEDSQL_BIGINTSQL_C_UBIGINT
FLOATSQL_REALSQL_C_FLOAT
DOUBLESQL_DOUBLESQL_C_DOUBLE
BINARYSQL_BINARYSQL_C_BINARY
SMALLINTSQL_SMALLINTSQL_C_SSHORT
SMALLINT UNSIGNEDSQL_SMALLINTSQL_C_USHORT
TINYINTSQL_TINYINTSQL_C_STINYINT
TINYINT UNSIGNEDSQL_TINYINTSQL_C_UTINYINT
BOOLSQL_BITSQL_C_BIT
NCHARSQL_VARCHARSQL_C_CHAR
VARCHARSQL_VARCHARSQL_C_CHAR
JSONSQL_WVARCHARSQL_C_WCHAR
GEOMETRYSQL_VARBINARYSQL_C_BINARY
VARBINARYSQL_VARBINARYSQL_C_BINARY

API 参考

API 列表

  • 目前导出的ODBC函数有:
ODBC/Setup APILinuxmacOSWindowsNote
ConfigDSN
ConfigDriver
ConfigTranslator
SQLAllocHandle
SQLBindCol只能按列绑定
SQLBindParameter只能按列绑定
SQLBrowseConnect
SQLBulkOperationsTDengine 没有对应的
SQLCloseCursor
SQLColAttribute
SQLColumnPrivilegesTDengine 没有严格对应的
SQLColumns
SQLCompleteAsync
SQLConnect
SQLCopyDesc
SQLDescribeCol
SQLDescribeParam
SQLDisconnect
SQLDriverConnect
SQLEndTranTDengine是非事务性的,因此这最多是模拟
SQLExecDirect
SQLExecute
SQLExtendedFetch
SQLFetch
SQLFetchScrollTDengine 没有对应的, 仅仅实现 SQL_FETCH_NEXT
SQLForeignKeysTDengine 没有对应的
SQLFreeHandle
SQLFreeStmt
SQLGetConnectAttr支持部分属性,下面列出了不支持的属性
SQLGetCursorNameTDengine 没有对应的
SQLGetData
SQLGetDescField
SQLGetDescRec
SQLGetDiagField
SQLGetDiagRec
SQLGetEnvAttr
SQLGetInfo
SQLGetStmtAttr支持部分属性,下面列出了不支持的属性
SQLGetTypeInfo
SQLMoreResults
SQLNativeSqlTDengine 没有对应的
SQLNumParams
SQLNumResultCols
SQLParamDataTDengine 没有对应的
SQLPrepare
SQLPrimaryKeys
SQLProcedureColumnsTDengine 没有对应的
SQLProceduresTDengine 没有对应的
SQLPutDataTDengine 没有对应的
SQLRowCount
SQLSetConnectAttr支持部分属性,下面列出了不支持的属性
SQLSetCursorNameTDengine 没有对应的
SQLSetDescField
SQLSetDescRec
SQLSetEnvAttr
SQLSetPosTDengine 没有对应的
SQLSetStmtAttr支持部分属性,下面列出了不支持的属性
SQLSpecialColumnsTDengine 没有对应的
SQLStatisticsTDengine 没有对应的
SQLTablePrivilegesTDengine 没有严格对应的
SQLTables
  • 不支持的语句属性 (SQLSetStmtAttr)
AttributeNote
SQL_ATTR_CONCURRENCYTDengine 没有 updatable-CURSOR 机制
SQL_ATTR_FETCH_BOOKMARK_PTRTDengine 没有 BOOKMARK 机制
SQL_ATTR_IMP_PARAM_DESC
SQL_ATTR_IMP_ROW_DESC
SQL_ATTR_KEYSET_SIZE
SQL_ATTR_PARAM_BIND_OFFSET_PTR
SQL_ATTR_PARAM_OPERATION_PTR
SQL_ATTR_ROW_NUMBER只读属性
SQL_ATTR_ROW_OPERATION_PTR
SQL_ATTR_SIMULATE_CURSOR
  • 不支持的连接属性 (SQLSetConnectAttr)
AttributeNote
SQL_ATTR_AUTO_IPD只读属性
SQL_ATTR_CONNECTION_DEAD只读属性
SQL_ATTR_ENLIST_IN_DTC
SQL_ATTR_PACKET_SIZE
SQL_ATTR_TRACE
SQL_ATTR_TRACEFILE
SQL_ATTR_TRANSLATE_LIB
SQL_ATTR_TRANSLATE_OPTION
  • 允许任何带有 ODBC 库的编程语言与 TDengine 通信:
programming languageODBC-API or bindings/plugins
C/C++ODBC-API
CSharpSystem.Data.Odbc
Erlangodbc module
Goodbc, database/sql
HaskellHDBC, HDBC-odbc
Common Lispplain-odbc
Nodejsodbc
Python3pyodbc
Rustodbc

API 功能分类

本节按功能分类汇总了 ODBC API,关于完整的 ODBC API 参考,请访问 Microsoft Open Database Connectivity (ODBC)。

数据源和驱动程序管理
  • API:ConfigDSN

    • 是否支持:支持(仅 Windows)
    • 标准:ODBC
    • 作用:配置数据源
  • API:ConfigDriver

    • 是否支持:支持(仅 Windows)
    • 标准:ODBC
    • 作用:用于执行与特定驱动程序相关的安装和配置任务
  • API:ConfigTranslator

    • 是否支持:不支持
    • 标准:ODBC
    • 作用:用于解析DSN的配置,在DSN配置和实际数据库驱动程序配置之间进行翻译或转换
连接到数据源
  • API:SQLAllocHandle

    • 是否支持:支持
    • 标准:ISO 92
    • 作用:分配环境、连接、语句或描述符句柄
  • API:SQLConnect

    • 是否支持:支持
    • 标准:ISO 92
    • 作用:通过数据源名称、用户 ID 和密码连接到特定驱动程序
  • API:SQLDriverConnect

    • 是否支持:支持
    • 标准:ODBC
    • 作用:通过连接字符串连接到特定驱动程序,支持更多连接信息
  • API:SQLBrowseConnect

    • 是否支持:不支持
    • 标准:ODBC
    • 作用:用于发现和枚举连接到数据源所需的特性和属性值。每次调用 SQLBrowseConnect 都会返回属性和属性值的连续级别
  • API:SQLAllocEnv

    • 是否支持:不支持
    • 标准:弃用
    • 作用:在 ODBC 3.x 中,ODBC 2.x 函数 SQLAllocEnv 已替换为 SQLAllocHandle
  • API:SQLAllocConnect

    • 是否支持:不支持
    • 标准:弃用
    • 作用:在 ODBC 3.x 中,ODBC 2.x 函数 SQLAllocConnect 已替换为 SQLAllocHandle
获取有关驱动程序和数据源的信息
  • API:SQLDataSources

    • 是否支持:不支持
    • 标准:ISO 92
    • 作用:返回可用数据源的列表,由驱动程序管理器处理
  • API:SQLDrivers

    • 是否支持:不支持
    • 标准:ISO 92
    • 作用:返回由驱动程序管理器处理的已安装驱动程序及其属性的列表
  • API:SQLGetInfo

    • 是否支持:支持
    • 标准:ISO 92
    • 作用:返回有关数据库环境的详细信息,如数据库产品名称、驱动程序名、数据库的SQL语法特性、连接能力等等
  • API:SQLGetFunctions

    • 是否支持:不支持
    • 标准:ISO 92
    • 作用:用于查询驱动程序支持的函数
  • API:SQLGetTypeInfo

    • 是否支持:支持
    • 标准:ISO 92
    • 作用:返回有关支持的数据类型的信息
设置和检索驱动程序属性
  • API:SQLSetConnectAttr

    • 是否支持:支持
    • 标准:ISO 92
    • 作用:设置连接属性,当设置SQL_ATTR_AUTOCOMMIT属性时,用于控制自动提交模式
  • API:SQLGetConnectAttr

    • 是否支持:支持
    • 标准:ISO 92
    • 作用:返回连接属性的值
  • API:SQLSetConnectOption

    • 是否支持:不支持
    • 标准:弃用
    • 作用:在 ODBC 3.x 中,ODBC 2.0 函数 SQLSetConnectOption 已替换为 SQLSetConnectAttr
  • API:SQLGetConnectOption

    • 是否支持:不支持
    • 标准:弃用
    • 作用:在 ODBC 3.x 中,ODBC 2.0 函数 SQLSetConnectOption 已替换为 SQLGetConnectAttr
  • API:SQLSetEnvAttr

    • 是否支持:支持
    • 标准:ISO 92
    • 作用:设置控制环境的属性
  • API:SQLGetEnvAttr

    • 是否支持:支持
    • 标准:ISO 92
    • 作用:返回环境属性的当前设置
  • API:SQLSetStmtAttr

    • 是否支持:支持
    • 标准:ISO 92
    • 作用:设置与语句相关的属性
  • API:SQLGetStmtAttr

    • 是否支持:支持
    • 标准:ISO 92
    • 作用:返回语句属性的当前设置
  • API:SQLSetStmtOption

    • 是否支持:不支持
    • 标准:弃用
    • 作用:在 ODBC 3.x 中,ODBC 2.0 函数 SQLSetStmtOption 已替换为 SQLSetStmtAttr
  • API:SQLGetStmtOption

    • 是否支持:不支持
    • 标准:弃用
    • 作用:在 ODBC 3.x 中,ODBC 2.0 函数 SQLSetStmtOption 已替换为 SQLGetStmtAttr
准备 SQL 请求
  • API:SQLAllocStmt

    • 是否支持:不支持
    • 标准:弃用
    • 作用:在 ODBC 3.x 中,ODBC 2.x 函数 SQLAllocStmt 已替换为 SQLAllocHandle
  • API:SQLPrepare

    • 是否支持:支持
    • 标准:ISO 92
    • 作用:用于预处理SQL语句,这通常是SQLExecute之前的一个步骤
  • API:SQLBindCol

    • 是否支持:支持
    • 标准:ODBC
    • 作用:用于将结果集中的列绑定到应用程序缓冲区
  • API:SQLBindParameter

    • 是否支持:支持
    • 标准:ODBC
    • 作用:用于将SQL语句的参数绑定到应用程序缓冲区
  • API:SQLGetCursorName

    • 是否支持:不支持
    • 标准:ISO 92
    • 作用:返回与指定语句关联的游标名称
  • API:SQLSetCursorName

    • 是否支持:不支持
    • 标准:ISO 92
    • 作用:设置游标名称,允许在查询中使用命名游标
  • API:SQLSetScrollOptions

    • 是否支持:不支持
    • 标准:ODBC
    • 作用:设置控制光标行为的选项
提交请求
  • API:SQLExecute

    • 是否支持:支持
    • 标准:ISO 92
    • 作用:用于执行之前通过 SQLPrepare 准备好的SQL语句
  • API:SQLExecDirect

    • 是否支持:支持
    • 标准:ISO 92
    • 作用:用于执行包含SQL语句的字符串
  • API:SQLNativeSql

    • 是否支持:不支持
    • 标准:ODBC
    • 作用:用于将应用程序提供的SQL语句转换为数据库驱动程序的本机SQL语法
  • API:SQLDescribeParam

    • 是否支持:支持
    • 标准:ODBC
    • 作用:返回语句中特定参数的描述
  • API:SQLNumParams

    • 是否支持:支持
    • 标准:ISO 92
    • 作用:用于查询预编译SQL语句中的参数数量
  • API:SQLParamData

    • 是否支持:不支持
    • 标准:ISO 92
    • 作用:用于从参数数据流中获取下一个参数值
  • API:SQLPutData

    • 是否支持:不支持
    • 标准:ISO 92
    • 作用:当使用流输入方式时,可以用于向输出参数发送数据块
检索结果和关于结果的信息
  • API:SQLRowCount

    • 是否支持:支持
    • 标准:ISO 92
    • 作用:返回受插入或删除请求影响的行数
  • API:SQLNumResultCols

    • 是否支持:支持
    • 标准:ISO 92
    • 作用:返回结果集中的列数
  • API:SQLDescribeCol

    • 是否支持:支持
    • 标准:ISO 92
    • 作用:用于描述结果集中列的属性。它提供了关于列的数据类型、列名、列的最大宽度、小数位数和是否可为空等信息
  • API:SQLColAttribute

    • 是否支持:支持
    • 标准:ISO 92
    • 作用:返回结果集中列的描述符信息,如标题、排序规则等
  • API:SQLColAttributes

    • 是否支持:不支持
    • 标准:弃用
    • 作用:在 ODBC 3.x 中,ODBC 2.0 函数 SQLColAttributes 已替换为 SQLColAttribute
  • API:SQLGetData

    • 是否支持:支持
    • 标准:ODBC
    • 作用:用于从结果集中的当前行获取特定列的数据
  • API:SQLMoreResults

    • 是否支持:支持
    • 标准:ODBC
    • 作用:多个结果集的 SQL 语句执行后(例如:一个批处理或存储过程),移动到下一个结果集
  • API:SQLFetch

    • 是否支持:支持
    • 标准:ISO 92
    • 作用:用于从结果集中提取下一行数据,并返回所有绑定列的数据
  • API:SQLFetchScroll

    • 是否支持:支持
    • 标准:ISO 92
    • 作用:用于从结果集中提取指定的数据行集,并返回所有绑定列的数据
  • API:SQLExtendedFetch

    • 是否支持:不支持
    • 标准:弃用
    • 作用:在 ODBC 3.x 中,SQLExtendedFetch 已替换为 SQLFetchScroll
  • API:SQLSetPos

    • 是否支持:支持
    • 标准:ODBC
    • 作用:设置行集中的游标位置,并允许应用程序更新数据集中的行
  • API:SQLBulkOperations

    • 是否支持:不支持
    • 标准:ODBC
    • 作用:执行批量插入和批量书签操作,包括更新、删除和按书签提取
检索错误或诊断信息
  • API:SQLError

    • 是否支持:不支持
    • 标准:弃用
    • 作用:在 ODBC 3.x 中,ODBC 2.x 函数 SQLError 已替换为 SQLGetDiagRec
  • API:SQLGetDiagField

    • 是否支持:支持
    • 标准:ISO 92
    • 作用:返回附加诊断信息(单条诊断结果)
  • API:SQLGetDiagRec

    • 是否支持:支持
    • 标准:ISO 92
    • 作用:返回附加诊断信息(多条诊断结果)
获取有关数据源的系统表项的信息
  • API:SQLColumnPrivileges

    • 是否支持:不支持
    • 标准:ODBC
    • 作用:用于检索指定表中列的权限信息,如哪些用户或角色拥有对特定列的读取、插入、更新或删除权限
  • API:SQLColumns

    • 是否支持:支持
    • 标准:X/Open
    • 作用:返回指定表中的列名列表
  • API:SQLForeignKeys

    • 是否支持:不支持
    • 标准:ODBC
    • 作用:检索外键关系的详细信息
  • API:SQLPrimaryKeys

    • 是否支持:支持
    • 标准:ODBC
    • 作用:返回构成表主键的列名列表
  • API:SQLSpecialColumns

    • 是否支持:不支持
    • 标准:X/Open
    • 作用:返回数据库中特殊列的信息,如唯一键或索引列
  • API:SQLStatistics

    • 是否支持:不支持
    • 标准:ISO 92
    • 作用:返回关于表的统计信息,如行数、列数、平均行宽等
  • API:SQLTablePrivileges

    • 是否支持:不支持
    • 标准:ODBC
    • 作用:返回用户在特定表上的权限,如SELECT、INSERT、UPDATE等
  • API:SQLTables

    • 是否支持:支持
    • 标准:X/Open
    • 作用:返回存储在数据源的当前数据库中的表信息
  • API:SQLProcedures

    • 是否支持:不支持
    • 标准:ODBC
    • 作用:返回数据库中可用的存储过程信息,包括名称和类型
  • API:SQLProcedureColumns

    • 是否支持:不支持
    • 标准:ODBC
    • 作用:返回存储过程的列信息,包括输入输出参数的详细信息
执行事务
  • API:SQLTransact

    • 是否支持:不支持
    • 标准:弃用
    • 作用:在 ODBC 3.x 中,ODBC 2.x 函数 SQLTransact 已替换为 SQLEndTran
  • API:SQLEndTran

    • 是否支持:支持
    • 标准:ISO 92
    • 作用:用于提交或回滚事务。TDengine 是非事务性的,因此 SQLEndTran 函数最多只能模拟提交或回滚操作。如果有任何未完成的连接或语句,无论是提交(commit)还是回滚(rollback)都不会成功
终止连接
  • API:SQLDisconnect

    • 是否支持:支持
    • 标准:ISO 92
    • 作用:断开数据库连接
  • API:SQLFreeHandle

    • 是否支持:支持
    • 标准:ISO 92
    • 作用:释放与特定环境、连接、语句或描述符句柄关联的资源
  • API:SQLFreeConnect

    • 是否支持:不支持
    • 标准:弃用
    • 作用:在 ODBC 3.x 中,ODBC 2.0 函数 SQLFreeConnect 已替换为 SQLFreeHandle
  • API:SQLFreeEnv

    • 是否支持:不支持
    • 标准:弃用
    • 作用:在 ODBC 3.x 中,ODBC 2.0 函数 SQLFreeEnv 已替换为 SQLFreeHandle
  • API:SQLFreeStmt

    • 是否支持:支持
    • 标准:ODBC
    • 作用:结束语句处理,丢弃挂起的结果,并且可以选择释放与语句句柄关联的所有资源
  • API:SQLCloseCursor

    • 是否支持:支持
    • 标准:ODBC
    • 作用:关闭与当前语句句柄关联的游标,并释放游标所使用的所有资源

访问官网

更多内容欢迎访问 TDengine 官网

相关文章:

TDengine 配置 ODBC 数据源

简介 TDengine ODBC 是为 TDengine 实现的 ODBC 驱动程序,支持 Windows 系统的应用(如 PowerBI 等)以及用户自定义开发的应用程序,通过 ODBC 标准接口访问本地、远程和云服务的 TDengine 数据库。 TDengine ODBC 提供基于 WebSo…...

numpy常用函数详解

在深度神经网络代码中经常用到numpy库的一些函数,很多看过之后很容易忘记,本文对经常使用的函数进行归纳总结。 np.arange arange是numpy一个常用的函数,该函数主要用于创建等差数列。它的使用方法如下所示: numpy.arange([star…...

deepseek 3FS编译

3FS在ubuntu22.04下的编译(记录下编译过程,方便后续使用) 环境信息 OS ubuntu 22.04内核版本 6.8.0-52-genericlibfuse 3.16.1rust 1.75.0FoundationDB 7.1.66meson 1.0.0ninja 1.10.1 libfuse编译 以下建议均在root下执行 pip3 install…...

【CXX】6.2 str — rust::Str

Rust::Str 公共 API // rust/cxx.hclass Str final { public:Str() noexcept;Str(const Str &) noexcept;Str(const String &) noexcept;// 如果输入不是 UTF-8,抛出 std::invalid_argument 异常。Str(const std::string &);Str(const char *);Str(con…...

制作三维软件学习路线

制作三维软件是一项复杂而富有挑战性的任务,涉及多个领域的知识。下面是一个建议的学习路线,涵盖从基础到高级的知识和技能。你可以根据自己的背景和兴趣进行调整。 ### 1. 编程基础 - **学习编程语言**:C或Python是常用的语言,了…...

【RabbitMQ】事务

事务的简单配置及使用 配置事务管理器声明队列生产者代码测试 RabbitMQ是基于AMQP协议实现的,该协议实现了事务机制,因此RabbitMQ也支持事务机制. SpringAMQP也提供了对事务相关的操作.RabbitMQ事务允许开发者确保消息的发送和接收是原子性的&#xff0c…...

常见的交换机端口类型

在计算机网络中,Access端口 和 Trunk端口 是两种常见的交换机端口类型,主要用于VLAN(虚拟局域网)的配置。它们的主要区别在于如何处理VLAN标签和数据帧。 1. Access端口 Access端口通常用于连接终端设备(如PC、打印机…...

Linux Shell 脚本编程极简入门指南

一、学习前提准备 ✅ 环境要求: Linux系统(Ubuntu/CentOS等)或 WSL (Windows用户) 任意文本编辑器(推荐VSCode/Vim) 基础命令行操作能力 🔍 验证环境: # 查看系统默认Shell echo $SHELL #…...

【医院管理会计专题】7.解锁本量利分析:医院医疗服务决策的智慧密码

医院成本核算、绩效管理、运营统计、内部控制、管理会计专题索引 一、引言 在当今医疗行业竞争日益激烈的背景下,医院管理面临着诸多挑战,如何实现高效运营、提升服务质量并控制成本成为关键问题。管理会计作为一种重要的管理工具,在医院管理中发挥着越来越重要的作用。本…...

Kotlin和Java区别

哈哈哈,前段时间,面试的时候,突然问到我Kotlin和Java的区别,一下子把我问懵逼了,确实没遇到问这个的,想了下,说了下Kotlin的编译时空检查机制,代码更简洁,很多封装好的AP…...

Taro 面试题

基础概念 1. Taro 是什么?它的核心特点有哪些? Taro 是京东开源的 多端统一开发框架,基于 React 语法,可编译到 微信小程序、H5、React Native 等多个端。 核心特点: 多端适配:一套代码运行多个端支持 …...

Java部署在window启动报unable tocreate tempdir

在Windows系统中,Java应用在运行时会试图在默认的临时目录中创建文件。该临时目录通常由系统环境变量TEMP或TMP指定。如果这些变量设置不正确、指向一个无效的路径,或者操作系统的权限不足,就会导致“Unable to create tempdir”错误。 解决…...

基于deepseek和开放题库,构建专业大模型微调在线答题系统

为什么要进行大模型微调 大模型微调是将预训练模型适配到特定任务或领域的关键技术,正常情况下大模型通过海量通用数据训练获得广泛知识,但其参数和表征空间面向通用场景,难以直接适配垂直领域或复杂任务。例如在通用医疗问答模型在具体病症诊…...

ios 小组件和数据共享

创建主工程就不必讲了 1 创建小组件 创建子工程 [new Target ] 选择 [ Widger Extension] 小组件入口是WidgetBundle文件,可以进行多个小组件的调试 TestWidget2文件是主要操作,小组件使用swiftUI布局,使用 AppIntent进行事件处理&#xff…...

LVTTL(Low Voltage Transistor-Transistor Logic)电平详解

一、LVTTL电平的定义与核心特性 LVTTL(低压晶体管-晶体管逻辑)是传统TTL(5V)的低电压版本,工作电压通常为3.3V,旨在降低功耗并适配现代低电压集成电路,同时保持与TTL的逻辑兼容性。其核心特点如…...

element tree树形结构默认展开全部

背景: el-tree树形结构,默认展开全部,使用属性default-expand-all【是否默认展开所有节点】;默认展开一级,设置default-expanded-keys【默认展开的节点的 key 的数组】属性值为数组。 因为我这里的数据第一级是四川【省…...

统计登录系统10秒内连续登录失败超过3次的用户

为防止暴力破解用户账号的行为,在输入账号和密码时一般都会限制用户尝试密码输出错误的次数,如果用户多次输错密码后,将在一段时间内锁定账号,常见的有银行类APP、个税App等应用,如下是用户账号密码输入错误的提示图&a…...

音视频软件工程师面试题

一、基础知识 编解码相关 H.264 和 H.265(HEVC)的主要区别是什么?视频编解码的基本流程是什么?关键技术有哪些?音频编解码(如 AAC、MP3、Opus)的区别和应用场景?什么是 B 帧、P 帧、I 帧?它们的作用是什么? 流媒体协议RTMP、HTTP-FLV、HLS、WebRTC 的区别和应用场景…...

架构师面试(十四):注册中心设计

问题 大家或多或少都接触过【注册中心】,对注册中心的基本功能,如:服务注册、服务发现、健康检查和变更通知 ,肯定是耳熟能详的;那么大家对注册中心的架构设计是否了解呢? 如果让你负责设计一个分布式的注…...

ctf-web: php原生类利用 -- GHCTF Popppppp

源代码 <?php error_reporting(0); class CherryBlossom { public $fruit1; public $fruit2; public function __construct($a) {$this->fruit1 $a; } function __destruct() { echo $this->fruit1; } public function __toString() { $newFunc …...

C++_核心编程_多态案例二-制作饮品

#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为&#xff1a;煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例&#xff0c;提供抽象制作饮品基类&#xff0c;提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...

SciencePlots——绘制论文中的图片

文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了&#xff1a;一行…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

visual studio 2022更改主题为深色

visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中&#xff0c;选择 环境 -> 常规 &#xff0c;将其中的颜色主题改成深色 点击确定&#xff0c;更改完成...

使用分级同态加密防御梯度泄漏

抽象 联邦学习 &#xff08;FL&#xff09; 支持跨分布式客户端进行协作模型训练&#xff0c;而无需共享原始数据&#xff0c;这使其成为在互联和自动驾驶汽车 &#xff08;CAV&#xff09; 等领域保护隐私的机器学习的一种很有前途的方法。然而&#xff0c;最近的研究表明&…...

dedecms 织梦自定义表单留言增加ajax验证码功能

增加ajax功能模块&#xff0c;用户不点击提交按钮&#xff0c;只要输入框失去焦点&#xff0c;就会提前提示验证码是否正确。 一&#xff0c;模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命

在华东塑料包装行业面临限塑令深度调整的背景下&#xff0c;江苏艾立泰以一场跨国资源接力的创新实践&#xff0c;重新定义了绿色供应链的边界。 跨国回收网络&#xff1a;废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点&#xff0c;将海外废弃包装箱通过标准…...

《通信之道——从微积分到 5G》读书总结

第1章 绪 论 1.1 这是一本什么样的书 通信技术&#xff0c;说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号&#xff08;调制&#xff09; 把信息从信号中抽取出来&am…...

P3 QT项目----记事本(3.8)

3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)

设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile&#xff0c;新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...