Ir para conteúdo

POWERED BY:

Arquivado

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

cesarhtc

Verificando 2 tabelas

Recommended Posts

Amigos,

 

Necessito fazer uma verificação em duas tabelas antes de gravar.

Sei fazer esta verificação em uma tabela, com duas me enrolo todo.

 

Se quiserem tenho digamos "fluxograma" de como eu quero que aconteça.

 

Agradeço pela ajuda

 

[ ]s http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

 

<html><head><title>Execução do Incluir</title></head><body style="font-family: Verdana, Arial"><p><h2>Inclusão de itens de licitação</h2><hr><%'Recupera do Inclu_ResultSQLnovo.asp o valor das variáveis passadaswUF = Request.form("SG_UF")wModal = Request.form("SG_Modalidade")wNL = Request.form("NU_NL")wPublicar = Request.form("DT_Publicar")wFornecedor = Request.form("NM_Fornecedor")wItem = Request.form("NU_Item")wObjeto = Request.form("TE_Objeto")wValor = Request.form("VL_Valor")wStatus = Request.form("NM_Status")'response.write wuf & "<BR>" &  wmodal & "<BR>" & wnl & "<BR>" & wpublicar & "<BR>" & wfornecedor & "<BR>" & witem & "<BR>" & wobjeto & "<BR>" & wvalor & "<BR>"  & wstatus & "<BR>"' Mostra a variável de conexãoConexao="Provider=SQLOLEDB; Data Source=10.2.9.125; Initial Catalog=Publicar; User ID=sa; Password=''"'response.end'Cria um objeto recordsetset rstMain = Server.CreateObject("ADODB.Recordset")<!---- Inicio Verificando Duplicidade  ---->' Passo 1 - Converter (NU_NL, NU_ITEM) String para Número.wNL2=CDbl(wNL)wITEM2=CDbl(wITEM)' Passo 2 - montar a cláusula SQL para checar se a licitação já está cadastradastrSQL = "SELECT * FROM Resultado WHERE sg_uf='" & wuf & "' AND sg_modalidade='" & wmodal & "' AND nu_nl='" & wnl2 & "'  AND nu_item='" & witem2 & "'"' Passo 3 - fazer a consulta e ver se existe ou nãorstMain.Open strSQL,conexaoIf not rstMain.EOF then   ' Se entrar no if, é porque já existe - não pode incluir%>	<h5 align=center><font face="Verdana" color=#463EDD>A inclusão não foi efetuada. Já existe o  item <U>"<%=witem2%>"</U> no resultado da licitação <U>"<%=wuf&"-"&wmodal&"-"&wnl%>"</U></FONT></h5>		<h5 align=center><a href="javascript:history.back()">Retorne para a página anterior e acerte.</a></h5>	</body>	</html><%		rstMain.Close	Set rstMain=Nothing	response.endEnd if<!---- Fim da Verificação ---->' Se passou do if, pode incluir.' Antes, tem de fechar a consulta:rstMain.Closewentrada = now()wID_Edital =wuf&wmodal&wnl'MONTA A STRING SQL DE INCLUSÃO NA TABELA PUBLICARstrSQL = "INSERT INTO resultado ( SG_UF, SG_MODALIDADE, NU_NL, DT_PUBLICAR, TE_ENTRADA, NM_STATUS, ID_EDITAL) " &_          " VALUES ('"& wuf &"' , '"& wmodal &"' , '"& wnl &"' , '"& wpublicar &"' , '" & wentrada &"', '" & wstatus &"', '" & wid_edital & "')"'response.write strSQL &"<BR>"'response.endrstMain.Open strSQL,conexao'Cria um objeto recordsetset rstMain = Server.CreateObject("ADODB.Recordset")wentrada = now()wID_Edital =wuf&wmodal&wnl'MONTA A STRING SQL DE INCLUSÃO NA TABELA PUBLICARstrSQL = "INSERT INTO resuitem (SG_UF, SG_MODALIDADE, NU_NL,  NU_ITEM, NM_FORNECEDOR, TE_OBJETO, VL_VALOR, TE_ENTRADA, NM_STATUS, ID_EDITAL) " &_          " VALUES ('"& wuf &"', '" & wmodal &"', '" & wnl &"',  '" & witem & "', '"& wfornecedor & "','" & wobjeto &"', '" & wvalor & "' , '" & wentrada &"', '" & wstatus &"', '" & wid_edital & "')"'response.write strSQL &"<BR>"'response.endrstMain.Open strSQL,conexaochave="?sg_uf=" & wuf & "&sg_modalidade=" & wmodal & "&nu_nl=" & wnl%><h2>A inclusão foi efetuada.</h2><hr><%'Libera a memória (destrói o objeto recordset)Set rstMain=Nothing%><a href="Inclu_ResultSQLItem.asp<%=chave%>">Deseja lançar mais algum item?</a>   <a href="home1.asp">Sair</a></p><!--#include file = "mostra_codigo.inc"--> </body></html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

se as 2 tabelas tiverem relacao, você pode usar INNER JOIN e fazer apenas 1 recordset, ou então você terá q usar 2 recordsets...acho q não tem segredofalows

Compartilhar este post


Link para o post
Compartilhar em outros sites

Modifiquei a consulta de verificação só que apareceu este erro, porque??

 

Technical Information (for support personnel)

Error Type:

Microsoft OLE DB Provider for SQL Server (0x80040E14)

Ambiguous column name 'sg_uf'.

/suprimentos/publicar/gravarResultado.asp, line 47

 

