Projeto Compilado - Conexão ao Access não funciona

11 respostas Resolvido
java
A

Pessoal,

Terminei um projetinho que conecta ao SQLServer.
Contudo, mesmo com a conexão ao SQLServer, preciso buscar alguns dados num banco Access que fica na rede.
Durante a programação (usando o NetBeans) correu tudo tranquilo e a conexão ao Access está excelente.

Assim, compilei o projeto e tudo está funcionando perfeitamente, exceto a conexão ao Access.
Isso é muito estranho, pois quando uso NetBeans a conexão funciona corretamente.

Vc’s tem alguma ideia do que pode ser??

11 Respostas

A

Como realizo a conexão:

/*

  • To change this template, choose Tools | Templates
  • and open the template in the editor.
    */
    package ControleCS.Dao;
import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.*;

import java.util.logging.Level;

import java.util.logging.Logger;

import sun.jdbc.odbc.OdbcDef;

/**
*

  • @author evesilva
    */
    public class ConexaoIntegra {
    private static final String userName = “admin”;
    private static final String passWord = “senha”;
    private static final String driver = “sun.jdbc.odbc.JdbcOdbcDriver”;

//private static final String url = “jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=W:\Compartilhados\TESTES\Base.mdb;}”;

private static final String url = “jdbc:odbc:Base”;

private Connection con;

private Statement st;

private ResultSet rs;

private String db;

private static ConexaoIntegra me;
public static void main (String[] args) throws Exception{

Class.forName(driver);

Connection connection = DriverManager.getConnection(url, userName, passWord);

connection.close();

}
public static synchronized ConexaoIntegra getInstance(){
   if(me==null)
   {          
         me=new ConexaoIntegra();            
   }
   return me;
}

public ConexaoIntegra (){
    try{
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");   
        doConnection();
    }                 
    catch(ClassNotFoundException ex)
    {
        ex.printStackTrace();
    }

}

public ConexaoIntegra (String url) throws ClassNotFoundException{
    try{            
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");      
        setDb("JDBC:ODBC:Driver=Microsoft Access Driver (*.mdb, *.accdb); DBQ=" + url);
        doConnection(url);
        
    } catch(NullPointerException ex){
            ex.printStackTrace();
        }        
}

public void doConnection() {
    try{
        if (getCon() == null)
        {
            setCon(DriverManager.getConnection(url, userName, passWord));
        }
        if(getSt() == null)
        {
            setSt(getCon().createStatement());
        }
    }catch(SQLException ex){
        System.out.println(ex.toString());

    }

}
public void doConnection(String path) {
    try{
        if (getCon() == null)
        {
            setCon(DriverManager.getConnection(url, userName, passWord));
        }
        if(getSt() == null)
        {
            setSt(getCon().createStatement());
        }
    }catch(SQLException ex){
        System.out.println(ex.toString());

    }

}
public void desconect(){                
    try {
        getCon().close();
        setCon(null);
        setSt(null); 
    } catch (SQLException ex) {
        Logger.getLogger(ConexaoIntegra.class.getName()).log(Level.SEVERE, null, ex);
    }
}    

/**
 * @return the con
 */
public Connection getCon() {        
   return con;                
}

/**
 * @param con the con to set
 */
public void setCon(Connection con) {
    this.con = con;
}

/**
 * @return the st
 */
public Statement getSt() {
    return st;        
}

/**
 * @param st the st to set
 */
public void setSt(Statement st) {
    this.st = st;
}

/**
 * @return the rs
 */
public ResultSet getRs() {
    return rs;
}

/**
 * @param rs the rs to set
 */
public void setRs(ResultSet rs) {
    this.rs = rs;
}

/**
 * @return the db
 */
public String getDb() {
    return db;
}

/**
 * @param db the db to set
 */
public void setDb(String db) {
    this.db = db;
}

}

C

