【fuliget网站源码】【kingdomrush 源码】【透视 源码】myodbc 源码

时间:2024-11-26 12:18:30 来源:obd接口源码 分类:知识

1.No suitable driver found for jdbc:microsoft:sqlserver://localhost:1433
2.unixodbc-使用Log4cxx日志输出至MySQL,源码无法找到驱动错误

myodbc 源码

No suitable driver found for jdbc:microsoft:sqlserver://localhost:1433

       Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //加载驱动程序

       æ¥¼ä¸»SQL Server JDBC 数据库却用了ODBC 的驱动程序错了.

       åº”该是 com.micorosoft.jdbc.sqlserver.SQLServerDriver

       ç¥æ¥¼ä¸»æ—©æ—¥æˆåŠŸ!

unixodbc-使用Log4cxx日志输出至MySQL,无法找到驱动错误

       在使用log4cxx日志框架将日志内容输出至MySQL数据库过程中,遇到了无法找到驱动的源码问题。首先,源码确保运行环境为Ubuntu . bit和Eclipse CDT,源码fuliget网站源码以及log4cxx版本为apache-log4cxx-0..0。源码通过添加配置选项`./configure --with-ODBC=unixODBC`完成编译,源码随后配置unixODBC驱动和数据源。源码使用命令`isql log4cxx`能够成功建立连接,源码然而在使用log4cxx进行日志输出时,源码却始终收到错误提示“log4cxx: Failed to connect to database. - [unixODBC][Driver Manager]Data source name not found,源码 and no default driver specified”。

       针对问题,源码kingdomrush 源码首先检查Eclipse环境变量设置,源码添加了`ODBCSYSINI`、源码`ODBCINSTINI`和`ODBCINI`变量,源码但问题仍然存在。源码怀疑配置文件可能存在问题,透视 源码但没有找到官方推荐的配置方法。配置文件包括`/etc/odbcinst.ini`和`/etc/odbc.ini`,分别设置了数据库描述、驱动、数据源等信息。OSI 源码接着,查看`log4cxx.xml`配置文件,检查ODBC连接参数。

       深入分析log4cxx源码,发现用于数据库记录的springboo源码日志Appender采用的是`ODBCAppender`,在`src/main/cpp/odbcappender.cpp`中,原始代码使用了`SQLxxxW()`进行数据库连接和操作,这是为了使用Unicode编码方式。尽管在`odbcinst.ini`中配置的驱动`libmyodbc5w.so`确实支持Unicode方式,问题在于代码仍然采用了宽字节操作方式。修改为`SQLxxx()`调用形式,并将`SQLWCHAR`替换为`SQLCHAR`,成功解决了找不到数据源的问题。然而,这样做引入了中文显示的问题。

       在排查过程中,发现加入预处理器定义`#define SQL_WCHART_CONVERT`,可以解决编译时的问题。进一步分析源码,确认作者在特定条件下选择使用Unicode编码方式是合理的。至此,问题解决,但中文显示问题仍需进一步处理。