none
Como restringir a entrada de dados em um db? RRS feed

  • Pergunta

  • Olá, pessoal.

    Estou desenvolvendo um sistema de help desk, aonde os clientes abrirão chamados com geração de um número de ticket. Isso já está funcionando, mas preciso impor um limite para isso, o cliente só poderá ter 5 chamados abertos, se ele tentar abrir um sexto chamado, uma mensagem aparecerá dizendo que ele precisa fechar algum chamado para poder abrir outro. Essa limitação deve ser relativa ao número de chamados abertos, e não ao número de chamados totais.

    Segue abaixo o código do formulário de inserção:

    <form action="obrigado.asp?cliente=<%= cliente %>" method="post">
    <table align="center" cellspacing="2" cellpadding="2" width="600" border="0">
      <tr>
        <td><b>Data:</b></td>
        <td><input name="data" type="text" id="data" value="<%= Date %>" size="50"></td>
      </tr>
      <tr>
        <td><b>Hora:</b></td>
        <td><input name="hora" type="text" id="hora" value="<%= Time %>" size="50"></td>
      </tr>
      <tr>
        <td><strong>Nome :</strong></td>
        <td><input type="text" name="fullname" size="50"></td>
      </tr>
      <tr>
        <td><b>Depto:</b></td>
        <td><select name="depto" id="depto">
          <option>--- Escolha o Departamento ---</option><option value="Financeiro">Financeiro</option><option value="RH">RH</option><option value="Administrativo">Administrativo</option><option value="Contabilidade">Contabilidade</option><option value="TI">TI</option><option value="Comercial">Comercial</option><option value="Produção">Produção</option><option value="Marketing">Marketing</option></select></td>
      </tr>
      <tr>
        <td><b>Empresa :</b></td>
        <td><input name="empresa" type="text" id="empresa" value="<%= Request.QueryString("cliente") %>" size="50" readonly></td>
      </tr>
      <tr>
        <td><strong>Email :</strong></td>
        <td><input type="text" name="email" size="50"></td>
      </tr>
      <tr>
        <td><strong>M&oacute;dulo :</strong></td>
       
    <td><input type="text" name="modulo" size="50"></td>
      </tr>
      <tr>
        <td><strong>Vers&atilde;o :</strong></td>
        <td><input name="versao" type="text" id="versao" size="50" maxlength="10"></td>
      </tr>
      <tr>
        <td><b>Breve descri&ccedil;&atilde;o:</b></td>
        <td><input name="brevedescricao" type="text" id="brevedescricao" size="50"></td>
      </tr>
      <tr>
      <td><strong>Descrição Completa:</strong></td>
      <td><textarea rows="10" cols="54" name="description"></textarea></td>
      </tr>
       <tr>
        <td colspan="2" align="center"><input class="littlebutton" type="submit" value="Enviar">      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
          <input class="littlebutton" type="reset" value="Apagar">
       
          <input name="status" type="hidden" value="Aberto"></td>
        </tr>
      </table>

    </form>


    O último campo imput hidden coloca o valor "Aberto" para a chamada. Quando o cliente fecha o chamado, o status passa para fechado. Não sei se posso usar esse valor para restringir a entrada de dados ou devo utilizar outro modo.

    Obrigado,

    Marcelo Silveira
    segunda-feira, 25 de maio de 2009 12:36

Respostas

  • Marcelo, creio que da maneira que você esta fazendo seja mais complicado.
    Pelo visto você já tem um campo status criado na tabela, certo, em vez de você bloquear na inserção, faça um select contando número de registros abertos, depentendo da quantidade você mostra o botão para inserir ou  uma mensagem mais ou menos assim:

    rs.Open "Select count(*) as 'quant' from tabela where status = 'aberto'", conexao, 3, 3


    if (rs("quant") = 5 ) then
        Response.Write("Já existem 5 chamados abertos!")
    else
        Response.Write("<input type='button' name='Cadastrar' .... />
    end if


    Mais ou menos isso

    Abraço

    Estevam

    **** Se a reposta foi útil, então não esqueça de marca-lá. ***
    terça-feira, 26 de maio de 2009 03:00

Todas as Respostas

  • Marcelo, creio que da maneira que você esta fazendo seja mais complicado.
    Pelo visto você já tem um campo status criado na tabela, certo, em vez de você bloquear na inserção, faça um select contando número de registros abertos, depentendo da quantidade você mostra o botão para inserir ou  uma mensagem mais ou menos assim:

    rs.Open "Select count(*) as 'quant' from tabela where status = 'aberto'", conexao, 3, 3


    if (rs("quant") = 5 ) then
        Response.Write("Já existem 5 chamados abertos!")
    else
        Response.Write("<input type='button' name='Cadastrar' .... />
    end if


    Mais ou menos isso

    Abraço

    Estevam

    **** Se a reposta foi útil, então não esqueça de marca-lá. ***
    terça-feira, 26 de maio de 2009 03:00
  • Cara, é isso mesmo, valew!!!!!!   :D

    Abraço,

    Marcelo
    terça-feira, 26 de maio de 2009 17:33