Retorna algum erro? Verifique se o local do arquivo Access está compartilhado para outros acessarem. Quando eu preciso fazer algo assim, com access, eu coloco na mesma pasta do projeto ( pode ser em um servidor, ou em máquina na rede ) e compartilho com “somente leitura”, aí, na estação de trabalho que irá usar o programa, eu crio um atalho para a área de trabalho somente, entende? Assim não tem como errar…

A

Coloquei na mesma pasta, mas sem resposta!
O pior é que não retorna nenhum erro - Quando rodo pelo NetBeans, ele vai tranquilo.

Só descobri que o problema é a conexão pq percebi que o arquivo access na rede não abre (gerando aquele arquivo .ldb) quando rodo o projeto compilado.

C

eu uso o UcanAccess como Driver, já tentou?

vc importa o ucanaccess-3.0.2.jar para a biblioteca e a sua String de conexão ficaria assim:

public class CriaConexao {

    public static Connection getConexao() throws SQLException {

        Connection conn = DriverManager.getConnection("jdbc:ucanaccess://W:/Compartilhados/TESTES/Base.mdb", "root", "suaSenha");
        
        return conn;
    }

}

Tentei adaptar o meu código à sua conexão. Teste e me diga se funcionou. Não se esqueça de baixar o UcanAccess e importar. Abraço!

A

Calera, valeu pela sugestão, é uma alternativa.

Mas neste meio tempo, realizei um teste e consegui pegar o erro durante a conexão:

Assim, o problema estaria restrito ao driver.
Mas, meus Drivers estão Ok, aparentemente:

Alguma ideia do que pode estar faltando?

C

Estão no ODBC, mas na sua biblioteca do projeto você colocou o driver? Suspeitei, por este motivo sugeri para você tentar com o uCanAccess. Testa aí, quem sabe funciona e você resolve isto. Abraço.

A

Calera, enfim, consegui resolver o problema usando o UcanAcess como vc sugeriu.

Tem um exemplo bom pra quem usa senha, aqui: http://stackoverflow.com/questions/31429939/how-to-connect-ucanaccess-to-an-access-database-encrypted-with-a-database-passwo

Contudo, apesar de conseguir ler os dados, não consigo gravar (erro abaixo). Já passou por isso?

debug:
net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::3.0.3.1 java.lang.RuntimeException: unsupported internal operation: Type java.lang.RuntimeException: unsupported internal operation: Type
	at net.ucanaccess.jdbc.UcanaccessStatement.execute(UcanaccessStatement.java:154)
	at ControleCS.Dao.DistribIntegraDao.adicionaProcesso(DistribIntegraDao.java:128)
	at ControleCS.PROC_Distrib.registrarPROC(PROC_Distrib.java:776)
	at ControleCS.PROC_Distrib.jBtn_Dist_TurmaActionPerformed(PROC_Distrib.java:523)
	at ControleCS.PROC_Distrib.access$700(PROC_Distrib.java:43)
	at ControleCS.PROC_Distrib$9.actionPerformed(PROC_Distrib.java:264)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
	at java.awt.Component.processMouseEvent(Component.java:6288)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
	at java.awt.Component.processEvent(Component.java:6053)
	at java.awt.Container.processEvent(Container.java:2041)
	at java.awt.Component.dispatchEventImpl(Component.java:4651)
	at java.awt.Container.dispatchEventImpl(Container.java:2099)
	at java.awt.Component.dispatchEvent(Component.java:4481)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
	at java.awt.Container.dispatchEventImpl(Container.java:2085)
	at java.awt.Window.dispatchEventImpl(Window.java:2478)
	at java.awt.Component.dispatchEvent(Component.java:4481)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:643)
	at java.awt.EventQueue.access$000(EventQueue.java:84)
	at java.awt.EventQueue$1.run(EventQueue.java:602)
	at java.awt.EventQueue$1.run(EventQueue.java:600)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
	at java.awt.EventQueue$2.run(EventQueue.java:616)
	at java.awt.EventQueue$2.run(EventQueue.java:614)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:613)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Caused by: java.sql.SQLException: java.lang.RuntimeException: unsupported internal operation: Type java.lang.RuntimeException: unsupported internal operation: Type
	at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
	at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
	at org.hsqldb.jdbc.JDBCStatement.fetchResult(Unknown Source)
	at org.hsqldb.jdbc.JDBCStatement.execute(Unknown Source)
	at net.ucanaccess.jdbc.Execute.executeWrapped(Execute.java:56)
	at net.ucanaccess.jdbc.AbstractExecute.executeBase(AbstractExecute.java:152)
	at net.ucanaccess.jdbc.Execute.execute(Execute.java:46)
	at net.ucanaccess.jdbc.UcanaccessStatement.execute(UcanaccessStatement.java:152)
	... 41 more
