Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Por que não lê codigo de registro recem adicionado


Guilherme Teixeira

Pergunta

Olá gente,

desenvolvi este código pra add professores, só q ele tem q inserir dados em duas tabelas, porem para inserir na segunda tabela ele precisa pesquisar no registro adicionado anteriormente o código do professor. Mas ele não busca :angry:

O código está ai alguém pode me ajudar por favor?

<!--#include file="includes/verifica_secretaria.asp"-->
<%

'conexao com o banco de dados
Set conn = Server.CreateObject("ADODB.Connection")
Conn.CursorLocation = 3 ' adUseClient
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Inetpub\db\boletins\meu-caminho-boletins.mdb"

Set conn2 = Server.CreateObject("ADODB.Connection")
Conn2.CursorLocation = 3 ' adUseClient
conn2.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Inetpub\db\boletins\meu-caminho-boletins.mdb"

dim nome 
dim usuario 
dim senha 
dim materia
dim serie 
dim rec0
dim sqlstmt
dim sqlstmt2
dim codigo_professor
dim recp
'recebe os campos do formulário
nome = request.form("nome")
usuario = request.form("usuario")
senha = request.form("senha")
materia = request.form("materia")
serie = request.form("serie")

'cria os cookies
response.Cookies("nome") = nome 
response.Cookies("usuario") = usuario
response.Cookies("senha") = senha
response.Cookies("materia") = materia
response.Cookies("serie") = serie

'verifica se existe algum campo em branco
if nome = "" or usuario = "" or senha = "" or materia = "-" or serie = "-" then
response.redirect replace(replace(Request.ServerVariables("HTTP_REFERER"),"?Erro=Verifique%20se%20todos%20os%20campos%20foram%20preenchidos",""),"?Erro2=Este%20usuário%20para%20professor%20já%20existe,%20escolha%20outro!","")+"?Erro=Verifique%20se%20todos%20os%20campos%20foram%20preenchidos"

else 

'verifica se o usuário do aluno existe
Set rec0 = Server.CreateObject ("ADODB.RecordSet")
rec0.open "SELECT  Alunos.Usuario FROM Alunos WHERE  (Alunos.Usuario = '"&usuario&"')",conn,2,3

Set rec1 = Server.CreateObject ("ADODB.RecordSet")
rec1.open "SELECT  Administradores.Usuario FROM Administradores WHERE  (Administradores.Usuario = '"&usuario&"')",conn,2,3

Set rec2 = Server.CreateObject ("ADODB.RecordSet")
rec2.open "SELECT  Pais.usuario_pai FROM Pais WHERE  (Pais.usuario_pai = '"&usuario&"')",conn,2,3

Set rec3 = Server.CreateObject ("ADODB.RecordSet")
rec3.open "SELECT  Pais.usuario_mae FROM Pais WHERE  (Pais.usuario_mae = '"&usuario&"')",conn,2,3

Set rec4 = Server.CreateObject ("ADODB.RecordSet")
rec4.open "SELECT  Pedagogia.Usuario FROM Pedagogia WHERE  (Pedagogia.Usuario = '"&usuario&"')",conn,2,3

Set rec5 = Server.CreateObject ("ADODB.RecordSet")
rec5.open "SELECT  Professores.Usuario FROM Professores WHERE  (Professores.Usuario = '"&usuario&"')",conn,2,3

Set rec6 = Server.CreateObject ("ADODB.RecordSet")
rec6.open "SELECT  Secretaria.Usuario FROM Secretaria WHERE  (Secretaria.Usuario = '"&usuario&"')",conn,2,3

If Not rec0.EOF and Not rec0.BOF or Not rec1.EOF and Not rec1.BOF or Not rec2.EOF and Not rec2.BOF or Not rec3.EOF and Not rec3.BOF or Not rec4.EOF and Not rec4.BOF or Not rec5.EOF and Not rec5.BOF or Not rec6.EOF and Not rec6.BOF Then
Set rec1 = nothing
Set rec2 = nothing
Set rec3 = nothing
Set rec4 = nothing
Set rec5 = nothing
Set rec6 = nothing

response.redirect replace(replace(Request.ServerVariables("HTTP_REFERER"),"?Erro=Verifique%20se%20todos%20os%20campos%20foram%20preenchidos",""),"?Erro2=Este%20usuário%20para%20professor%20já%20existe,%20escolha%20outro!","")+"?Erro2=Este%20usuário%20para%20professor%20já%20existe,%20escolha%20outro!"
else
'fecha conexões
Set rec1 = nothing
Set rec2 = nothing
Set rec3 = nothing
Set rec4 = nothing
Set rec5 = nothing
Set rec6 = nothing

'insere os dados nas tabelas
sqlstmt = "Insert into Professores (Nome, Usuario, Senha, Materia) values ('"&nome&"','"&usuario&"','"&senha&"',"&Materia&")"

