-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 1 post ] 
Author Message
 Post subject: [ODBC MS Access Driver]optional function not implement
PostPosted: Fri Dec 18, 2009 11:03 pm 
Newbie

Joined: Mon Feb 18, 2008 10:44 am
Posts: 10
I use MS Access Database2007,my database is follows:
Code:
id      Text (key)
userid  Text
passwd  Text


xml file is follows:
Code:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
    Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
   <class name="Login.Dao.LoginDao" table="USERINFO">
      <id name="id" column="id">   
         <generator class="assigned"/>
      </id>
      <property name="userid" type="java.lang.String">
         <column name="USERID" length="20" not-null="true" />
      </property>
      <property name="passwd" type="java.lang.String">
         <column name="PASSWD" length="188" not-null="true" />
      </property>
   </class>
</hibernate-mapping>


java code is follows:
Code:
package org.hibernate.dialect;

import java.sql.Types;
import org.hibernate.cfg.Environment;
import org.hibernate.dialect.Dialect;

public class MSAccessDialect extends Dialect{
   public MSAccessDialect(){
      super();
      registerColumnType( Types.BIT, "BIT" );
      registerColumnType( Types.BIGINT, "INTEGER" );
      registerColumnType( Types.SMALLINT, "SMALLINT" );
      registerColumnType( Types.TINYINT, "BYTE" );
      registerColumnType( Types.INTEGER, "INTEGER" );
      registerColumnType( Types.CHAR, "VARCHAR(1)" );
      registerColumnType( Types.VARCHAR, "VARCHAR($l)" );
      registerColumnType( Types.FLOAT, "DOUBLE" );
      registerColumnType( Types.DOUBLE, "DOUBLE" );
      registerColumnType( Types.DATE, "DATETIME" );
      registerColumnType( Types.TIME, "DATETIME" );
      registerColumnType( Types.TIMESTAMP, "DATETIME" );
      registerColumnType( Types.VARBINARY, "VARBINARY($l)" );
      registerColumnType( Types.NUMERIC, "NUMERIC" );

      getDefaultProperties().setProperty(Environment.STATEMENT_BATCH_SIZE, "0");
   }

   public String getIdentityColumnString(){
      //return " counter ";
      return "not null auto_number";
   }
     
   public String getIdentitySelectString(){
      return "select @@IDENTITY";
   }
     
   /**
    * Returns for update syntax for access, which is non-existant, so I *think*
    * we return an empty string...
    * @return String an beautifully constructed empty string...
    */
   public String getForUpdateString(){
      return "";
   }
}


Code:
public class LoginDao extends HibernateDaoSupport{
   private String id;
   private String userid;
   private String passwd;   
   public boolean check(String userid,String passwd) throws DataAccessException,SQLException{
      String[] login=new String[2];
      login[0]=userid;
      login[1]=passwd;
      this.getHibernateTemplate().find("from Login.Dao.LoginDao where userid=? and passwd=?",login);      
   }   
   public void setId(String id){
      this.id=id;
   }   
   public String getId(){
      return id;
   }   
   public void setUserid(String userid){
      this.userid=userid;
   }   
   public String getUserid(){
      return userid;
   }   
   public void setPasswd(String passwd){
      this.passwd=passwd;
   }   
   public String getPasswd(){
      return passwd;
   }
}


when I execute above code,it raise following error:
Code:
29063 [http-5168-1] WARN org.hibernate.jdbc.AbstractBatcher - exception clearing
maxRows/queryTimeout
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver]optional function not implement
        at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6957)
        at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7114)
        at sun.jdbc.odbc.JdbcOdbc.SQLGetStmtOption(JdbcOdbc.java:4416)
        at sun.jdbc.odbc.JdbcOdbcStatement.getStmtOption(JdbcOdbcStatement.java:1208)
        at sun.jdbc.odbc.JdbcOdbcStatement.getQueryTimeout(JdbcOdbcStatement.java:697)
        at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.getQueryTimeout(NewProxyPreparedStatement.java:1278)
        at org.hibernate.jdbc.AbstractBatcher.closeQueryStatement(AbstractBatcher.java:299)
        at org.hibernate.jdbc.AbstractBatcher.closeQueryStatement(AbstractBatcher.java:234)
        at org.hibernate.loader.Loader.doQuery(Loader.java:749)
        at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:259)
        at org.hibernate.loader.Loader.doList(Loader.java:2228)
        at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2125)
        at org.hibernate.loader.Loader.list(Loader.java:2120)
        at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:401)
        at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:361)
        at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196)
        at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1148)
        at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102)
        at org.springframework.orm.hibernate3.HibernateTemplate$30.doInHibernate(HibernateTemplate.java:926)
        at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:419)
        at org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374)
        at org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:917)
        at Login.Dao.LoginDao.validate(LoginDao.java:37)
        at Login.Service.Impl.LoginServiceImpl.validate(LoginServiceImpl.java:34)
        at Login.Action.Login.login(Login.java:46)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:404)
        at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:267)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:229)
        at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:221)
        at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
        at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:150)
        at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:48)
        at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

How to correcit it?
Thanks


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 1 post ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.