Caused by: org.hsqldb.HsqlException: java.lang.RuntimeException: unsupported internal operation: Type
	at org.hsqldb.error.Error.error(Unknown Source)
	at org.hsqldb.result.Result.newErrorResult(Unknown Source)
	at org.hsqldb.StatementDMQL.execute(Unknown Source)
	at org.hsqldb.Session.executeCompiledStatement(Unknown Source)
	at org.hsqldb.Session.executeDirectStatement(Unknown Source)
	at org.hsqldb.Session.execute(Unknown Source)
	... 47 more
Caused by: java.lang.RuntimeException: unsupported internal operation: Type
	at org.hsqldb.error.Error.runtimeError(Unknown Source)
	at org.hsqldb.types.Type.concat(Unknown Source)
	at org.hsqldb.ExpressionArithmetic.getValue(Unknown Source)
	at org.hsqldb.QuerySpecification.buildResult(Unknown Source)
	at org.hsqldb.QuerySpecification.getSingleResult(Unknown Source)
	at org.hsqldb.QuerySpecification.getResult(Unknown Source)
	at org.hsqldb.StatementInsert.getInsertSelectNavigator(Unknown Source)
	at org.hsqldb.StatementInsert.getResult(Unknown Source)
	... 51 more
net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::3.0.3.1 java.lang.RuntimeException: unsupported internal operation: Type java.lang.RuntimeException: unsupported internal operation: Type
	at net.ucanaccess.jdbc.UcanaccessStatement.execute(UcanaccessStatement.java:154)
	at ControleCS.Dao.DistribIntegraDao.adicionaAcusadosProcesso(DistribIntegraDao.java:158)
	at ControleCS.PROC_Distrib.registrarPROC(PROC_Distrib.java:777)
	at ControleCS.PROC_Distrib.jBtn_Dist_TurmaActionPerformed(PROC_Distrib.java:523)
	at ControleCS.PROC_Distrib.access$700(PROC_Distrib.java:43)
	at ControleCS.PROC_Distrib$9.actionPerformed(PROC_Distrib.java:264)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
	at java.awt.Component.processMouseEvent(Component.java:6288)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
	at java.awt.Component.processEvent(Component.java:6053)
	at java.awt.Container.processEvent(Container.java:2041)
	at java.awt.Component.dispatchEventImpl(Component.java:4651)
	at java.awt.Container.dispatchEventImpl(Container.java:2099)
	at java.awt.Component.dispatchEvent(Component.java:4481)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
	at java.awt.Container.dispatchEventImpl(Container.java:2085)
	at java.awt.Window.dispatchEventImpl(Window.java:2478)
	at java.awt.Component.dispatchEvent(Component.java:4481)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:643)
	at java.awt.EventQueue.access$000(EventQueue.java:84)
	at java.awt.EventQueue$1.run(EventQueue.java:602)
	at java.awt.EventQueue$1.run(EventQueue.java:600)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
	at java.awt.EventQueue$2.run(EventQueue.java:616)
	at java.awt.EventQueue$2.run(EventQueue.java:614)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:613)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Caused by: java.sql.SQLException: java.lang.RuntimeException: unsupported internal operation: Type java.lang.RuntimeException: unsupported internal operation: Type
	at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
	at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
	at org.hsqldb.jdbc.JDBCStatement.fetchResult(Unknown Source)
	at org.hsqldb.jdbc.JDBCStatement.execute(Unknown Source)
	at net.ucanaccess.jdbc.Execute.executeWrapped(Execute.java:56)
	at net.ucanaccess.jdbc.AbstractExecute.executeBase(AbstractExecute.java:152)
	at net.ucanaccess.jdbc.Execute.execute(Execute.java:46)
	at net.ucanaccess.jdbc.UcanaccessStatement.execute(UcanaccessStatement.java:152)
	... 41 more