Set add = server.createobject("adodb.connection") 'abre a conexão com o banco de dados

add.open conn 'avisa qual banco de dados será utilizado na consulta

set rsquery = add.execute(sqlstmt) 'executa a instrução SQL contida na variavel sqlstmt

set rsquery = nothing

set add = nothing


'pesquisa o codigo do professor


Set recp = Server.CreateObject("ADODB.RecordSet")
recp.open "SELECT  Professores.Id_Professor FROM Professores WHERE  (Professores.Usuario = '"&usuario&"')",conn2,3,3

If  not recp.EOF Or not recp.BOF Then
codigo_professor = rec("Id_professor").value

sqlstmt2 = "Insert into Materia_serie (Serie, Professor, Materia) values ("&serie&","&codigo_professor&","&materia&")"

Set add2 = server.createobject("adodb.connection") 'abre a conexão com o banco de dados

add2.open conn 'avisa qual banco de dados será utilizado na consulta

set rsquery2 = add2.execute(sqlstmt2) 'executa a instrução SQL contida na variavel sqlstmt


'limpa os cookiees
response.Cookies("nome") = ""
response.Cookies("usuario") = ""
response.Cookies("senha") = ""
response.Cookies("materia") = ""
response.Cookies("serie") = ""



response.redirect "secretaria_professores.asp"
else
response.redirect Request.ServerVariables("HTTP_REFERER")+"Erro=Não leu o codigo do professor"
end if
end if
end if


set rsquery2 = nothing

set add2 = nothing

set rec = nothing

%>

Link para o comentário
Compartilhar em outros sites

18 respostass a esta questão

Posts Recomendados

  • 0

Olá, incialmente peço para que você poste sempre seus códigos dentro das tags code, veja:

  • Quando precisar postar algum código, utilize as tags específicas, como [html] [/html] para códigos em HTML ou [code] [/code] para outros códigos.

    Existe também o [codebox] [/codebox] para códigos muito extensos, mas muitas vezes ele acaba atrapalhando a interpretação do mesmo em vez de ajudar.

    Se precisar postar o código de mais de um arquivo, escreva o nome do mesmo em negrito, logo antes da caixa de código, assim eles poderão ser identificados pelos outros usuários.

    Este simples recurso facilita incrivelmente na hora de ler ou analisar um código.

leia mais em: http://scriptbrasil.com.br/forum/index.php?showtopic=131728

aparece alguma mensagem de erro?

dei uma alterada na query de consulta... tente assim:

<!--#include file="includes/verifica_secretaria.asp"-->
<%

'conexao com o banco de dados
Set conn = Server.CreateObject("ADODB.Connection")
Conn.CursorLocation = 3 ' adUseClient
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Inetpub\db\boletins\meu-caminho-boletins.mdb"

Set conn2 = Server.CreateObject("ADODB.Connection")
Conn2.CursorLocation = 3 ' adUseClient
conn2.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Inetpub\db\boletins\meu-caminho-boletins.mdb"

dim nome
dim usuario
dim senha
dim materia
dim serie
dim rec0
dim sqlstmt
dim sqlstmt2
dim codigo_professor
dim recp
'recebe os campos do formulário
nome = request.form("nome")
usuario = request.form("usuario")
senha = request.form("senha")
materia = request.form("materia")
serie = request.form("serie")

'cria os cookies
response.Cookies("nome") = nome
response.Cookies("usuario") = usuario
response.Cookies("senha") = senha
response.Cookies("materia") = materia
response.Cookies("serie") = serie

'verifica se existe algum campo em branco
if nome = "" or usuario = "" or senha = "" or materia = "-" or serie = "-" then
response.redirect replace(replace(Request.ServerVariables("HTTP_REFERER"),"?Erro=Verifique%20se%20todos%20os%20campos%20foram%20preenchidos",""),"?Erro2=Este%20usuário%20para%20professor%20já%20existe,%20escolha%20outro!","")+"?Erro=Verifique%20se%20todos%20os%20campos%20foram%20preenchidos"

else

'verifica se o usuário do aluno existe
Set rec0 = Server.CreateObject ("ADODB.RecordSet")
rec0.open "SELECT  Alunos.Usuario FROM Alunos WHERE  (Alunos.Usuario = '"&usuario&"')",conn,2,3

Set rec1 = Server.CreateObject ("ADODB.RecordSet")
rec1.open "SELECT  Administradores.Usuario FROM Administradores WHERE  (Administradores.Usuario = '"&usuario&"')",conn,2,3

Set rec2 = Server.CreateObject ("ADODB.RecordSet")
rec2.open "SELECT  Pais.usuario_pai FROM Pais WHERE  (Pais.usuario_pai = '"&usuario&"')",conn,2,3

Set rec3 = Server.CreateObject ("ADODB.RecordSet")
rec3.open "SELECT  Pais.usuario_mae FROM Pais WHERE  (Pais.usuario_mae = '"&usuario&"')",conn,2,3

