Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

nspriscila

GetString

Recommended Posts

Me ajudem se possível....Eu tenho 2 tabelas no banco de dados, e preciso dar um "INSERT" em duas tabelas "X" e "Y" que estão num mesmo formulário.Na tabela X existem os campos "A" "B" "C", sendo a coluna "A" o ID (chave) desta tabela. E na tabela "Y" existem os campos "A1" "A2" "B2" "C2" onde a coluna "A1" é o Id (chave) da tabela e a coluna "A2" seria o id (chave) da tabela "X".Me disseram que precisa usar GetString, mas eu não sei como colocar isso no asp.Segue abaixo o meu código, me ajudem por favor.... SQL = "INSERT INTO tb_estagio (periodo, aluno, matricula, instituicao, curso, serie, turno, supervisor, empresa, area, objetivos, resumo, data_inclusao) VALUES ('"& periodo &"','" & aluno & "','" & matricula & "','" & instituicao & "','" & curso & "','" & serie & "','" & turno & "','" & supervisor & "','" & empresa & "','" & area & "','" & objetivos & "','" & resumo & "'," & data_inclusao & ")"Conexao.Execute(SQL) SQL = "SELECT TOP 1 cod FROM tb_estagio ORDER BY cod DESC" rs=Conexao.execute(SQL) set rs=Server.CreateObject("ADODB.recordset")Set codigo_atual=rs.GetStringcodigo_atual = rs.getstring("cod") Dim cod_estag Dim itemDim h1Dim h2For x = 1 to 5 cod_estag =request("codigo_atual") item =request("item") h1 =request("h1") h2 =request("h2") SQL = "INSERT INTO tb_cronograma (cod_estag, item, h1, h2) VALUES ("& cod_estag &",'" & item & "'," & h1 & "," & h2 & ")" Conexao.Execute(SQL)Next%>ERRO DA PÁGINA:ADODB.Recordset (0x800A0E78)Operação não permitida quando o objeto está fechado./programa_de_estagio/confirma_cadastro.asp, line 64

Compartilhar este post


Link para o post
Compartilhar em outros sites

ao inves disso

 

SQL = "INSERT INTO tb_estagio (periodo, aluno, matricula, instituicao, curso, serie, turno, supervisor, empresa, area, objetivos, resumo, data_inclusao) VALUES ('"& periodo &"','" & aluno & "','" & matricula & "','" & instituicao & "','" & curso & "','" & serie & "','" & turno & "','" & supervisor & "','" & empresa & "','" & area & "','" & objetivos & "','" & resumo & "'," & data_inclusao & ")"Conexao.Execute(SQL)SQL = "SELECT TOP 1 cod FROM tb_estagio ORDER BY cod DESC"rs=Conexao.execute(SQL)set rs=Server.CreateObject("ADODB.recordset")Set codigo_atual=rs.GetStringcodigo_atual = rs.getstring("cod")Dim cod_estag Dim itemDim h1Dim h2For x = 1 to 5cod_estag =request("codigo_atual")item =request("item")h1 =request("h1")h2 =request("h2")SQL = "INSERT INTO tb_cronograma (cod_estag, item, h1, h2) VALUES ("& cod_estag &",'" & item & "'," & h1 & "," & h2 & ")"Conexao.Execute(SQL)Next%>

 

coloque isso

 

SQL = "INSERT INTO tb_estagio (periodo, aluno, matricula, instituicao, curso, serie, turno, supervisor, empresa, area, objetivos, resumo, data_inclusao) VALUES ('"& periodo &"','" & aluno & "','" & matricula & "','" & instituicao & "','" & curso & "','" & serie & "','" & turno & "','" & supervisor & "','" & empresa & "','" & area & "','" & objetivos & "','" & resumo & "'," & data_inclusao & ")"Conexao.Execute(SQL)SQL = "SELECT TOP 1 cod FROM tb_estagio ORDER BY cod DESC"set rs= Server.CreateObject("ADODB.Recordset")rs.Open SQL, Conexaocodigo_atual = rs("cod")rs.Closeset rs = nothingDim cod_estag Dim itemDim h1Dim h2For x = 1 to 5cod_estag =request("codigo_atual")item =request("item")h1 =request("h1")h2 =request("h2")SQL = "INSERT INTO tb_cronograma (cod_estag, item, h1, h2) VALUES ("& cod_estag &",'" & item & "'," & h1 & "," & h2 & ")"Conexao.Execute(SQL)Next%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, eu fiz a mudança e o formulário envia certinho sem erros, mas no banco de dados na "tb_cronograma" não consegue pegar o valor da coluna "cod_estag" da "tb_estagio", ele entra com valor "0".Você pode me ajudar ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

dá uma olhada no formulario q exibe os campos... provavelmetne ele está vindo errado!!! não é no seu codigo!!falows

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema não é no nome dos campos no formulário...Pelo que percebi, a função :SQL = "SELECT TOP 1 cod FROM tb_estagio ORDER BY cod DESC"set rs= Server.CreateObject("ADODB.Recordset")rs.Open SQL, Conexaocodigo_atual = rs("cod")rs.Closeset rs = nothingnão está conseguindo pegar o dado inserido no campo cod da tabela tb_estagio....

Compartilhar este post


Link para o post
Compartilhar em outros sites

então faz assim!!!

SQL = "SELECT TOP 1 cod FROM tb_estagio ORDER BY cod DESC"set rs= Conexao.Execute(SQL)if NOT rs.EOF then    codigo_atual = rs("cod")else    codigo_atual = 0end ifrs.Closeset rs = nothing

Compartilhar este post


Link para o post
Compartilhar em outros sites

troquei o código e nada mudou ?!!!Assim, se o "cod" da tb_estagio for "1" o "cod_estag" deve aparecer "1" na tb_cronograma... mas isso não ocorre ele inclui sempre o valor "0"...Tem outra saída ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

neste selectSQL = "SELECT TOP 1 cod FROM tb_estagio ORDER BY cod DESC"tenta usar os valores cadastrados no WHERE, não que isto esteja errado, mas sei lá se der um atraso por algum motivo vai acabar pegando o id errado

Compartilhar este post


Link para o post
Compartilhar em outros sites

neste selectSQL = "SELECT TOP 1 cod FROM tb_estagio ORDER BY cod DESC"tenta usar os valores cadastrados no WHERE, não que isto esteja errado, mas sei lá se der um atraso por algum motivo vai acabar pegando o id errado

O problema é que eu não estou conseguindo pegar o valor do id, pois a função deve estar errada....ele sempre pega o valor 0....Alguém me mostre como eu posso pegar o valor do id de outra tabela, qual a função para isso ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

a logica é a seguinte...você insereSQL = "INSERT INTO TABELA (campo1,campo2) VALUES ( '" & valor1 & "','" & valor2 & "' )"bem considerando que o campo autonumerico se chama ID você deleciona-o usando os valores inseridosSQL = "SELECT ID FROM TABELA WHERE campo1 = '" & valor1 & "' AND campo2 = '" & valor2 & "'"bem mas como disse sobre retardo, já tive problemas deste tipo resolvi usando um LOOP

Compartilhar este post


Link para o post
Compartilhar em outros sites

outra solução a prova de falhas é usar um campo numerico adicional ao dados onde você insere um numerico conhecido e recupera o id a partir deste numero...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.