Ir para conteúdo

POWERED BY:

Arquivado

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

Willian Abreu

Acrescentar 2 ou + Valores vindos do Request na tabela

Recommended Posts

Olá galera, como vão?

Estou precisando muito tirar uma dúvida, por isso pensei neste forum...

Sou iniciante em ASP, então não liguem se meu código estiver amador OK.. hehehe

 

 

Basicamente são 2 páginas de execução

 

1º Página = Envio as informações

2º Página = Resgato as informações vindas do Form utilizando o Request.Form

 

A estrutura da 2º página é a seguinte:

 

1. Resgato os valores vindos do Form através do Request.Form

CodCurso = Request.Form("CodigoCurso")

 

2. Uso a instrução SQL para Selecionar corretamente o que desejo

SQLGerenciador = "Select * From tblUsers, Gerenciador_Cursos WHERE (Gerenciador_Cursos.CodCurso IN("& CodCurso & ")) AND Gerenciador_Cursos.UserID ='" & UserID & "' AND tblUsers.UserID = '" & UserID & "' AND Gerenciador_Cursos.Concluido = True"

 

3. Faço uma série de instruções ASP que não estão dando conflito aparentemente

 

4. Uso a instrução SQL para INSERIR os dados na tabela da seguinte forma:

SQLInsere = "INSERT INTO Certificados (UserID, CodAluno, CodCurso, Chave_Certificado, Data_Solicitacao) VALUES ('" & UserID & "', " & CodAluno & ", " & CodCurso & ", '" & Chave & "', '" & Data & "') "

 

5. Após a instrução SQL, então encaminho o usuário para outra página

Response.Redirect("pagamento_certificado.asp")

 

O ERRO ACONTECE NA 4º ETAPA DO CÓDIGO, ONDE INSIRO OS DADOS NA TABELA

Tipo de erro:

Microsoft JET Database Engine (0x80040E14)

Número de valores da consulta e campos de destino não coincidem.

 

O que acontece é que quando RESGATO os valores vindos da página anterior, se for mais de 1 valor.. o erro acontece, porém se a página anterior enviar apenas UM valor, então o erro NAO acontece..

 

Pelo que percebo o INSERT não está conseguindo inserir DUAS linhas novas na tabela quando necessário...

 

Quando resgato 2 valores.. eles vem assim por exemplo: 1, 2

 

A dúvida então é a seguinte:

 

Como faço para acrescertar na tabela 2 valores ao mesmo tempo? vendo que hora pode ser 1 valor, hora 2, hora 3, hora 4....

 

 

GALERA, MUITO OBRIGADO A TODOS QUE SEMPRE ESTÃO DISPOSTOS A AJUDAR!

 

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá galera, como vão?

Estou precisando muito tirar uma dúvida, por isso pensei neste forum...

Sou iniciante em ASP, então não liguem se meu código estiver amador OK.. hehehe

 

 

Basicamente são 2 páginas de execução

 

1º Página = Envio as informações

2º Página = Resgato as informações vindas do Form utilizando o Request.Form

 

A estrutura da 2º página é a seguinte:

 

1. Resgato os valores vindos do Form através do Request.Form

CodCurso = Request.Form("CodigoCurso")

 

2. Uso a instrução SQL para Selecionar corretamente o que desejo

SQLGerenciador = "Select * From tblUsers, Gerenciador_Cursos WHERE (Gerenciador_Cursos.CodCurso IN("& CodCurso & ")) AND Gerenciador_Cursos.UserID ='" & UserID & "' AND tblUsers.UserID = '" & UserID & "' AND Gerenciador_Cursos.Concluido = True"

 

3. Faço uma série de instruções ASP que não estão dando conflito aparentemente

 

4. Uso a instrução SQL para INSERIR os dados na tabela da seguinte forma:

SQLInsere = "INSERT INTO Certificados (UserID, CodAluno, CodCurso, Chave_Certificado, Data_Solicitacao) VALUES ('" & UserID & "', " & CodAluno & ", " & CodCurso & ", '" & Chave & "', '" & Data & "') "

 

