Bem pessoal,
A ideia é a seguinte: Em uma empresa que faz manutenção em equipamentos de informatica, é necessário fazer um acompanhamento das maquinas que já foram "verificadas". Então fiz um formulário para listar todas as maquinas ativas do cliente, listando os seguintes campos:
- Código do cliente
- Código do equipamento
Esses campos são lidos do BD em MySQL e listados um em baixo do outro, junto dos campos para preenchimento do usuário:
- Campo Checkbox -> Para o técnico marcar se esse equipamento já passou pela verificação
- Campo Ocorrencia
Agora o problema: Se eu selecionar 1 equipamento da lista(Selecionando o Checkbox), preencher as informações de ocorrência e salvar, sem problemas os dados são salvos no BD. Porem se eu marcar mais de um equipamento, recebo o seguinte erro:
Microsoft OLE DB Provider for ODBC Drivers erro '80040e21'
O driver ODBC não oferece suporte para as propriedades solicitadas.
/workstation/os/preventiva/salva_preventiva_nova.asp, linha 36
Código do formulário:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%><HTML> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <% 'recupera codigo do cliente cod_cli = session("cod_cli") 'Conexão MYSQL - Cadastro de Inventario Set Conex = Server.CreateObject("ADODB.Connection") Conex.ConnectionString = "DSN=inv_cli" Conex.Open 'Conexão MYSQL - Cadastro de OS Set Conex2 = Server.CreateObject("ADODB.Connection") Conex2.ConnectionString = "DSN=os" Conex2.Open 'Abro conexão com a base e tabelas alvo sql = "select * from inventario where codigo = "&cod_cli&" and situacao_equip = 'Ativo'" Set mostra = Server.CreateObject("ADODB.Recordset") mostra.CursorLocation = 3 mostra.open sql, conex, 3,3 'Salva no Banco de Dados sql2 = "select * from reg_preventiva" Set salva = Server.CreateObject("ADODB.Recordset") salva.open sql2, conex2, 3,3 'Contamos quantos registros foram selecionados Inventario = mostra.Recordcount %> <style type="text/css"><!-- .header {font-family:Tahoma, sans-serif; font-size: 12px; COLOR:#2FFFFF; padding-left:10; padding-right:5; font-weight:900 } .text {font-family:Tahoma,sans-serif; font-size: 11px; color:#ffffff; padding-left:20; padding-right:10 } .text2 {font-family:Verdana,sans-serif; font-size: 10px; color:#ffffff; padding-left:20; padding-right:10 } .news {font-family:Arial, sans-serif; font-size: 9px; color:#ffffff; padding-left:10; padding-right:5; font-weight:900; } a:link{text-decoration: none; color:#004FDF} a:visited{text-decoration: none; color: #004FDF} a:hover{text-decoration: underline; color: #004FDF} a:active{text-decoration: none; color: #004FDF} li { list-style-image:url('images/pic.jpg') } --></style> </HEAD> <BODY BGCOLOR=#FFFFFF> <script language="JavaScript"> //Função para abrir janelas pop-up function janela(popupfile,winheight,winwidth) { open(popupfile,"PopupWindow","resizable=no,height=" + winheight + ",width=" + winwidth + ",scrollbars=no"); } </script> <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber1"> <tr> <td width="99%"><b><font face="Arial" color="#FFAA00"> </font><font face="Arial" color="#0E2850">- Equipamentos Encontrados:</font><font face="Tahoma" size="2"> <%=inventario%><br> </font><font face="Arial" size="3" color="#0E2850">- Selecione os equipamentos que a rotina está sendo realizada</font><font face="Tahoma" size="2"><br> </font><font face="Arial" color="#0E2850">________________________________________________________________</font></b><form method="POST" action="salva_preventiva_nova.asp" name="Preventiva"> <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" height="108"> <tr> <%while not mostra.eof%> <td width="21%" height="20"> <font face="Tahoma" style="font-size: 9pt; font-weight: 700" color="#0E2850"> Preventiva efetuada? </font> <input type="checkbox" name="preventiva" value="<%=(mostra.Fields.Item("id").Value)%>"></td> <td width="17%" height="20"> <font face="Tahoma" style="font-size: 9pt; font-weight: 700" color="#0E2850"> Cod. Cliente:</font></td> <td width="29%" height="20"> <font face="Tahoma" style="font-size: 9pt; font-weight: 700" color="#0E2850"> Equipamento:</font></td> <td width="58%" height="20"> <font face="Tahoma" style="font-size: 9pt; font-weight: 700" color="#0E2850"> Ocorrência</font></td> </tr> <tr> <td width="21%" height="69"> </td> <td width="17%" height="69" valign="top"> <input type="text" name="cod_cli<%=(mostra.Fields.Item("id").Value)%>" size="20" value="<%=(mostra.Fields.Item("codigo").Value)%>"></td> <td width="29%" height="69" valign="top"> <input type="text" name="equipamento<%=(mostra.Fields.Item("id").Value)%>" size="20" value="<%=(mostra.Fields.Item("equipamento").Value)%>"></td> <td width="58%" height="69"> <textarea rows="4" name="ocorrencia<%=(mostra.Fields.Item("id").Value)%>" cols="29"></textarea></td> </tr> <tr> <td width="92%" colspan="3" height="19"><b><font face="Arial" color="#0E2850">________________________________________________________________</font></b></td> </tr> <% salva.addnew salva("preventiva") = "N" salva("cod_cli") =mostra("codigo") salva("equipamento") = mostra("equipamento") salva("contador") = "1" salva.update %> <%mostra.movenext wend%> </table> <p align="left"> <b><font face="Arial" color="#FF0000">ATENÇÃO:</font></b> <b><font face="Arial" color="#0E2850" size="2">Após o envio do formulário não será possível edição das preventivas enviadas!</font></b></p> <p align="center"> <input type="submit" value="Enviar preventiva" name="B1"></p> </form> <p> </td> <td width="1%"> </td> </tr> </table> <!-- End ImageReady Slices --> </BODY> </HTML>
Código da pagina que salva os dados:
<% '--------------------------------------------------------------------------------------------- 'recupera codigo do cliente cod_cli = session("cod_cli") '--------------------------------------------------------------------------------------------- 'Conexão MYSQL - Cadastro de Inventario Set Conex = Server.CreateObject("ADODB.Connection") Conex.ConnectionString = "DSN=inv_cli" Conex.Open 'Conexão MYSQL - Cadastro de OS Set Conex2 = Server.CreateObject("ADODB.Connection") Conex2.ConnectionString = "DSN=os" Conex2.Open 'Conexão MYSQL - Cadastro de clientes Set Conex3 = Server.CreateObject("ADODB.Connection") Conex3.ConnectionString = "DSN=cad_cli" Conex3.Open '--------------------------------------------------------------------------------------------- 'Define o momento de abertura data_inclusao = date() hora_inclusao = time() 'Define Responsavel pela preventiva responsavel = session("login_work1") '--------------------------------------------------------------------------------------------- 'Recupera estado do Checkbox preventiva = request("preventiva" & id) IF preventiva <> "" THEN 'Abro conexão com a base e tabelas de inventario sql = "select ID from inventario where id = "&id Set mostra = Server.CreateObject("ADODB.Recordset") mostra.open sql, conex, 3,3 '--------------------------------------------------------------------------------------------- 'Rotina de repetição While Not mostra.EOF id = mostra("id") cod_cli = Request("cod_cli" & id) equipamento = Request("equipamento" & id) ocorrencia = request("ocorrencia" & id) '--------------------------------------------------------------------------------------------- 'Salva no Banco de Dados sql2 = "select * from reg_preventiva" Set salva = Server.CreateObject("ADODB.Recordset") salva.open sql2, conex2, 3,3 salva("preventiva") = "S" salva("cod_cli") = cod_cli salva("equipamento") = equipamento salva("ocorrencia") = ocorrencia salva("data") = data_inclusao salva("hora") = hora_inclusao salva("contador") = "1" salva("responsavel") = responsavel salva.update salva.close set salva = nothing mostra.MoveNext Wend END IF '--------------------------------------------------------------------------------------------- 'Salva o respectivo numero cotnador no cadastro do cliente, para consulta e atualização 'Salva contador sql3 = "select * from cad_cli_p1 where codigo = "&cod_cli&"" Set salva2 = Server.CreateObject("ADODB.Recordset") salva2.open sql3, conex3, 3,3 salva2("cont_preventivas") = "1" salva2.update salva2.close set salva2 = nothing '--------------------------------------------------------------------------------------------- 'Redireciona para uma pagina de agradecimento e confirmação response.Write("<html><head><title>"&titulo_site&"</title><meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'></head><body><style type='text/css'><!--a:link{text-decoration: none; color:#004FDF}a:visited{text-decoration: none; color: #004FDF}a:hover{text-decoration: underline; color: #004FDF}a:active{text-decoration: none; color: #004FDF}--></style><table width='100%' height='100%'><tr><td><table align='center'><tr><td><div align='center'><font color='#000000' size='1' face='Verdana, Arial, Helvetica, sans-serif'>Manutenções preventivas selecionadas foram salvas!!<br><br><a href='#' onClick='javaScript:window.close()'>Fechar </a><BR><BR></font><br></div></td></tr></table></td></tr></table></body></html>") 'Finaliza conexão com Banco de Dados conex.close conex2.close conex3.close %>