<html><head><title>Execução do Incluir</title></head><body style="font-family: Verdana, Arial"><p><h2>Inclusão de itens de licitação</h2><hr><%'Recupera do Inclu_ResultSQLnovo.asp o valor das variáveis passadaswUF = Request.form("SG_UF")wModal = Request.form("SG_Modalidade")wNL = Request.form("NU_NL")wPublicar = Request.form("DT_Publicar")wFornecedor = Request.form("NM_Fornecedor")wItem = Request.form("NU_Item")wObjeto = Request.form("TE_Objeto")wValor = Request.form("VL_Valor")wStatus = Request.form("NM_Status")'response.write wuf & "<BR>" &  wmodal & "<BR>" & wnl & "<BR>" & wpublicar & "<BR>" & wfornecedor & "<BR>" & witem & "<BR>" & wobjeto & "<BR>" & wvalor & "<BR>"  & wstatus & "<BR>"' Mostra a variável de conexãoConexao="Provider=SQLOLEDB; Data Source=10.2.9.125; Initial Catalog=Publicar; User ID=sa; Password=''"'response.end'Cria um objeto recordsetset rstMain = Server.CreateObject("ADODB.Recordset")<!---- Inicio Verificando Duplicidade  ---->' Passo 1 - Converter (NU_NL, NU_ITEM) String para Número.wNL2=CDbl(wNL)wITEM2=CDbl(wITEM)' Passo 2 - montar a cláusula SQL para checar se a licitação já está cadastradastrSQL = "SELECT *  FROM Resultado INNER JOIN ResuItem ON Resultado.ID_Edital = ResuItem.ID_Edital WHERE sg_uf='" & wuf & "' AND sg_modalidade='" & wmodal & "' AND nu_nl='" & wnl2 & "'  AND nu_item='" & witem2 & "'"' Passo 3 - fazer a consulta e ver se existe ou nãorstMain.Open strSQL,conexaoIf not rstMain.EOF then   ' Se entrar no if, é porque já existe - não pode incluir%>	<h5 align=center><font face="Verdana" color=#463EDD>A inclusão não foi efetuada. Já existe o  item <U>"<%=witem2%>"</U> no resultado da licitação <U>"<%=wuf&"-"&wmodal&"-"&wnl%>"</U></FONT></h5>		<h5 align=center><a href="javascript:history.back()">Retorne para a página anterior e acerte.</a></h5>	</body>	</html><%		rstMain.Close	Set rstMain=Nothing	response.endEnd if<!---- Fim da Verificação ---->' Se passou do if, pode incluir.' Antes, tem de fechar a consulta:rstMain.Closewentrada = now()wID_Edital =wuf&wmodal&wnl'MONTA A STRING SQL DE INCLUSÃO NA TABELA PUBLICARstrSQL = "INSERT INTO resultado ( SG_UF, SG_MODALIDADE, NU_NL, DT_PUBLICAR, TE_ENTRADA, NM_STATUS, ID_EDITAL) " &_          " VALUES ('"& wuf &"' , '"& wmodal &"' , '"& wnl &"' , '"& wpublicar &"' , '" & wentrada &"', '" & wstatus &"', '" & wid_edital & "')"'response.write strSQL &"<BR>"'response.endrstMain.Open strSQL,conexao'Cria um objeto recordsetset rstMain = Server.CreateObject("ADODB.Recordset")wentrada = now()wID_Edital =wuf&wmodal&wnl'MONTA A STRING SQL DE INCLUSÃO NA TABELA PUBLICARstrSQL = "INSERT INTO resuitem (SG_UF, SG_MODALIDADE, NU_NL,  NU_ITEM, NM_FORNECEDOR, TE_OBJETO, VL_VALOR, TE_ENTRADA, NM_STATUS, ID_EDITAL) " &_          " VALUES ('"& wuf &"', '" & wmodal &"', '" & wnl &"',  '" & witem & "', '"& wfornecedor & "','" & wobjeto &"', '" & wvalor & "' , '" & wentrada &"', '" & wstatus &"', '" & wid_edital & "')"'response.write strSQL &"<BR>"'response.endrstMain.Open strSQL,conexaochave="?sg_uf=" & wuf & "&sg_modalidade=" & wmodal & "&nu_nl=" & wnl%><h2>A inclusão foi efetuada.</h2><hr><%'Libera a memória (destrói o objeto recordset)Set rstMain=Nothing%><a href="Inclu_ResultSQLItem.asp<%=chave%>">Deseja lançar mais algum item?</a>   <a href="home1.asp">Sair</a></p><!--#include file = "mostra_codigo.inc"--> </body></html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

no WHERE alem dos nomes dos campos poe o das tabelas antesou seja muda tudo que esteja só o campo assimsg_ufpra tabela ponto campo assimtabela.sg_ufo erro deve ser porque este nome de campo deve ter nas duas tabelas...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esqueci, é que geralmente trabalho com uma tabela, agora apareceu este erro:

 

Technical Information (for support personnel)

 

Error Type:

Microsoft OLE DB Provider for SQL Server (0x80040E2F)

Violation of PRIMARY KEY constraint 'PK_Resultado'. Cannot insert duplicate key in object 'Resultado'.

/suprimentos/publicar/gravarResultado.asp, line 80

 

Tenho um arquivo DOC (fluxo) de uma pagina mostrando cokmo eu quero que processe.

 

Como poderia coloca-lo a disposição aqui?

Compartilhar este post


Link para o post
Compartilhar em outros sites

disponibiliza pra download em seu site

Compartilhar este post


Link para o post
Compartilhar em outros sites

você está tentando colocar um VALOR REPETIDO em um campo PRIMARY KEY(chave primária) que não aceita duplicação...verifica isso...falowssssssss

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.