Set rec4 = Server.CreateObject ("ADODB.RecordSet")
rec4.open "SELECT  Pedagogia.Usuario FROM Pedagogia WHERE  (Pedagogia.Usuario = '"&usuario&"')",conn,2,3

Set rec5 = Server.CreateObject ("ADODB.RecordSet")
rec5.open "SELECT  Professores.Usuario FROM Professores WHERE  (Professores.Usuario = '"&usuario&"')",conn,2,3

Set rec6 = Server.CreateObject ("ADODB.RecordSet")
rec6.open "SELECT  Secretaria.Usuario FROM Secretaria WHERE  (Secretaria.Usuario = '"&usuario&"')",conn,2,3

If Not rec0.EOF and Not rec0.BOF or Not rec1.EOF and Not rec1.BOF or Not rec2.EOF and Not rec2.BOF or Not rec3.EOF and Not rec3.BOF or Not rec4.EOF and Not rec4.BOF or Not rec5.EOF and Not rec5.BOF or Not rec6.EOF and Not rec6.BOF Then
Set rec1 = nothing
Set rec2 = nothing
Set rec3 = nothing
Set rec4 = nothing
Set rec5 = nothing
Set rec6 = nothing

response.redirect replace(replace(Request.ServerVariables("HTTP_REFERER"),"?Erro=Verifique%20se%20todos%20os%20campos%20foram%20preenchidos",""),"?Erro2=Este%20usuário%20para%20professor%20já%20existe,%20escolha%20outro!","")+"?Erro2=Este%20usuário%20para%20professor%20já%20existe,%20escolha%20outro!"
else
'fecha conexões
Set rec1 = nothing
Set rec2 = nothing
Set rec3 = nothing
Set rec4 = nothing
Set rec5 = nothing
Set rec6 = nothing

'insere os dados nas tabelas
sqlstmt = "Insert into Professores (Nome, Usuario, Senha, Materia) values ('"&nome&"','"&usuario&"','"&senha&"',"&Materia&")"

Set add = server.createobject("adodb.connection") 'abre a conexão com o banco de dados

add.open conn 'avisa qual banco de dados será utilizado na consulta

set rsquery = add.execute(sqlstmt) 'executa a instrução SQL contida na variavel sqlstmt

set rsquery = nothing

set add = nothing


'pesquisa o codigo do professor


Set recp = Server.CreateObject("ADODB.RecordSet")
recp.open "SELECT  Id_Professor FROM Professores WHERE  Usuario = '"&usuario&"')",conn2,3,3

If  not recp.EOF Or not recp.BOF Then
codigo_professor = rec("Id_professor").value

sqlstmt2 = "Insert into Materia_serie (Serie, Professor, Materia) values ("&serie&","&codigo_professor&","&materia&")"

Set add2 = server.createobject("adodb.connection") 'abre a conexão com o banco de dados

add2.open conn 'avisa qual banco de dados será utilizado na consulta

set rsquery2 = add2.execute(sqlstmt2) 'executa a instrução SQL contida na variavel sqlstmt


'limpa os cookiees
response.Cookies("nome") = ""
response.Cookies("usuario") = ""
response.Cookies("senha") = ""
response.Cookies("materia") = ""
response.Cookies("serie") = ""



response.redirect "secretaria_professores.asp"
else
response.redirect Request.ServerVariables("HTTP_REFERER")+"Erro=Não leu o codigo do professor"
end if
end if
end if


set rsquery2 = nothing

set add2 = nothing

set rec = nothing

%>

[]'s Rafael Spilki

Link para o comentário
Compartilhar em outros sites

  • 0

Olá Rafael!

Acredito que você esteja se equivocando em pontos importantes em seu script, esclareço:

1. Você está consultando algo registrado em um banco de dados, ou seja, umas das tabelas está registrado uma informação e a outra não onde você gostaria de consultar tal ação. Desta forma se usa INNER JOIN ON e não como está sendo feito diretamente sem relação de consulta entre as tabelas.

2. Você não está fazendo consulta entre tabela e sim entre campos com a mesma informação isoladamente em uma única tabela.

3. Você não relacionou as tabelas para tal pesquisa, ou seja, você está fazendo pesquisa em uma única tabela isolada.

4. Não se faz referencia em seqüência como você está fazendo em seu script, ou seja, deve-se fazer uma a uma utilizando Ifs para manter a ordem de cada pesquisa onde a mesma pesquisa depende e uma resposta lógica e em ordem programada.

Solução:

1. Verifique se todas as tabelas que serão verificadas possuem tal campo onde tal informação será inserida, lembre que todos os campos dependem de uma logística, ou seja, se for numéricos todos devem ser numéricos ou contrários. O nome de cada campo em cada tabela não tem a obrigatoriedade de serem iguais, mas sim suas informações.

