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
%>
Pergunta
evertonviana
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:
Esses campos são lidos do BD em MySQL e listados um em baixo do outro, junto dos campos para preenchimento do usuário:
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:
Código da pagina que salva os dados:
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
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.