Carlos,

A sua d�vida � mais SQL que java, mesmo assim imaginei duas solu��es meio
(ou bastante?) acrob�ticas, v� se te servem. Talvez os experts deem risadas,
mas coment�rios s�o sempre bem vindos.

Primeira solu��o: (i) criar um registro"tempor�rio" na sua
tabela onde em um dos campos voc� insere a data (vinda do aplicativo java,
com todas as casas decimais dispon�veis); (ii) recuperar a chave desse
registro usando o mesmo valor da vari�vel da data; (iii) atualizar o
registro com os dados definitivos.

Problema da primeira solu��o: se n�o houver uma coluna do tipo data talvez
seja mais interessante escolher a coluna num�rica mais "larga" (maior n�mero
de digitos), gerar um n�mero aleat�rio do tamanho correspondente e us�-lo no
lugar da data; quanto maior o n�mero de digitos menores ser�o as chances do
processo "melar".

Segunda solu��o: (i) setar o autocommit para off (com
JDBC/Oracle eu fa�o isso, mas n�o sei se d� com ODBC/Access); (ii) criar um
registro"tempor�rio" na sua tabela onde em um dos campos voc� insere um
valor que na pr�tica n�o ocorre nunca para dados definitivos (por exemplo
IP=1.1.1.1 ou categoria=XX); (iii) recuperar a chave desse registro usando o
mesmo valor da vari�vel anterior; (iv) atualizar o registro com os dados
definitivos; (v) fazer o commit.

Problema da segunda solu��o: ser� que o autocommit(on/off) roda em
ODBC/Access?

Que te parece?

[]s,

Rubens

-----Mensagem original-----
De: Carlos Campos <[EMAIL PROTECTED]>
Para: 'Lista SouJava' <[EMAIL PROTECTED]>; 'Lista Java BR'
<[EMAIL PROTECTED]>
Data: Quarta-feira, 15 de Dezembro de 1999 13:04
Assunto: [SouJava-J] INSERT INTO do SQL


>Prezados Javaneses,
>
>Criei um servlet que insere um registro num Banco de Dados MS ACCESS
>conforme c�digo abaixo. Gostaria de, ap�s inserir o registro na tabela,
>redirecionar o fluxo para um outro servlet passando como argumento a
>Chave Prim�ria.
>
>Ocorre que, neste caso espec�fico, a chave prim�ria � um campo de
>AUTO-NUMERA��O, onde eu n�o tenho conhecimento pr�vio do seu conte�do
>at� a inser��o do registro.
>
>Pergunta(s):
>
>Como fazer, qual comando utilizar, para recuperar o campo criado pelo
>Statement???
>
>Terei que fazer um novo Select num Resultset??? E como garantir a
>recupera��o do registro correto tendo em vista que o ODBC possui um
>delay na atualiza��o do Banco de Dados e se trata de uma INTRANET???
>
>Existe algum recurso que me permita recuperar o �ltimo registro gravado
>logo ap�s o INSERT???
>
>Agrade�o a todos,
>
>String query = new String();
>if(ope.equalsIgnoreCase("I")) {
>query =  "insert into Bei
>Bei_Descricao,Bei_Responsavel,Bei_Local,Bei_IP,Bei_Ponto,Bei_Codpat,Bei_
>Nserie,Bei_Categoria,Bei_Tipo,Bei_Dua,Bei_Lua,Bei_Status)";
>query += " values
>('"+des+"','"+resp+"','"+local+"','"+ip+"','"+ponto+"','"+pat+"','"+seri
>e+"','"+cat+"','"+tipo+"','"+dua+"','"+lua+"',"+istatus+")";
>
>stmt.executeUpdate(query);
>
>[]'s
>
>Carlos Campos
>[EMAIL PROTECTED]
>Analista de Sistemas / Bolsista PCI
>MCT/CNPq  - CETEM - Centro de Tecnologia Mineral
>Fone: 0xx21 5607222 - Ext. 358
>
>    --------------------------- LISTA SOUJAVA ---------------------------
>    http://www.soujava.org.br  -  Sociedade de Usu�rios Java da Sucesu-SP
>    [para sair da lista: http://www.soujava.org.br/forum/cadastrados.htm]
>    ---------------------------------------------------------------------
>



    --------------------------- LISTA SOUJAVA ---------------------------
    http://www.soujava.org.br  -  Sociedade de Usu�rios Java da Sucesu-SP
    [para sair da lista: http://www.soujava.org.br/forum/cadastrados.htm]
    ---------------------------------------------------------------------

Responder a