Caused by: org.hsqldb.HsqlException: java.lang.RuntimeException: unsupported internal operation: Type
	at org.hsqldb.error.Error.error(Unknown Source)
	at org.hsqldb.result.Result.newErrorResult(Unknown Source)
	at org.hsqldb.StatementDMQL.execute(Unknown Source)
	at org.hsqldb.Session.executeCompiledStatement(Unknown Source)
	at org.hsqldb.Session.executeDirectStatement(Unknown Source)
	at org.hsqldb.Session.execute(Unknown Source)
	... 47 more
Caused by: java.lang.RuntimeException: unsupported internal operation: Type
	at org.hsqldb.error.Error.runtimeError(Unknown Source)
	at org.hsqldb.types.Type.concat(Unknown Source)
	at org.hsqldb.ExpressionArithmetic.getValue(Unknown Source)
	at org.hsqldb.QuerySpecification.buildResult(Unknown Source)
	at org.hsqldb.QuerySpecification.getSingleResult(Unknown Source)
	at org.hsqldb.QuerySpecification.getResult(Unknown Source)
	at org.hsqldb.StatementInsert.getInsertSelectNavigator(Unknown Source)
	at org.hsqldb.StatementInsert.getResult(Unknown Source)
	... 51 more
net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::3.0.3.1 java.lang.RuntimeException: unsupported internal operation: Type java.lang.RuntimeException: unsupported internal operation: Type
	at net.ucanaccess.jdbc.UcanaccessStatement.execute(UcanaccessStatement.java:154)
	at ControleCS.Dao.DistribIntegraDao.adicionaInfracaoProcesso(DistribIntegraDao.java:189)
	at ControleCS.PROC_Distrib.registrarPROC(PROC_Distrib.java:778)
	at ControleCS.PROC_Distrib.jBtn_Dist_TurmaActionPerformed(PROC_Distrib.java:523)
	at ControleCS.PROC_Distrib.access$700(PROC_Distrib.java:43)
	at ControleCS.PROC_Distrib$9.actionPerformed(PROC_Distrib.java:264)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
	at java.awt.Component.processMouseEvent(Component.java:6288)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
	at java.awt.Component.processEvent(Component.java:6053)
	at java.awt.Container.processEvent(Container.java:2041)
	at java.awt.Component.dispatchEventImpl(Component.java:4651)
	at java.awt.Container.dispatchEventImpl(Container.java:2099)
	at java.awt.Component.dispatchEvent(Component.java:4481)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
	at java.awt.Container.dispatchEventImpl(Container.java:2085)
	at java.awt.Window.dispatchEventImpl(Window.java:2478)
	at java.awt.Component.dispatchEvent(Component.java:4481)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:643)
	at java.awt.EventQueue.access$000(EventQueue.java:84)
	at java.awt.EventQueue$1.run(EventQueue.java:602)
	at java.awt.EventQueue$1.run(EventQueue.java:600)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
	at java.awt.EventQueue$2.run(EventQueue.java:616)
	at java.awt.EventQueue$2.run(EventQueue.java:614)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:613)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Caused by: java.sql.SQLException: java.lang.RuntimeException: unsupported internal operation: Type java.lang.RuntimeException: unsupported internal operation: Type
	at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
	at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
	at org.hsqldb.jdbc.JDBCStatement.fetchResult(Unknown Source)
	at org.hsqldb.jdbc.JDBCStatement.execute(Unknown Source)
	at net.ucanaccess.jdbc.Execute.executeWrapped(Execute.java:56)
	at net.ucanaccess.jdbc.AbstractExecute.executeBase(AbstractExecute.java:152)
	at net.ucanaccess.jdbc.Execute.execute(Execute.java:46)
	at net.ucanaccess.jdbc.UcanaccessStatement.execute(UcanaccessStatement.java:152)
	... 41 more