5. Após a instrução SQL, então encaminho o usuário para outra página

Response.Redirect("pagamento_certificado.asp")

 

O ERRO ACONTECE NA 4º ETAPA DO CÓDIGO, ONDE INSIRO OS DADOS NA TABELA

Tipo de erro:

Microsoft JET Database Engine (0x80040E14)

Número de valores da consulta e campos de destino não coincidem.

 

O que acontece é que quando RESGATO os valores vindos da página anterior, se for mais de 1 valor.. o erro acontece, porém se a página anterior enviar apenas UM valor, então o erro NAO acontece..

 

Pelo que percebo o INSERT não está conseguindo inserir DUAS linhas novas na tabela quando necessário...

 

Quando resgato 2 valores.. eles vem assim por exemplo: 1, 2

 

A dúvida então é a seguinte:

 

Como faço para acrescertar na tabela 2 valores ao mesmo tempo? vendo que hora pode ser 1 valor, hora 2, hora 3, hora 4....

 

 

GALERA, MUITO OBRIGADO A TODOS QUE SEMPRE ESTÃO DISPOSTOS A AJUDAR!

 

Abraços!

 

SQLInsere = "INSERT INTO Certificados (UserID, CodAluno, CodCurso, Chave_Certificado, Data_Solicitacao) VALUES ('" & UserID & "', " & CodAluno & ", " & CodCurso & ", '" & Chave & "', '" & Data & "') "

Como você pode notar os campos nao coicidem insert Chave_Certificado, Data_Solicitacao e values '" & Chave & "', '" & Data & "'

 

Deve ficar dessa forma:

SQLInsere = "INSERT INTO Certificados (UserID, CodAluno, CodCurso, Chave_Certificado, Data_Solicitacao) VALUES ('" & UserID & "', " & CodAluno & ", " & CodCurso & ", '" & Chave_Certificado & "', '" & Data_Solicitacao & "') "

ou vice versa...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá LOKO DA WEB, desculpe pela demora para responder... fiquei sem internet estes dias...

 

Bom é o seguinte...

 

A variavel CHAVE tem o seguinte valor

Chave = Left(rsAluno("Password"),10)

 

Ou seja, o problema não este... mais para facilitar a leitura do código, modifiquei para conforme o que você descreveu na sua mensagem e alterei a linha

Chave = Left(rsAluno("Password"),10) para Chave_Certificado = Left(rsAluno("Password"),10)

 

O erro procede sendo o mesmo..

Veja que quando resgato apenas 1 valor vindo da página anterior, o erro nao acontece e a inserção ocorre naturalmente...

Agora se resgato 2 valores vindo da pagina anterior, o erro acontece..

 

Saberia me dizer o que poderia ser?

 

 

Um abraço e obrigado pela atenção viu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

De um Response.Write(SQLInsere) e veja como a sua instrução está sendo montada...

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então Darkdemo, fiz o que disse.. abaixo está o resultado:

 

INSERT INTO Certificados (UserID, CodAluno, CodCurso, Chave_Certificado, Data_Solicitacao) VALUES ('condutainfo', 307, 1, 4, '9a286406c2', '28/1/2009 18:21:03')

 

Como pode ver 1, 4 significa que selecionei 2 campos na página anterior...

Se eu tivesse selecionado apenas um campo na página anterior, o SQL entenderia apenas como 1 e portanto o resultado final seria normal..

 

Como devo proceder, vendo que selecionei apenas 2 campos.. e se eu seleciona-se 3 ou 10 entende?

 

Muito Obrigado pela sua disposição cara...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você terá que criar um laço de repeticao e dentro desse laço que você colocará o INSERT.

 

Você pode transformar a string em vetor usando SPLIT ou então pode usar assim:

For i = 1 To Request.Form("CodigoCurso").Count
	CodigoCurso = Request.Form("CodigoCurso")(i)

	Response.Write CodigoCurso & "<br />"
Next

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.