`
阅读更多

问题一:[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之间添加一个空格即可。

  • 大小: 169.4 KB
分享到:
评论

相关推荐

    写程序时遇到问题,请大家多提解决方案access2000

    在编程过程中,尤其是在使用数据库应用程序如Access 2000时,可能会遇到各种问题,比如内存不足的情况。Access 2000是一个基于关系型数据库管理系统,它允许开发者创建数据库应用,包括用户界面(UI)和后端逻辑。在...

    S7-200 SMART OPC服务端软件PC ACCESS SMART问题汇总

    本文档针对用户在使用过程中遇到的一些常见问题进行了汇总,并给出了详细的解答。 #### 二、常见问题解答 ##### 1. S7-200 PC Access SMART 是否可以与 S7-300、S7-400 使用? **答案:** 不可以。PC Access ...

    PC Access SMART 通讯常见问题

    标题中的“PC Access SMART 通讯常见问题”是指在使用PC Access SMART软件进行设备通信时遇到的一些典型问题。PC Access SMART通常是一款用于与自动化设备、PLC(可编程逻辑控制器)或其他智能设备进行数据交换的...

    Delphi Access violations 问题的解决之道

    Access Violation 指的是程序试图访问未被指定使用的存储区时所发生的错误。这类错误可能会导致操作系统崩溃或关闭,需要重新启动计算机。 解决 Delphi Access Violations 问题的关键在于了解 Access Violation 的...

    64位系统调用32位Access 运行时

    标题提到的“64位系统调用32位Access运行时”涉及到的问题,主要是当一个64位的操作系统尝试运行32位版本的Microsoft Access时所遇到的兼容性问题。 Microsoft Access是一款流行的数据库管理软件,它包含一个运行时...

    mysql连接1045 access问题

    但是,在使用 MySQL 过程中,可能会遇到各种问题,例如连接问题、访问问题等。其中,1045 Access Denied 是一个常见的问题,本文将详细介绍 MySQL 连接 1045 Access 问题的解决方案。 问题描述 在使用 MySQL 时,...

    Rancher下Docker拉取镜像出现unauthorized to access repository问题.docx

    然而,在使用Rancher时,可能会遇到拉取镜像出现unauthorized to access repository问题。这种问题通常是由于Docker私服认证问题引起的。在本文中,我们将详细介绍该问题的解决方案。 首先,让我们来了解问题的根源...

    Access数据库特殊器.zip

    这款特殊器可能是为了帮助用户解决在使用Access时遇到的一些特定问题,比如数据清理、性能提升、查询优化或报表生成等。 Access数据库的核心组件包括表、查询、窗体、报表、宏和模块。表是存储数据的基础,查询则...

    Access数据库访问引擎64位.rar

    在描述中提到的问题,可能是因为Navicat——一个流行的数据库管理工具,在尝试连接到Access数据库时遇到了兼容性问题。 Navicata是一款强大的数据库管理和开发工具,支持多种数据库管理系统,包括MySQL、Oracle、...

    Access_JDBC30.jar

    然而,尽管"Access_JDBC30.jar"提供了诸多改进,但使用时也需要注意以下几点: 1. **兼容性检查**:在部署此驱动前,务必确认其与当前系统环境、JDK版本及Access数据库版本的兼容性,以避免潜在的问题。 2. **安全...

    V1.0 PC Access SP6 完整安装包 解决出现错误问题 支持win7

    这很重要,因为某些工业软件可能在新的操作系统版本中遇到兼容性问题,而这个描述明确表示用户可以在Win7环境下安心使用这款软件。 【标签解析】 "软件/插件 西门子s7工控opc" 这个标签揭示了PC Access的两个关键...

    IIS问题总汇,WEBACCESS配置时的解决方案

    ### IIS问题总汇与WEBACCESS配置解决方案 #### 一、引言 在配置IIS(Internet Information Services)过程中,用户经常会遇到各种各样的问题。本文将针对这些常见问题进行详细的解析,并提供相应的解决方法,旨在...

    access64位驱动程序安装包

    在安装这个驱动程序之前,可能遇到的问题通常是Access无法正常连接到外部数据源,或者是配置ODBC(Open Database Connectivity)数据源时遇到问题。ODBC是一种标准的应用程序编程接口(API),允许应用程序通过统一...

    Access 2010数据库引擎

    当用户遇到WPS(金山办公软件)无法链接到外部数据的问题时,通常是因为缺少了必要的数据访问组件。WPS虽然功能强大,但并不自带数据库引擎,因此需要依赖外部安装的数据库引擎来读取和操作数据库文件。Access 2010...

    从Access数据库建立DDL语句

    在实际操作中,如果你遇到大量表需要生成DDL语句,可以考虑使用第三方工具,如SQL Power Architect或DBComparer等,它们能批量生成并导出Access数据库的DDL,节省大量手动工作。 总的来说,掌握如何从Access数据库...

    AccessDatabaseEngine2007.rar

    "AccessDatabaseEngine2007.rar" 指向的是微软发布的 Microsoft Access 2007 数据库引擎可再发行程序包,主要用于解决在非安装 Access 的计算机上运行使用 "Microsoft.ACE.OLEDB.12.0" 提供程序的程序时遇到的问题。...

    FME的 Access 数据库读写 引擎

    然而,当使用FME尝试读取accdb格式的Access数据库时,可能会遇到无法识别的问题。这是由于FME在默认情况下可能不支持直接连接到这种格式,需要特定的驱动程序来建立连接。 解决方案在于安装Microsoft Access ...

    ACCESS修复器FileRepair for Access未知

    总的来说,Access数据库的维护和恢复是一项重要任务,FileRepair for Access提供了一种便捷的解决方案,帮助用户在遇到文件损坏问题时挽回损失,保障数据的完整性。对于那些依赖Access管理关键业务信息的组织和个人...

    allow-cors-access-control插件,解决跨域问题,内含使用教程

    在互联网开发过程中,跨域(Cross-Origin)是一个常见的问题,特别是在进行本地开发或者API测试时。跨域限制是浏览器为了安全而实施的一项策略,防止恶意网站通过JavaScript获取其他网站的数据。然而,这在某些场景...

    ACCESS文件mdb修复工具

    当遇到Access文件无法打开的问题时,可能是由于多种原因,如文件损坏、病毒感染、不正确的关闭方式或是软件冲突等。在这种情况下,"ACCESS文件mdb修复工具"便能发挥关键作用。 该修复工具专门针对mdb文件设计,旨在...

Global site tag (gtag.js) - Google Analytics