Caused by: org.hsqldb.HsqlException: java.lang.RuntimeException: unsupported internal operation: Type
	at org.hsqldb.error.Error.error(Unknown Source)
	at org.hsqldb.result.Result.newErrorResult(Unknown Source)
	at org.hsqldb.StatementDMQL.execute(Unknown Source)
	at org.hsqldb.Session.executeCompiledStatement(Unknown Source)
	at org.hsqldb.Session.executeDirectStatement(Unknown Source)
	at org.hsqldb.Session.execute(Unknown Source)
	... 47 more
Caused by: java.lang.RuntimeException: unsupported internal operation: Type
	at org.hsqldb.error.Error.runtimeError(Unknown Source)
	at org.hsqldb.types.Type.concat(Unknown Source)
	at org.hsqldb.ExpressionArithmetic.getValue(Unknown Source)
	at org.hsqldb.QuerySpecification.buildResult(Unknown Source)
	at org.hsqldb.QuerySpecification.getSingleResult(Unknown Source)
	at org.hsqldb.QuerySpecification.getResult(Unknown Source)
	at org.hsqldb.StatementInsert.getInsertSelectNavigator(Unknown Source)
	at org.hsqldb.StatementInsert.getResult(Unknown Source)
	... 51 more
A

A pasta lib está no mesmo local do .jar ?

C
Solucao aceita

Você usa Netbeans? Se sim, no lado esquerdo, na aba Projetos você tem as pastas, ou com botão direito em propriedades você tem acesso às importações e aí você pode adicionar ao projeto o .jar que você quer.
Observe a imagem.

C

já passei sim, precisa ver se o comando que você está dando ( a sintaxe que está executando ) se é compatível com o Ucanaccess. É chato isso, mas acontece… faça uma pesquisa no Google para ver como executar o seu comando no Ucanaccess. Abraço!

A

Calera, procurei a sintaxe para o UCanAccess mas pelo que vi não encontrei nada de estranho na minha Query.

Qual o objetivo dela: No meu sistema mantenho o histórico de alterações em um processo. Diferencio cada registro pela Data/Hora de edição (a maior Data/Hora é o registro atual). Neste sistema atual, preciso pegar o último registro e incluir algumas informações adicionais, salvando com uma nova Data/Hora.

Exemplificando (e simplificando) faço isso da seguinte maneira:
String sql = “INSERT Into BASE(Campo1, Campo2, Campo3, Campo4, DataHora)” +
"SELECT b.Campo1, b.Campo2, b.Campo3, “NovoDado”, Now() FROM BASE AS b, “+
”(SELECT Campo1, Max(DataHora) AS MaxData FROM BASE Group By Campo1) AS a "+
“WHERE b.Campo1= a.Campo1 AND DataHora=MaxData”;

Ou seja, para preencher os campos do registro, vou buscar o registro mais recente e acrescento novas informações (NovoDado e Now()) . A solução óbvia seria salvar o último registro como um objeto, alterar as propriedades que desejo e depois salvar no banco, mas nisso tbm estou tendo problemas com a codificação dos caracteres especiais. Por isso preferi essa maneira de fazer.
Sabe se existe algum problema com isso?

Obrigado pela paciência e ajuda.

A minha query é:

String sql =    insert into BasePROC (Cod_PROC, Entr_data_hora, Entr_anomes, Entr_data, Entr_hora, Aber_anomes, Aber_data, Aber_hora, Ence_anomes, Ence_data, Ence_hora, Login, Login_Nome, Login_Equipe, User_Respon, User_Respon_Equipe, Rito, Status_Andamento, Fase_Andamento, Data_do_Termo, Observacoes, Cod_Pre, DIR, Membro_1, Membro_2, Membro_3, Dt_Dist_Turma_DIR, Dt_JulgTurma_DIR, Dt_JulgTurma_DIR_Eft, Membro_1_Pleno, Dt_Dist_Pleno, Dt_JulgPleno, Dt_JulgPleno_Eft, Dt_Entrega_Rlt_Inicial, Dt_Entrega_Rlt_Inicial_Eft, Dt_Revisao_JURID, Dt_Revisao_JURID_Eft, Dt_Rlt_Final_Intimacao, Dt_Rlt_Final_Intimacao_Eft, Dt_Entrega_Rlt_Inicial_Pleno, Dt_Entrega_Rlt_Inicial_Pleno_Eft, Dt_Revisao_JURID_Pleno, Dt_Revisao_JURID_Pleno_Eft, Dt_Rlt_Final_Intimacao_Pleno, Dt_Rlt_Final_Intimacao_Pleno_Eft, Distribuido_S_N, Conexo, DT_Public_Site)

+ "SELECT b.Cod_PROC, Now(), Year(Now())&Month(Now()), Date(), Format(Now(), ‘Long Time’), b.Aber_anomes, b.Aber_data, b.Aber_hora, b.Ence_anomes, b.Ence_data, b.Ence_hora, “

+ “’”+proc.getLogin() + “’, ' + proc.getLogin_nome() + “’, ' + proc.getLogin_equipe() +”’, "

+ "b.User_Respon, b.User_Respon_Equipe, b.Rito, b.Status_Andamento, b.Fase_Andamento, b.Data_do_Termo, b.Observacoes, b.Cod_Pre, “

+ (proc.getDIR()==null?b.DIR, :”’”+proc.getDIR().toString()+”’, )

+ (proc.getMembro_1()==null?b.Membro_1, :”’”+proc.getMembro_1().toString()+”’, )

+ (proc.getMembro_2()==null?b.Membro_2, :”’”+proc.getMembro_2().toString()+”’, )

+ (proc.getMembro_3()==null?b.Membro_3, :”’”+proc.getMembro_3().toString()+”’, )

+ (proc.getDt_dist_turma_DIR()==now? proc.getDt_dist_turma_DIR()+, ": "b.Dt_Dist_Turma_DIR, ")

+ "b.Dt_JulgTurma_DIR, "

+ (proc.getDt_julgturma_DIR_eft()==null?"b.Dt_JulgTurma_DIR_Eft, “: “#”+ proc.getDt_julgturma_DIR_eft()+”#, “)

+ (proc.getMembro_1_pleno()==null?b.Membro_1_Pleno, :”’”+proc.getMembro_1_pleno().toString()+”’, )

+ (proc.getDt_dist_pleno()==now? proc.getDt_dist_pleno()+, ": "b.Dt_Dist_Pleno, ")

+ "b.Dt_JulgPleno, “

+ (proc.getDt_julgpleno_eft()==null?b.Dt_JulgPleno_Eft, :proc.getDt_julgpleno_eft()+, )

+ " b.Dt_Entrega_Rlt_Inicial, b.Dt_Entrega_Rlt_Inicial_Eft, b.Dt_Revisao_JURID, b.Dt_Revisao_JURID_Eft, b.Dt_Rlt_Final_Intimacao, b.Dt_Rlt_Final_Intimacao_Eft, b.Dt_Entrega_Rlt_Inicial_Pleno, b.Dt_Entrega_Rlt_Inicial_Pleno_Eft, b.Dt_Revisao_JURID_Pleno, b.Dt_Revisao_JURID_Pleno_Eft, b.Dt_Rlt_Final_Intimacao_Pleno, b.Dt_Rlt_Final_Intimacao_Pleno_Eft, b.Distribuido_S_N, b.Conexo, b.DT_Public_Site FROM BasePROC as b,”

+ (SELECT Cod_PROC, Max(Entr_data_hora) as MaxData From BasePROC  Where Cod_PROC=’” + proc.getCod_Proc() +”’ Group by Cod_PROC) as a WHERE b.Cod_PROC=a.Cod_PROC And b.Entr_data_hora=MaxData;
Criado 1 de fevereiro de 2016
Ultima resposta 11 de fev. de 2016
Respostas 11
Participantes 3