INSERT EM 2 TABELAS AO MESMO TEMPO
O BD é MS Access.
Tenho 2 tabelas como exemplo: tblCliente e tblTelefone
Preciso fazer o INSERT nas 2 tabelas, e armazenar em tblTelefone o código de cadastro que acabou de ser gerado no INSERT da tblCliente.
as colunas em tblCliente são: IDCLIENTE (auto increment), NOME (string), SEXO (string)
em tbTelefone são: IDCLIENTE (long), NUMERO (string)
O INSERT que estou querendo fazer, seria mais ou menos assim:
São 2 INSERT que precisam ser feitos ao mesmo tempo, mas no INSERT para criar o registro em tblTelefone, já precisa
do código gerado no novo registro quando fez o INSERT em tblCliente
Então minha dúvida é:
é possÃvel fazer algo como um [Ô]JOIN[Ô] nesse INSERT para que o [ô]código[ô] gerado no INSERT da tblCliente já
seja retornado e inserido também na tblTelefone ao mesmo tempo?
Nas minhas buscas por essa informação, e pelo o que entendi, encontrei algo parecido feito em MySQL de nome [ô]LAST_INSERT_ID()[ô],
então queria saber se o Access também tem algo parecido. Se vc usa MySQL em seus projetos, deve conhecer essa função.
Vlw ;)
Tenho 2 tabelas como exemplo: tblCliente e tblTelefone
Preciso fazer o INSERT nas 2 tabelas, e armazenar em tblTelefone o código de cadastro que acabou de ser gerado no INSERT da tblCliente.
as colunas em tblCliente são: IDCLIENTE (auto increment), NOME (string), SEXO (string)
em tbTelefone são: IDCLIENTE (long), NUMERO (string)
O INSERT que estou querendo fazer, seria mais ou menos assim:
INSERT INTO tblCliente (nome, sexo) VALUES ([ô]rafael[ô], [ô]m[ô])
INSERT INTO tblTelefone (idcliente, numero) VALUES ([codigo do cliente que foi gerado no primeiro INSERT], [ô]0000-0000[ô])
São 2 INSERT que precisam ser feitos ao mesmo tempo, mas no INSERT para criar o registro em tblTelefone, já precisa
do código gerado no novo registro quando fez o INSERT em tblCliente
Então minha dúvida é:
é possÃvel fazer algo como um [Ô]JOIN[Ô] nesse INSERT para que o [ô]código[ô] gerado no INSERT da tblCliente já
seja retornado e inserido também na tblTelefone ao mesmo tempo?
Nas minhas buscas por essa informação, e pelo o que entendi, encontrei algo parecido feito em MySQL de nome [ô]LAST_INSERT_ID()[ô],
então queria saber se o Access também tem algo parecido. Se vc usa MySQL em seus projetos, deve conhecer essa função.
Vlw ;)
Veja isso, acredito que ajude:
support.microsoft.com/pt-br/help/815629/how-to-retrieve-the-identity-value-while-inserting-records-into-access
support.microsoft.com/pt-br/help/815629/how-to-retrieve-the-identity-value-while-inserting-records-into-access
Não é nenhuma daquelas infos
Veja a parte que contém o [Ô]SELECT @@Identity[Ô]. Isso aà serve para trazer a id no ms-access.
Você vai ter que fazer isso em dois passos. Primeiro você inclui o registro, captura a sua id, depois utiliza-a pra criar o registro na outra tabela. Só lembrando que se você não quiser ter problemas de incompatibilidade de dados devido a algum erro no meio do caminho, use uma transação para tratar do caso. Ou seja, se der problema em qualquer uma das inserções, dê um rollback.
Aqui tem mais um exemplo para capturar a id:
blogs.msdn.microsoft.com/spike/2009/12/02/getting-autonumber-from-access-via-select-identity-needs-to-be-done-in-same-connection-as-the-insert/
Você vai ter que fazer isso em dois passos. Primeiro você inclui o registro, captura a sua id, depois utiliza-a pra criar o registro na outra tabela. Só lembrando que se você não quiser ter problemas de incompatibilidade de dados devido a algum erro no meio do caminho, use uma transação para tratar do caso. Ou seja, se der problema em qualquer uma das inserções, dê um rollback.
Aqui tem mais um exemplo para capturar a id:
blogs.msdn.microsoft.com/spike/2009/12/02/getting-autonumber-from-access-via-select-identity-needs-to-be-done-in-same-connection-as-the-insert/
Deu certo Jaba
Obrigado amigo!
Obrigado amigo!
Tópico encerrado , respostas não são mais permitidas