我现在正在做导出数据的功能,用的是sql server数据库
想把数据导出成mdb格式,就是access数据库
在生成列字段的时候,普通字符串都是用的field.setSQLType(Types.VARCHAR);
问题就在这了,我在sql server里有text类型的列,用Types.VARCHAR存放不下了
我试了用别的都不行啊,有的运行错误,我用Types.LONGVARCHAR还出了运行环境错误
不知道有没有人遇到过这样的情况
希望有人帮我解决一下这个问题 急啊!
先谢谢各位高手了!
想把数据导出成mdb格式,就是access数据库
在生成列字段的时候,普通字符串都是用的field.setSQLType(Types.VARCHAR);
问题就在这了,我在sql server里有text类型的列,用Types.VARCHAR存放不下了
我试了用别的都不行啊,有的运行错误,我用Types.LONGVARCHAR还出了运行环境错误
不知道有没有人遇到过这样的情况
希望有人帮我解决一下这个问题 急啊!
先谢谢各位高手了!
解决方案 »
- 当form设置为enctype="multipart/form-data",获取数据乱码
- AOP实现日志
- 学了5个月的JVAV了马上就要去面试了,紧张!
- javabean 和 servlet有什么区别?
- 关于内部类的一点小问题,请指点!!!!
- 请问:地址栏的域名变成IP了,如何解决?
- NullPointerException几天都没解决的问题
- 请问一般struts&hibernate合作的时候把strtus中的actionform&hibernate的映射类写一个就行了吗?
- 请教各位大侠哪里有关于spring,hiberante方面的资料下载,小弟想学习学习,谢谢啦!!
- 哪位大哥知道JBUILD7的教程下载啊?小弟先谢过了
- 谁来拯救我
- hibernate如何把新写的实体映射到表?
你是怎么解决的啊
还有用Types.CLOB就会出现这个错误
java.sql.SQLException: Unsupported SQL type: 2005
at com.healthetscience.jackcess.DataType.fromSQLType(DataType.java:248)
at com.healthetscience.jackcess.Column.setSQLType(Column.java:195)
at hz.infos.action.nirmcaction.PnlExportAction.createMdb(PnlExportAction.java:575)
at hz.infos.action.nirmcaction.PnlExportAction.access$200(PnlExportAction.java:56)
at hz.infos.action.nirmcaction.PnlExportAction$3.run(PnlExportAction.java:350)能说的具体点吗 谢谢啊
SQL Server 可以用text类型。
Memo类型了。
我说的是要导出成mdb格式的 就是导出成access
就是这段代码 你看看是哪的错误
Vector fields = new Vector();
Column field = new Column();
field.setName("备注");
field.setSQLType(Types.VARCHAR);
fields.addElement(field);
db.createTable(fileName, fields);
就是field.setSQLType(Types.VARCHAR)这里,这个用的是普通的字符串
就像sql server里的text那样的类型 我这里应该怎么设置呢
不知道你这回明白我的意思没
这个我也用过了 不过出了个这样的问题
运行环境错误 直接退出程序了
#
# A fatal error has been detected by the Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x05eee4d4, pid=800, tid=3744
#
# JRE version: 6.0_14-b08
# Java VM: Java HotSpot(TM) Client VM (14.0-b16 mixed mode, sharing windows-x86 )
# Problematic frame:
# C [msjet40.dll+0xe4d4]
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#这是什么原因呢?
如果是ntext类型,就要用LONGNVARCHAR。不过,不可以调用update<LONGVARCHAR>,update<LONGNVARCHAR> 和updateObject<int,LONGVARCHAR>,updateObject<int,LONGNVARCHAR> 方法,
你可以检查一下有没有这种情况。
//连接access
Database db = Database.create(new File(filePath));
//所有字段名
Vector fields = new Vector();
//列
Column field = new Column();
//设置列名
field.setName('备注');
//设置列类型
field.setSQLType(Types.LONGVARCHAR);
//添加到列向量
fields.addElement(field);
//创建表
db.createTable(fileName, fields);
//获取表名
Table newTable = db.getTable(fileName);
String tableName = newTable.getName();
//连接
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection("jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=" + filePath);
Statement statement = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
//组成insert语句
String sql = "";
//执行语句
statement.executeUpdate(insertSql);这段就是我导出access的主要代码,是我的方法有问题吗?
Statement statement = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
换成
Statement statement = con.createStatement();
不行啊,还是运行环境出错直接退出了
#
# A fatal error has been detected by the Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x05f8e4d4, pid=1584, tid=2872
#
# JRE version: 6.0_14-b08
# Java VM: Java HotSpot(TM) Client VM (14.0-b16 mixed mode, sharing windows-x86 )
# Problematic frame:
# C [msjet40.dll+0xe4d4]
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
唉 我要崩溃了