2. Você deve inserir em uma tabela de sua preferência tal informação para que tal pesquisa seja executada, ou seja, não existe comparação onde não há informação a ser comparada. Lembre-se que tal tabela será a base de referencia de pesquisa.

3. Utilize a tabela onde contem tal informação como base de pesquisa para todas as outras tabelas onde tal pesquisa será feita, ou seja, uma tabela terá a informação e as demais não.

4. Certifique-se se você está utilizando os Not .EOF de maneira correta, ou seja, cada Not EOF depende de uma ordem de execução e não uma ordem de seqüência de operadores lógicos (And, Or ou Not). Cada Not EOF será executado em um momento da pesquisa e cada resposta da pesquisa depende desta execução em ordem e tempo determinado. Isto poderá ser feito por IF sobre IF utilizando Else como organização de execução.

Acredito que com isto você poderá entender onde errou e como poderá aprender com seus erros.

Exemplo prático:

Tabela fixa = Professores

Campo fixo = Professores_Usuarios

SQL = "SELECT Professores_Usuarios, Alunos_Usuarios FROM Professores INNER JOIN Alunos ON Professores. Professores_Usuarios = Alunos.Alunos_Usuarios"
Set Verifica_Alunos = conexao.execute(SQL)

If  Verifica_Alunos.EOF then
Não consta à mesma informação nos campos filtrados
Else

SQL2 = "SELECT Professores_Usuarios, Administradores_Usuarios FROM Professores INNER JOIN Administradores ON Professores. Professores_Usuarios = Administradores. Administradores _Usuarios"
Set Verifica_ Administradores = conexao.execute(SQL2)
If  Verifica_ Administradores.EOF then
Não consta à mesma informação nos campos filtrados
Else
Insira aqui a próxima pesquisa

End If
End If

Com este exemplo poderá entender como funciona tal pesquisa, repare que a organização da informação é fundamental para você trabalhar com muito mais facilidade.

Nomes de campos na tabela Professor se inicia com a palavra Professor (Ex:: Professor_Usuarios) desta forma sua organização da informação será perfeita para identificar melhor o que está fazendo em suas execuções, porém isto é de programador para programador(uma dica válida para você).

Não crie muitas conexões e sim modifique o nome de referência da string ex SQL1, SQL2, SQL3, com isto poderá usar a mesma conexão sem problemas. Se preferir destrua cada Set ao executa-lo e ao executar todos os sets de cada conexão e ao final destrua a conexão (feche a conexão).

Boa sorte com seus testes e lembre-se que todo programador é meio que teimoso e distraindo, mas sempre acaba eliminando a distração com o tempo.

Link para o comentário
Compartilhar em outros sites

  • 0

Olá pessoal creio q vocês estão achando que o erro está no local errado.

Desculpe-me Rafael por não por no codebox. Não fiz isso, porque gostaria de destacar onde estava a falha.

Pois bem está aqui.

Set recp = Server.CreateObject("ADODB.RecordSet")
recp.open "SELECT  Id_Professor FROM Professores WHERE  Usuario = '"&usuario&"')",conn2,3,3

If  not recp.EOF Or not recp.BOF Then
codigo_professor = rec("Id_professor").value

sqlstmt2 = "Insert into Materia_serie (Serie, Professor, Materia) values ("&serie&","&codigo_professor&","&materia&")"

Set add2 = server.createobject("adodb.connection") 'abre a conexão com o banco de dados

add2.open conn 'avisa qual banco de dados será utilizado na consulta

set rsquery2 = add2.execute(sqlstmt2) 'executa a instrução SQL contida na variavel sqlstmt

Ele não lê o código do registro que acabei de inserir.

Link para o comentário
Compartilhar em outros sites

  • 0
Olá Rafael!

Acredito que você esteja se equivocando em pontos importantes em seu script, esclareço:

1. Você está consultando algo registrado em um banco de dados, ou seja, umas das tabelas está registrado uma informação e a outra não onde você gostaria de consultar tal ação. Desta forma se usa INNER JOIN ON e não como está sendo feito diretamente sem relação de consulta entre as tabelas.

2. Você não está fazendo consulta entre tabela e sim entre campos com a mesma informação isoladamente em uma única tabela.

3. Você não relacionou as tabelas para tal pesquisa, ou seja, você está fazendo pesquisa em uma única tabela isolada.

4. Não se faz referencia em seqüência como você está fazendo em seu script, ou seja, deve-se fazer uma a uma utilizando Ifs para manter a ordem de cada pesquisa onde a mesma pesquisa depende e uma resposta lógica e em ordem programada.

Solução:

1. Verifique se todas as tabelas que serão verificadas possuem tal campo onde tal informação será inserida, lembre que todos os campos dependem de uma logística, ou seja, se for numéricos todos devem ser numéricos ou contrários. O nome de cada campo em cada tabela não tem a obrigatoriedade de serem iguais, mas sim suas informações.

