Ir para conteúdo

POWERED BY:

Arquivado

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

cesarhtc

Insert multiplos

Recommended Posts

Bom dia, tenho um formulário que traz vários registros de um banco e preciso fazer insert deles só que não estou conseguindo montar direito a estrutura do código.

Faço assim para 1 registro:

'Cria um objeto recordset
set rstMain = Server.CreateObject("ADODB.Recordset")

'Conecta ao BD pelo DSN e abre a consulta
'Como resultado, o recordset conterá a tabela-resposta

' ****Inicio Verificando Duplicidade *******
' Passo 1 - montar a cláusula SQL para checar se a licitação já está cadastrada
strSQL = "SELECT * FROM PLANILHA WHERE ID_CHAVE_PLANILHA ='" & ID_CHAVE_PLANILHA & "' "


' Passo 2 - fazer a consulta e ver se existe ou não
rstMain.Open strSQL, Application("CONEXAO_SQL") 
If not rstMain.EOF then   ' Se entrar no if, é porque já existe - não pode incluir
'response.end
   
%>
<BR>
<BR>
<BR>
<BR>

	  <h2 align=center><font face="arial" color="RED">Atenção !!!</font></h2> <BR><BR> 
	  <h4 align=center><font face="arial" color="#333399">Já existe a negociação "<%=ID_NEGOCIACAO%>", item "<%=nu_item%>" no contrato <%=nu_contrato%></font></h4>
	 
	 <h5 align=center><a href="javascript:history.back()">Retorne para a página anterior</a></h2>
<BR>
<BR>
<BR>
<BR>

	
  
	
      
	</body>
	</html>
<%	
	rstMain.Close
	Set rstMain=Nothing
	response.end
End if

' Se passou do if, pode incluir.
' Antes, tem de fechar a consulta:

rstMain.Close

' *******Fim da Verificação*********************



'MONTA A STRING SQL DE INCLUSÃO NA TABELA PUBLICARSQL
strSQL = "INSERT INTO PLANILHA " & _
"(ID_CHAVE_PLANILHA, NU_CONTRATO, ID_NEGOCIACAO, NU_ITEM, NM_DESCRICAO, SG_UNID, NU_QTD_ATUAL, NU_MESES_ATUAL, VL_UNIT_ATUAL, VL_TOTAL_ATUAL, NM_OBJETO_ATUAL, NU_QTD_PROPOSTO, NU_MESES_PROPOSTO, VL_UNIT_PROPOSTO, VL_TOTAL_PROPOSTO, NM_OBJETO_PROPOSTO , NU_QTD_FECHADO, NU_MESES_FECHADO, VL_UNIT_FECHADO, VL_TOTAL_FECHADO, NM_OBJETO_FECHADO, IN_VALIDO, DT_DATA) " &_
" VALUES ('" & ID_CHAVE_PLANILHA & "' , '" & NU_CONTRATO & "', '" & ID_NEGOCIACAO & "' , '" &  NU_ITEM & "' , '" &  NM_DESCRICAO & "' , '" & SG_UNID & "' , '" & NU_QTD_ATUAL & "' , '" & NU_MESES_ATUAL & "' , '" & VL_UNIT_ATUAL & "' , '" & VL_TOTAL_ATUAL & "' , '" & NM_OBJETO_ATUAL & "' , '" & NU_QTD_PROPOSTO & "' , '" & NU_MESES_PROPOSTO & "' , '" & VL_UNIT_PROPOSTO & "' , '" & VL_TOTAL_PROPOSTO & "' , '" & NM_OBJETO_PROPOSTO & "' , '" & NU_QTD_FECHADO & "' , '" & NU_MESES_FECHADO & "' , '" & VL_UNIT_FECHADO & "' , '" & VL_TOTAL_FECHADO & "' , '" & NM_OBJETO_FECHADO & "' , '" & IN_VALIDO & "' , '" & DT_DATA & "')"

'response.write strSQL &"<BR>"


rstMain.Open strSQL,Application("CONEXAO_SQL")

Desde já agradeço

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha este exemplo

 

produtos= Split(Request.Form("produtos"), ",")

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

Response.write request.form("produtos")(i)&"<BR>" & request.form("qtd_produtos")(i)&"<BR>"
SQL = "INSERT INTO lista (lista_prodID,lista_quant) Values ('"&request.form("produtos")(i)&"','"&request.form("qtd_produtos")(i)&"')"

 

única diferença que estou pegando de vários checkboxes, no seu apenas coloque o for dentro de seu recordset...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seria isto:

 

