1.No suitable driver found for jdbc:microsoft:sqlserver://localhost:1433
2.unixodbc-使用Log4cxx日志输出至MySQL,源码无法找到驱动错误
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,源码c点餐系统源码以及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”。
针对问题,源码微龙指标源码首先检查Eclipse环境变量设置,源码添加了`ODBCSYSINI`、源码`ODBCINSTINI`和`ODBCINI`变量,源码但问题仍然存在。源码怀疑配置文件可能存在问题,玩物得志源码资本但没有找到官方推荐的配置方法。配置文件包括`/etc/odbcinst.ini`和`/etc/odbc.ini`,分别设置了数据库描述、驱动、数据源等信息。交易猫系统源码接着,查看`log4cxx.xml`配置文件,检查ODBC连接参数。
深入分析log4cxx源码,发现用于数据库记录的银联返回源码日志Appender采用的是`ODBCAppender`,在`src/main/cpp/odbcappender.cpp`中,原始代码使用了`SQLxxxW()`进行数据库连接和操作,这是为了使用Unicode编码方式。尽管在`odbcinst.ini`中配置的驱动`libmyodbc5w.so`确实支持Unicode方式,问题在于代码仍然采用了宽字节操作方式。修改为`SQLxxx()`调用形式,并将`SQLWCHAR`替换为`SQLCHAR`,成功解决了找不到数据源的问题。然而,这样做引入了中文显示的问题。
在排查过程中,发现加入预处理器定义`#define SQL_WCHART_CONVERT`,可以解决编译时的问题。进一步分析源码,确认作者在特定条件下选择使用Unicode编码方式是合理的。至此,问题解决,但中文显示问题仍需进一步处理。