2. Você deve inserir em uma tabela de sua preferência tal informação para que tal pesquisa seja executada, ou seja, não existe comparação onde não há informação a ser comparada. Lembre-se que tal tabela será a base de referencia de pesquisa.

3. Utilize a tabela onde contem tal informação como base de pesquisa para todas as outras tabelas onde tal pesquisa será feita, ou seja, uma tabela terá a informação e as demais não.

4. Certifique-se se você está utilizando os Not .EOF de maneira correta, ou seja, cada Not EOF depende de uma ordem de execução e não uma ordem de seqüência de operadores lógicos (And, Or ou Not). Cada Not EOF será executado em um momento da pesquisa e cada resposta da pesquisa depende desta execução em ordem e tempo determinado. Isto poderá ser feito por IF sobre IF utilizando Else como organização de execução.

Acredito que com isto você poderá entender onde errou e como poderá aprender com seus erros.

Exemplo prático:

Tabela fixa = Professores

Campo fixo = Professores_Usuarios

CODE

SQL = "SELECT Professores_Usuarios, Alunos_Usuarios FROM Professores INNER JOIN Alunos ON Professores. Professores_Usuarios = Alunos.Alunos_Usuarios"

Set Verifica_Alunos = conexao.execute(SQL)

If Verifica_Alunos.EOF then

Não consta à mesma informação nos campos filtrados

Else

SQL2 = "SELECT Professores_Usuarios, Administradores_Usuarios FROM Professores INNER JOIN Administradores ON Professores. Professores_Usuarios = Administradores. Administradores _Usuarios"

Set Verifica_ Administradores = conexao.execute(SQL2)

If Verifica_ Administradores.EOF then

Não consta à mesma informação nos campos filtrados

Else

Insira aqui a próxima pesquisa

End If

End If

Com este exemplo poderá entender como funciona tal pesquisa, repare que a organização da informação é fundamental para você trabalhar com muito mais facilidade.

Nomes de campos na tabela Professor se inicia com a palavra Professor (Ex:: Professor_Usuarios) desta forma sua organização da informação será perfeita para identificar melhor o que está fazendo em suas execuções, porém isto é de programador para programador(uma dica válida para você).

Não crie muitas conexões e sim modifique o nome de referência da string ex SQL1, SQL2, SQL3, com isto poderá usar a mesma conexão sem problemas. Se preferir destrua cada Set ao executa-lo e ao executar todos os sets de cada conexão e ao final destrua a conexão (feche a conexão).

Boa sorte com seus testes e lembre-se que todo programador é meio que teimoso e distraindo, mas sempre acaba eliminando a distração com o tempo.

--------------------

Fica com Deus forte abraço no coração! - Marcio Benvenuto de Lima

Contato - marciobenvenutodelima@hotmail.com

Web/multimidía - Propaganda/Marketing - Produção Gráfica Digital/Peças promocionais

você não tem como tirar essas conclusões dessa forma! Não com as informações que foram postas na pergunta inicial!

A dúvida é simples:

ele quer inserir isso (coisa que já esta funcionando)

sqlstmt = "Insert into Professores (Nome, Usuario, Senha, Materia) values ('"&nome&"','"&usuario&"','"&senha&"',"&Materia&")"
e com base nessa inserção, consultar nessa tabela o codigo (provavlemente autonumerico) para inserir em outra tabela com o mesmo id... portanto, faz-se possível sim uma query simples com base nos campos advindos do FORM e não do BD, como segue
Set recp = Server.CreateObject("ADODB.RecordSet")
recp.open "SELECT  Id_Professor FROM Professores WHERE  Usuario = '"&usuario&"')",conn2,3,3

If  not recp.EOF Or not recp.BOF Then
codigo_professor = rec("Id_professor").value

sqlstmt2 = "Insert into Materia_serie (Serie, Professor, Materia) values ("&serie&","&codigo_professor&","&materia&")"

isso tudo é perfeitamente possível de ser realizado sim! Trabalho com isso a anos e já fiz milhões de rotinas nesse formato! Podem ainda estar ocorrendo erros? Podem! Não examino o código de todos minuciosamente... o objetivo aqui nem é esse!

Acrdito que você não tenha entendido a dúvida do membro! Será que a leu com atenção?

Outra coisa que você não viu... o banco de dados do membro é access, e as sintaxes para se utilizar INNER JOIN no access são bastante diferentes... Não testei a que você propôs mas acredito que não deva funcionar!

[]'s Rafael Spilki

Link para o comentário
Compartilhar em outros sites

  • 0

Isso mesmo RAfael minha duvida é essa.

Eu quero pesquisar o código (autonumeração) do registro recém adicionado, porém ele não lê o código.

Eu coloquei isto só para verificar a leitura desse código.