teste= Split(Trim(REQUEST.FORM("NU_CONTRATO")), Trim(REQUEST.FORM("SG_GESTOR")), Trim(REQUEST.FORM("DT_AVALIA")), Trim(REQUEST.FORM("NU_AVALIA")), Trim(REQUEST.FORM("COD_FORN")), ",")

 

isto em azul seria o que?


Estou recebendo esta mensagem Wrong number of arguments or invalid property assignment: 'Split'

 

que ésta linha teste= Split(Trim(REQUEST.FORM("NU_CONTRATO")), Trim(REQUEST.FORM("SG_GESTOR")), Trim(REQUEST.FORM("DT_AVALIA")), Trim(REQUEST.FORM("NU_AVALIA")), Trim(REQUEST.FORM("COD_FORN")), ",")


Ficou assim e aparece a mensagem de erro Wrong number of arguments or invalid property assignment: 'Split'

 

 

teste= Split(REQUEST.FORM("NU_CONTRATO"), REQUEST.FORM("SG_GESTOR"), REQUEST.FORM("DT_AVALIA"), REQUEST.FORM("NU_AVALIA"), REQUEST.FORM("COD_FORN"),",")

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

Response.write request.form("teste")(i)&"<BR>" & request.form("conta")(i)&"<BR>"

Compartilhar este post


Link para o post
Compartilhar em outros sites

esse ponto e vírgula não existe... remove ele

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ficou assim:

 

teste= Split(REQUEST.FORM("NU_CONTRATO"), REQUEST.FORM("SG_GESTOR"), REQUEST.FORM("DT_AVALIA"), REQUEST.FORM("NU_AVALIA"), REQUEST.FORM("COD_FORN"))

For i 1 To Request.Form("teste").Count

Response.write request.form("teste")(i)&"<BR>" & request.form("conta")(i)&"<BR>"
next
response.end

 

Aparece a mesma mensagem de erro

 

Microsoft VBScript runtime error '800a01c2'

Wrong number of arguments or invalid property assignment: 'Split'

/protheus/GRAVAR_AVALIACAO_TESTE.ASP, line 17

.

Compartilhar este post


Link para o post
Compartilhar em outros sites

como esta seu INSERT

Compartilhar este post


Link para o post
Compartilhar em outros sites

strSQL = "INSERT INTO AVALIACAO (ID_CHAVE_AVALIACAO, NU_COD_FOR, NU_CONTRATO, SG_GESTOR, DT_AVALIA, NU_AVALIA, NU_ITEM, NM_CONCEITO) " &_
" VALUES ('" & ID_CHAVE_AVALIACAO & "' , '" & NU_COD_FORN & "' , '" & NU_CONTRATO & "' ,'" & SG_GESTOR & "', '" & DT_AVALIA & "' , '" & NU_AVALIA & "' , '" & NU_ITEM & "' , '" & NM_CONCEITO & "' )"

Compartilhar este post


Link para o post
Compartilhar em outros sites

dá um response.write na sua string SQL , para ver o que esta sendo passado

 

 

faz assim:

 

strSQL = "INSERT INTO AVALIACAO (ID_CHAVE_AVALIACAO, NU_COD_FOR, NU_CONTRATO, SG_GESTOR, DT_AVALIA, NU_AVALIA, NU_ITEM, NM_CONCEITO) " &_

" VALUES ('" & ID_CHAVE_AVALIACAO & "' , '" & NU_COD_FORN & "' , '" & NU_CONTRATO & "' ,'" & SG_GESTOR & "', '" & DT_AVALIA & "' , '" & NU_AVALIA & "' , '" & NU_ITEM & "' , '" & NM_CONCEITO & "' )"

response.write(strSQL)

response.end()

 

para ver o que esta sendo passado de valores nela

Compartilhar este post


Link para o post
Compartilhar em outros sites
teste= Split(REQUEST.FORM("NU_CONTRATO"), REQUEST.FORM("SG_GESTOR"), REQUEST.FORM("DT_AVALIA"), REQUEST.FORM("NU_AVALIA"), REQUEST.FORM("COD_FORN"))
conta = request.Form("conta")
For i = 1 To Request.Form("teste").Count
response.write  conta 
Response.write request.form("teste")(i)&"<BR>" & request.form("conta")(i)&"<BR>"
next
'response.end



