问题一:[Microsoft][ODBC 驱动程序管理器] 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配
一看到这个dns,就知道跟ODBC数据源有关系。但是我这里安装了Access驱动,配置了ODBC数据源,为什么还报错呢?就这问题,折腾了好几台机器,最后得出的结果就是:
1、先查看操作系统位数,然后根据位数和本地Access版本安装Access驱动;
2、然后以“管理员身份运行”C:\Windows\SysWOW64\odbcad32.exe(一定要用这种方式去看,要是没有odbcad32.exe文件,就换别的方式吧),在弹出的“ODBC数据源管理器”框中切换到“系统驱动”选项卡,在里面找“Microsoft Access Driver”,看看里面有的驱动到底是只支持mdb,还是既支持mdb有支持accdb,要是只有“Microsoft Access Driver(*.mdb)”,那咱们还是把Access数据库建成mdb结尾的然后用mdb数据库来创建ODBC数据源,即便是accdb的也先转成mdb的再配置成数据源。要是有“Microsoft Access Driver(*.mdb,*.accdb)”,那Access数据库就没有要求了,选驱动的时候选这个,数据库哪个都行。
这样子之后,ODBC数据源的配置基本上是没有问题了。
问题二:执行insertSQL时报错:Driver does not support this function
执行代码是这样子的:
stmt = getConnect(db).prepareStatement(sql);
rs = stmt.executeUpdate(sql);//执行SQL
其中的sql是insert SQL语句,单独拿出来可以执行,没有问题。但是一用上面的代码执行就报错。
估计眼尖的人已经看出问题来了,是这个代码有问题。
第一行代码中已经将sql放到prepareStatement里面去了,后面执行的时候又放一遍,自然要报错了,所以只需要改成:
stmt = getConnect(db).prepareStatement(sql);
rs = stmt.executeUpdate();//执行SQL
也就是去掉executeUpdate中的sql就OK啦。
问题三:[Microsoft][ODBC Microsoft Access Driver] 无效的括号名称 '[1476.1950000000002]'。
这个问题是在insert数据的时候发生的,写的SQL很简单:
insert into table1(field2,field3,field4) values("1","2","3");
看到SQL并熟悉Access的人应该就知道问题所在了,Access里面的insert语句只能用单引号不能用双引号,但我这个外行不了解这个规则,所以就出现上面的问题了。所以变成单引号就OK了。
insert into table1(field2,field3,field4) values(‘1’,‘2’,‘3’);
问题四:java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序
异常如下:
java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6957) at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7114) at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(JdbcOdbc.java:3073) at sun.jdbc.odbc.JdbcOdbcConnection.initialize(JdbcOdbcConnection.java:323) at sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:174) at java.sql.DriverManager.getConnection(DriverManager.java:582) at java.sql.DriverManager.getConnection(DriverManager.java:154) at com.tsp.connection.DBConnection.<init>(DBConnection.java:25) at com.tsp.connection.DBConnection.main(DBConnection.java:87)
这个问题是在使用java驱动链接Access时触发的,链接代码如下:
static String dbPath =new File("").getAbsolutePath()+File.separator+"database"+File.separator+"reckon.accdb"; //直接用驱动连接Access数据库 String conn="jdbc:odbc:driver={Microsoft Access Driver(*.mdb,*.accdb)};DBQ="; /** * 该方法用来连接数据库 * @param db: * 当使用ODBC数据源的方式连接Access时,db为数据源名称 * 当使用驱动连接Access时,db为数据库所在目录(目前用的是驱动连接) * */ private DBConnection(){ try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//注册驱动 //Access中的数据库默认编码为GBK,本地项目为UTF-8,若不转码会出现乱码 Properties p = new Properties(); p.put("charSet", "GBK"); connect = DriverManager.getConnection(conn+dbPath,p); }catch(Exception e){ e.printStackTrace(); } }
上面的代码看起来没有任何问题,但是一执行一定报错,因为问题所在很隐晦,解决方法如下:
(以上图片的内容来自:http://bbs.csdn.net/topics/370210823)
因此,只需要改掉连接字符串就OK啦,改成:
String conn="jdbc:odbc:driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=";
也就是在Driver与(之间添加空格,*.mdb,与*.accdb之间添加一个空格即可。
相关推荐
在编程过程中,尤其是在使用数据库应用程序如Access 2000时,可能会遇到各种问题,比如内存不足的情况。Access 2000是一个基于关系型数据库管理系统,它允许开发者创建数据库应用,包括用户界面(UI)和后端逻辑。在...
本文档针对用户在使用过程中遇到的一些常见问题进行了汇总,并给出了详细的解答。 #### 二、常见问题解答 ##### 1. S7-200 PC Access SMART 是否可以与 S7-300、S7-400 使用? **答案:** 不可以。PC Access ...
标题中的“PC Access SMART 通讯常见问题”是指在使用PC Access SMART软件进行设备通信时遇到的一些典型问题。PC Access SMART通常是一款用于与自动化设备、PLC(可编程逻辑控制器)或其他智能设备进行数据交换的...
Access Violation 指的是程序试图访问未被指定使用的存储区时所发生的错误。这类错误可能会导致操作系统崩溃或关闭,需要重新启动计算机。 解决 Delphi Access Violations 问题的关键在于了解 Access Violation 的...
标题提到的“64位系统调用32位Access运行时”涉及到的问题,主要是当一个64位的操作系统尝试运行32位版本的Microsoft Access时所遇到的兼容性问题。 Microsoft Access是一款流行的数据库管理软件,它包含一个运行时...
但是,在使用 MySQL 过程中,可能会遇到各种问题,例如连接问题、访问问题等。其中,1045 Access Denied 是一个常见的问题,本文将详细介绍 MySQL 连接 1045 Access 问题的解决方案。 问题描述 在使用 MySQL 时,...
然而,在使用Rancher时,可能会遇到拉取镜像出现unauthorized to access repository问题。这种问题通常是由于Docker私服认证问题引起的。在本文中,我们将详细介绍该问题的解决方案。 首先,让我们来了解问题的根源...
这款特殊器可能是为了帮助用户解决在使用Access时遇到的一些特定问题,比如数据清理、性能提升、查询优化或报表生成等。 Access数据库的核心组件包括表、查询、窗体、报表、宏和模块。表是存储数据的基础,查询则...
在描述中提到的问题,可能是因为Navicat——一个流行的数据库管理工具,在尝试连接到Access数据库时遇到了兼容性问题。 Navicata是一款强大的数据库管理和开发工具,支持多种数据库管理系统,包括MySQL、Oracle、...
然而,尽管"Access_JDBC30.jar"提供了诸多改进,但使用时也需要注意以下几点: 1. **兼容性检查**:在部署此驱动前,务必确认其与当前系统环境、JDK版本及Access数据库版本的兼容性,以避免潜在的问题。 2. **安全...
这很重要,因为某些工业软件可能在新的操作系统版本中遇到兼容性问题,而这个描述明确表示用户可以在Win7环境下安心使用这款软件。 【标签解析】 "软件/插件 西门子s7工控opc" 这个标签揭示了PC Access的两个关键...
### IIS问题总汇与WEBACCESS配置解决方案 #### 一、引言 在配置IIS(Internet Information Services)过程中,用户经常会遇到各种各样的问题。本文将针对这些常见问题进行详细的解析,并提供相应的解决方法,旨在...
在安装这个驱动程序之前,可能遇到的问题通常是Access无法正常连接到外部数据源,或者是配置ODBC(Open Database Connectivity)数据源时遇到问题。ODBC是一种标准的应用程序编程接口(API),允许应用程序通过统一...
当用户遇到WPS(金山办公软件)无法链接到外部数据的问题时,通常是因为缺少了必要的数据访问组件。WPS虽然功能强大,但并不自带数据库引擎,因此需要依赖外部安装的数据库引擎来读取和操作数据库文件。Access 2010...
"AccessDatabaseEngine2007.rar" 指向的是微软发布的 Microsoft Access 2007 数据库引擎可再发行程序包,主要用于解决在非安装 Access 的计算机上运行使用 "Microsoft.ACE.OLEDB.12.0" 提供程序的程序时遇到的问题。...
在实际操作中,如果你遇到大量表需要生成DDL语句,可以考虑使用第三方工具,如SQL Power Architect或DBComparer等,它们能批量生成并导出Access数据库的DDL,节省大量手动工作。 总的来说,掌握如何从Access数据库...
然而,当使用FME尝试读取accdb格式的Access数据库时,可能会遇到无法识别的问题。这是由于FME在默认情况下可能不支持直接连接到这种格式,需要特定的驱动程序来建立连接。 解决方案在于安装Microsoft Access ...
总的来说,Access数据库的维护和恢复是一项重要任务,FileRepair for Access提供了一种便捷的解决方案,帮助用户在遇到文件损坏问题时挽回损失,保障数据的完整性。对于那些依赖Access管理关键业务信息的组织和个人...
在互联网开发过程中,跨域(Cross-Origin)是一个常见的问题,特别是在进行本地开发或者API测试时。跨域限制是浏览器为了安全而实施的一项策略,防止恶意网站通过JavaScript获取其他网站的数据。然而,这在某些场景...
当遇到Access文件无法打开的问题时,可能是由于多种原因,如文件损坏、病毒感染、不正确的关闭方式或是软件冲突等。在这种情况下,"ACCESS文件mdb修复工具"便能发挥关键作用。 该修复工具专门针对mdb文件设计,旨在...