response.redirect Request.ServerVariables("HTTP_REFERER")+"Erro=Não leu o codigo do professor"

então toda hora ele redireciona para isto, ao invés de inserir.

Link para o comentário
Compartilhar em outros sites

  • 0

Pois então... eu acho que esse erro é por outro motivo!

faça um teste mais simples... não tenho agora como olhar isso... mas aconselho testar com um script reduzido... apenas com essa rotina tipo:

insere

consulta

response.write consulta

if condicional x
response.write "deu certo"
elseif condicional y
response.write "deu errado"
end if

não sei se me fiz entender... se não me diga que assim que der um tempinho faço a rotina com mais calma!

[]'s

Link para o comentário
Compartilhar em outros sites

  • 0

Cara vou bolar um exemplo aki q eu sei q funciona no sql server no access nunca tentei

set rs = conn.execute ("SET NOCOUNT ON;INSERT INTO Professores (campoBD) VALUES (" & campoForm & ");SELECT @@IDENTITY AS Id_Professor;")

set rs = conn.execute ("Insert into Materia_serie (Serie, Professor, Materia) values ("&serie&","&Id_Professor&","&materia&")"

Link para o comentário
Compartilhar em outros sites

  • 0

Olá Rafael!

Olá Rafael! Como vai você? Espero que esteja bem. Rafael em primeiro lugar gostaria de pedir minhas sinceras por direcionar meu post para você, digitei seu nome, porém a mensagem seria direcionada ao Guilherme (Uma distração tamanha). Minhas sinceras desculpas.

Em relação as minhas declarações também retiro cada uma delas (acredito que foi a vontade de ajudar), minhas sinceras desculpas por elas também.

Boa sorte Guilherme e Rafael na busca da solução deste pedido de ajuda.

Link para o comentário
Compartilhar em outros sites

  • 0
wink.gif dá nada!

che jow... acho que num rola! (só acho!)... se não servir a rotina do jow posto uma na sequencia... me faça saber por aqui... o dia hj tá fogo!

Sespeitei desde o principio, pois geralmente o q funciona em outros bancos no access não funciona

Mas acho q é uma coisa válida

Link para o comentário
Compartilhar em outros sites

  • 0

Me faça um favor... tem um debug aí no meio do código... portanto execute esse script e me e coloque aqui o resultado dele e se é compatível com o que está se querendo fazer!

<!--#include file="includes/verifica_secretaria.asp"-->
<%

'conexao com o banco de dados
Set conn = Server.CreateObject("ADODB.Connection")
Conn.CursorLocation = 3 ' adUseClient
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Inetpub\db\boletins\meu-caminho-boletins.mdb"

Set conn2 = Server.CreateObject("ADODB.Connection")
Conn2.CursorLocation = 3 ' adUseClient
conn2.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Inetpub\db\boletins\meu-caminho-boletins.mdb"

dim nome
dim usuario
dim senha
dim materia
dim serie
dim rec0
dim sqlstmt
dim sqlstmt2
dim codigo_professor
dim recp
'recebe os campos do formulário
nome = request.form("nome")
usuario = request.form("usuario")
senha = request.form("senha")
materia = request.form("materia")
serie = request.form("serie")

'cria os cookies
response.Cookies("nome") = nome
response.Cookies("usuario") = usuario
response.Cookies("senha") = senha
response.Cookies("materia") = materia
response.Cookies("serie") = serie

'verifica se existe algum campo em branco
if nome = "" or usuario = "" or senha = "" or materia = "-" or serie = "-" then
response.redirect replace(replace(Request.ServerVariables("HTTP_REFERER"),"?Erro=Verifique%20se%20todos%20os%20campos%20foram%20preenchidos",""),"?Erro2=Este%20usuário%20para%20professor%20já%20existe,%20escolha%20outro!","")+"?Erro=Verifique%20se%20todos%20os%20campos%20foram%20preenchidos"

else

'verifica se o usuário do aluno existe
Set rec0 = Server.CreateObject ("ADODB.RecordSet")
rec0.open "SELECT  Alunos.Usuario FROM Alunos WHERE  (Alunos.Usuario = '"&usuario&"')",conn,2,3

Set rec1 = Server.CreateObject ("ADODB.RecordSet")
rec1.open "SELECT  Administradores.Usuario FROM Administradores WHERE  (Administradores.Usuario = '"&usuario&"')",conn,2,3

Set rec2 = Server.CreateObject ("ADODB.RecordSet")
rec2.open "SELECT  Pais.usuario_pai FROM Pais WHERE  (Pais.usuario_pai = '"&usuario&"')",conn,2,3

Set rec3 = Server.CreateObject ("ADODB.RecordSet")
rec3.open "SELECT  Pais.usuario_mae FROM Pais WHERE  (Pais.usuario_mae = '"&usuario&"')",conn,2,3

Set rec4 = Server.CreateObject ("ADODB.RecordSet")
rec4.open "SELECT  Pedagogia.Usuario FROM Pedagogia WHERE  (Pedagogia.Usuario = '"&usuario&"')",conn,2,3

Set rec5 = Server.CreateObject ("ADODB.RecordSet")
rec5.open "SELECT  Professores.Usuario FROM Professores WHERE  (Professores.Usuario = '"&usuario&"')",conn,2,3

Set rec6 = Server.CreateObject ("ADODB.RecordSet")
rec6.open "SELECT  Secretaria.Usuario FROM Secretaria WHERE  (Secretaria.Usuario = '"&usuario&"')",conn,2,3

If Not rec0.EOF and Not rec0.BOF or Not rec1.EOF and Not rec1.BOF or Not rec2.EOF and Not rec2.BOF or Not rec3.EOF and Not rec3.BOF or Not rec4.EOF and Not rec4.BOF or Not rec5.EOF and Not rec5.BOF or Not rec6.EOF and Not rec6.BOF Then
Set rec1 = nothing
Set rec2 = nothing
Set rec3 = nothing
Set rec4 = nothing
Set rec5 = nothing
Set rec6 = nothing

response.redirect replace(replace(Request.ServerVariables("HTTP_REFERER"),"?Erro=Verifique%20se%20todos%20os%20campos%20foram%20preenchidos",""),"?Erro2=Este%20usuário%20para%20professor%20já%20existe,%20escolha%20outro!","")+"?Erro2=Este%20usuário%20para%20professor%20já%20existe,%20escolha%20outro!"
else
'fecha conexões
Set rec1 = nothing
Set rec2 = nothing
Set rec3 = nothing
Set rec4 = nothing
Set rec5 = nothing
Set rec6 = nothing

'insere os dados nas tabelas
sqlstmt = "Insert into Professores (Nome, Usuario, Senha, Materia) values ('"&nome&"','"&usuario&"','"&senha&"',"&Materia&")"

Set add = server.createobject("adodb.connection") 'abre a conexão com o banco de dados

add.open conn 'avisa qual banco de dados será utilizado na consulta

set rsquery = add.execute(sqlstmt) 'executa a instrução SQL contida na variavel sqlstmt

set rsquery = nothing

set add = nothing


'pesquisa o codigo do professor

'faça um debug aqui:

response.write "usuario = " & usuario & "<BR>"
response.end

Set recp = Server.CreateObject("ADODB.RecordSet")
recp.open "SELECT  Id_Professor FROM Professores WHERE  Usuario = '"&usuario&"')",conn2,3,3

If  not recp.EOF Or not recp.BOF Then
codigo_professor = rec("Id_professor").value

sqlstmt2 = "Insert into Materia_serie (Serie, Professor, Materia) values ("&serie&","&codigo_professor&","&materia&")"

Set add2 = server.createobject("adodb.connection") 'abre a conexão com o banco de dados

add2.open conn 'avisa qual banco de dados será utilizado na consulta

set rsquery2 = add2.execute(sqlstmt2) 'executa a instrução SQL contida na variavel sqlstmt


'limpa os cookiees
response.Cookies("nome") = ""
response.Cookies("usuario") = ""
response.Cookies("senha") = ""
response.Cookies("materia") = ""
response.Cookies("serie") = ""



response.redirect "secretaria_professores.asp"
else
response.redirect Request.ServerVariables("HTTP_REFERER")+"Erro=Não leu o codigo do professor"
end if
end if
end if


set rsquery2 = nothing

set add2 = nothing

set rec = nothing

%>

[]'s Rafael Spilki

Link para o comentário
Compartilhar em outros sites

  • 0

tente assim:

<!--#include file="includes/verifica_secretaria.asp"-->
<%

'conexao com o banco de dados
Set conn = Server.CreateObject("ADODB.Connection")
Conn.CursorLocation = 3 ' adUseClient
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Inetpub\db\boletins\meu-caminho-boletins.mdb"

Set conn2 = Server.CreateObject("ADODB.Connection")
Conn2.CursorLocation = 3 ' adUseClient
conn2.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Inetpub\db\boletins\meu-caminho-boletins.mdb"

dim nome
dim usuario
dim senha
dim materia
dim serie
dim rec0
dim sqlstmt
dim sqlstmt2
dim codigo_professor
dim recp
'recebe os campos do formulário
nome = request.form("nome")
usuario = request.form("usuario")
senha = request.form("senha")
materia = request.form("materia")
serie = request.form("serie")

'cria os cookies
response.Cookies("nome") = nome
response.Cookies("usuario") = usuario
response.Cookies("senha") = senha
response.Cookies("materia") = materia
response.Cookies("serie") = serie

'verifica se existe algum campo em branco
if nome = "" or usuario = "" or senha = "" or materia = "-" or serie = "-" then
response.redirect replace(replace(Request.ServerVariables("HTTP_REFERER"),"?Erro=Verifique%20se%20todos%20os%20campos%20foram%20preenchidos",""),"?Erro2=Este%20usuário%20para%20professor%20já%20existe,%20escolha%20outro!","")+"?Erro=Verifique%20se%20todos%20os%20campos%20foram%20preenchidos"

else

'verifica se o usuário do aluno existe
Set rec0 = Server.CreateObject ("ADODB.RecordSet")
rec0.open "SELECT  Alunos.Usuario FROM Alunos WHERE  (Alunos.Usuario = '"&usuario&"')",conn,2,3

Set rec1 = Server.CreateObject ("ADODB.RecordSet")
rec1.open "SELECT  Administradores.Usuario FROM Administradores WHERE  (Administradores.Usuario = '"&usuario&"')",conn,2,3

Set rec2 = Server.CreateObject ("ADODB.RecordSet")
rec2.open "SELECT  Pais.usuario_pai FROM Pais WHERE  (Pais.usuario_pai = '"&usuario&"')",conn,2,3

Set rec3 = Server.CreateObject ("ADODB.RecordSet")
rec3.open "SELECT  Pais.usuario_mae FROM Pais WHERE  (Pais.usuario_mae = '"&usuario&"')",conn,2,3

Set rec4 = Server.CreateObject ("ADODB.RecordSet")
rec4.open "SELECT  Pedagogia.Usuario FROM Pedagogia WHERE  (Pedagogia.Usuario = '"&usuario&"')",conn,2,3

Set rec5 = Server.CreateObject ("ADODB.RecordSet")
rec5.open "SELECT  Professores.Usuario FROM Professores WHERE  (Professores.Usuario = '"&usuario&"')",conn,2,3

Set rec6 = Server.CreateObject ("ADODB.RecordSet")
rec6.open "SELECT  Secretaria.Usuario FROM Secretaria WHERE  (Secretaria.Usuario = '"&usuario&"')",conn,2,3

If Not rec0.EOF and Not rec0.BOF or Not rec1.EOF and Not rec1.BOF or Not rec2.EOF and Not rec2.BOF or Not rec3.EOF and Not rec3.BOF or Not rec4.EOF and Not rec4.BOF or Not rec5.EOF and Not rec5.BOF or Not rec6.EOF and Not rec6.BOF Then
Set rec1 = nothing
Set rec2 = nothing
Set rec3 = nothing
Set rec4 = nothing
Set rec5 = nothing
Set rec6 = nothing

response.redirect replace(replace(Request.ServerVariables("HTTP_REFERER"),"?Erro=Verifique%20se%20todos%20os%20campos%20foram%20preenchidos",""),"?Erro2=Este%20usuário%20para%20professor%20já%20existe,%20escolha%20outro!","")+"?Erro2=Este%20usuário%20para%20professor%20já%20existe,%20escolha%20outro!"
else
'fecha conexões
Set rec1 = nothing
Set rec2 = nothing
Set rec3 = nothing
Set rec4 = nothing
Set rec5 = nothing
Set rec6 = nothing

'insere os dados nas tabelas
sqlstmt = "Insert into Professores (Nome, Usuario, Senha, Materia) values ('"&nome&"','"&usuario&"','"&senha&"',"&Materia&")"

Set add = server.createobject("adodb.connection") 'abre a conexão com o banco de dados

add.open conn 'avisa qual banco de dados será utilizado na consulta

set rsquery = add.execute(sqlstmt) 'executa a instrução SQL contida na variavel sqlstmt

'set rsquery = nothing

'set add = nothing


'pesquisa o codigo do professor

'faça um debug aqui:

'response.write "usuario = " & usuario & "<BR>"
'response.end

Set recp = Server.CreateObject("ADODB.RecordSet")
recp.open "SELECT  Id_Professor FROM Professores WHERE  Usuario = '"&usuario&"')",conn2,3,3

If  not recp.EOF Or not recp.BOF Then
codigo_professor = rec("Id_professor").value

sqlstmt2 = "Insert into Materia_serie (Serie, Professor, Materia) values ("&serie&","&codigo_professor&","&materia&")"

Set add2 = server.createobject("adodb.connection") 'abre a conexão com o banco de dados

add2.open conn 'avisa qual banco de dados será utilizado na consulta

set rsquery2 = add2.execute(sqlstmt2) 'executa a instrução SQL contida na variavel sqlstmt


'limpa os cookiees
response.Cookies("nome") = ""
response.Cookies("usuario") = ""
response.Cookies("senha") = ""
response.Cookies("materia") = ""
response.Cookies("serie") = ""



response.redirect "secretaria_professores.asp"
else
response.redirect Request.ServerVariables("HTTP_REFERER")+"Erro=Não leu o codigo do professor"
end if
end if
end if


set rsquery2 = nothing

set add2 = nothing

set rec = nothing

%>

[]'s Rafael Spilki

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...