|
|
|
||||||||||||||||||||||
|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
Parceiros - CSS para Web Design - S.O.S Designers - Slackware-Brasil - Crie seu Web site - Oficina da Net |
Percorrer valor do campo auto-numérico depois de inserir em ASPAo fazer uma inserção de um registro em uma tabela, se o identificador for auto-numérico, geralmente não sabemos qual terá sido. Aqui ensinamos a obter o identificador depois da inserção. Quando em um banco de dados temos duas tabelas relacionadas com uma relação um a vários, a chave primária da tabela com cardinalidade 1 se encontra na tabela com cardinalidade n como chave forasteira. Normalmente as chaves primárias costumam utilizar campos de tipo auto-incremento.
O presente artigo detalha como averiguar o valor que se atribui à chave primária em uma operação de inserção, para desta maneira poder introduzir registros na tabela relacionada que conta com a chave forasteira. Para o exemplo, utilizaremos as seguintes tabelas: ![]() À princípio vamos supor que temos um novo pedido para o qual temos que adicionar vários detalhes. Neste suposto, necessitamos inserir primeiro o pedido, recolher o valor que o banco de dados lhe atribuiu ao campo IdPedido, e a seguir inserir os diferentes detalhes com esse valor de IdPedido. Para fazer isto, vamos utilizar um objeto recordset: Dim rspedidos Set rspedidos=Server.CreateObject("ADODB.Recordset") A seguir abrimos o Recordset: With rspedidos .open "Pedidos" ,adOpenDynamic, AdLockOptimistic,adCmdTableDirect adOpenDynamic: Cursor que não tem um conjunto único de registros, e no que as mudanças serão visíveis no recordset. AdLockOptimistic: O registro não se bloqueia até que não se inseriram os dados adCmdTableDirect: serve para indicar o nome da tabela A combinação de cursor, tipo de bloqueio e se o campo estiver indexado ou não faz com que possamos percorrer o campo ID, outras combinações podem não funcionar. A seguir, criamos um novo registro, e inserimos nos valores dos campos: .AddNew .Fields("idcliente")=16 .Fields("cargo")=500 .Fields("destinatario")="pepe" Uma vez introduzidos todos os valores dos campos, se atualiza o recordset. .update E a seguir, tiramos o ID que o banco de dados lhe atribuiu: MiID= .Fields("IdPedido") End With Agora contamos com uma variável meuID que nos permite fazer os inserts correspondentes no banco de dados, assim como recordsets ou com sentenças sql do tipo Insert Into.
Código completo: Dim rspedidos Set rspedidos=Server.CreateObject("ADODB.Recordset") With rspedidos .open "Pedidos" ,adOpenDynamic, AdLockOptimistic,adCmdTableDirect .AddNew .Fields("idcliente")=16 .Fields("cargo")=500 .Fields("destinatario")="pepe" .update MiID= .Fields("IdPedido") End With
Autoria e outras referências sobre este artigo Dentro deste artigo: + 1 manual relacionado + 1 categoria relacionada
Manuais relacionados com este artigo Dentro de Workshop de ASP Seguinte: O Objeto Browser Capabilities Categorias relacionadas Através das categorias do nosso diretório podem ser encontrados outros tipos de recursos relacionados com este artigo: + Entrar em Scripts em ASPComentários dos visitantes Os comentários dos visitantes são para ampliar a informação do artigo. Todos podem participar.
|
| Sobre nós | Copyright | Anuncie | Entrar em contato | <criarweb> |