'NU_CONTRATO = Trim(REQUEST.FORM("NU_CONTRATO")) 
'SG_GESTOR = Trim(REQUEST.FORM("SG_GESTOR"))
'DT_AVALIA = Trim(REQUEST.FORM("DT_AVALIA"))
'NU_AVALIA = Trim(REQUEST.FORM("NU_AVALIA"))
'NU_ITEM = Trim(REQUEST.FORM("NU_ITEM"))
'NM_CONCEITO = Trim(REQUEST.FORM("NM_CONCEITO"))
'NM_OCORRENCIA = Trim(REQUEST.FORM("NM_OCORRENCIA"))
'NM_OBSERVACAO = Trim(REQUEST.FORM("NM_OBSERVACAO"))
'NU_COD_FOR = Trim(REQUEST.FORM("COD_FORN"))
'ID_CHAVE_AVALIACAO = Trim(REQUEST.FORM("NU_CONTRATO")) &  Trim(REQUEST.FORM("COD_FORN")) & Trim(REQUEST.FORM("NU_AVALIA"))
'conta = request.Form("conta")


'response.write  conta

'response.write  NU_CONTRATO & "<BR>" & SG_GESTOR & "<BR>" & NU_COD_FORN & "<BR>" & DT_AVALIA & "<BR>" & NU_AVALIA & "<BR>" & NU_ITEM & "<BR>" & NM_CONCEITO & "<BR>" & NM_OCORRENCIA & "<BR>" & NM_OBSERVACAO & "<BR>" & ID_CHAVE_AVALIACAO & "<BR>"
               
' Mostra a variável de conexão
    

'response.write conexao &"<br>"
'response.end

'Cria um objeto recordset
set rstMain = Server.CreateObject("ADODB.Recordset")

'Conecta ao BD pelo DSN e abre a consulta
'Como resultado, o recordset conterá a tabela-resposta

' ******* Inicio Verificando Duplicidade *******
' Passo 1 - montar a cláusula SQL para checar se a licitação já está cadastrada
strSQL = "SELECT * FROM AVALIACAO WHERE ID_CHAVE_AVALIACAO='" & ID_CHAVE_AVALIACAO & "' "


' Passo 2 - fazer a consulta e ver se existe ou não
rstMain.Open strSQL, Application("CONEXAO_SQL") 

If not rstMain.EOF then   ' Se entrar no if, é porque já existe - não pode incluir
'response.end
   
    
%>
<BR>
	  <!--  <center><font face="arial" color="#3333FF" size ="4">Atenção !!! O contrato <%=ID_CHAVE_APLICACAO%> já foi incluído anteriormente.<CENTER>-->
<BR>	

<%
' Move para o próximo registro

     rstMain.movenext	 
  Loop
%> 

	</body>
	</html>
<%	
	rstMain.Close
	Set rstMain=Nothing
	response.end
End if

' Se passou do if, pode incluir.
' Antes, tem de fechar a consulta:

rstMain.Close

' *******Fim da Verificação*********************

'wdtretihora = now()



'MONTA A STRING SQL DE INCLUSÃO NA TABELA PUBLICARSQL
strSQL = "INSERT INTO AVALIACAO (ID_CHAVE_AVALIACAO, NU_COD_FOR, NU_CONTRATO, SG_GESTOR, DT_AVALIA, NU_AVALIA, NU_ITEM, NM_CONCEITO) " &_
          " VALUES ('" & ID_CHAVE_AVALIACAO & "' , '" & NU_COD_FORN & "' , '" & NU_CONTRATO & "' ,'" & SG_GESTOR & "', '" & DT_AVALIA & "' ,  '" & NU_AVALIA & "' , '" & NU_ITEM & "' , '" & NM_CONCEITO & "' )"

'response.write strSQL &"<BR>"

'RESPONSE.END

response.write(strSQL)

response.end()

rstMain.Open strSQL,Application("CONEXAO_SQL")
%>


<BR><BR>
<p align="center"><font face="Trebuchet MS" size="4" color="navy">Contrato <%=NU_CONTRATO%> cadastrado.</B></font><BR>
<BR>
    
 <table  align="center"  border=0> 
 <tr>
   <td>       
     <script>
function newPerfil()
  {
  window.location.assign("TESTA_PERFIL.asp?NU_CONTRATO=<%=NU_CONTRATO%>")

  }
</script>

<input type="button" style="font-family:arial; color:#333399; font-size:10pt; font-weight: bold background-color: #FFFF99" value="  Incluir Representante  " onclick="newPerfil()">


   </td>
</tr>
</table>		 
  

<%

'Libera a memória (destrói o objeto recordset)
Set rstMain=Nothing
%>

MENSAGEM DE ERRO:

 

Microsoft VBScript compilation error '800a040e'

'loop' without 'do'

/protheus/GRAVAR_AVALIACAO_TESTE.ASP, line 77

Loop^

Compartilhar este post


Link para o post
Compartilhar em outros sites

esta fora do loop seu comando DO, use o WHILE... WEND ao invés do loop, e coloque o assim:

 

WHILE not rs.eof

...

...

...

aqui seus recordsets

...

...

...

WEND

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.