Ir para conteúdo
Fórum Script Brasil

Luan Garcia

Membros
  • Total de itens

    5
  • Registro em

  • Última visita

Tudo que Luan Garcia postou

  1. Só voltando aqui pra falar: Usando on error resume next . . . If Err.Number <> 0 Then Response.Write("Erro") end if Funcionou perfeitamente Já: on error resume next If Produtos.Status = "0x1000" Then Response.Write("Erro") end if Não funcionou. Muito obrigado à todos que me ajudaram e se alguém souber explicar o porquê do segundo código não ter funcionado ficarei grato. Edit: Acabei me dando conta que Produtos.Status retronava 4096, número que não constava na documentação. Obrigado à todos de novo.
  2. Desculpe a ignorância mas como funciona o on error resume next? Vou dar uma 'googleada', realmente nunca usei. Mais além posto o resultado, valeu mesmo.
  3. Não é bem isso, mas obrigado por ter tentado ajudar bareta. Estou conseguindo inserir dados e tudo mais normalmente. É que meu campo é único, não quero que tenha dois nomes iguais. Obviamente quando o recordset tenta inserir um registro com um nome já existente o banco retorna um erro, e esse erro é o que quero tratar. Poderia dar um select e comparar o nome inserido com todos os nomes do banco, mas essa é uma resolução muito simplista. Eu sei que existe a propriedade Status e sei que o código de erro 0x1000 seria exatamente para isso, violação de campos. Porém, não estou conseguindo fazer funcionar essa propriedade e, por isso, estou pedindo a ajuda de vocês.
  4. Bom dia, estou me deparando com um problema: Tenho um campo único no meu banco Firebird. Obviamente não quero que o usuário insira dois campos com o mesmo conteúdo, o problema é que não estou conseguindo utilizar a propriedade Status do Recordset. Eis o código: <% set strConn = CreateObject("ADODB.Connection") strConn.ConnectionString = "DRIVER=Firebird/InterBase(r) driver; UID=SYSDBA; PWD=masterkey; DBNAME=D:\WebSites\ClicMercado\Banco\BDCOTACAO.fdb;" Nome_Prod = Request.Form("txtNome") Unidade_Prod = Request.Form("txtUnidade") strConn.Open set Produtos = CreateObject("ADODB.Recordset") Produtos.Open "Produtos", strConn, 2, 3, 2 'Configurações para poder dar um update 'Adiciona o produto Produtos.AddNew Produtos("Nome") = Nome_Prod Produtos("Unidade") = Unidade_Prod Produtos.UpDate If Produtos.Status = adRecIntegrityViolation then Response.Write("Erro") end if 'Destruindo as conexões Produtos.Close strConn.Close set Produtos = nothing set strConn = nothing %> O campo Nome é único e do jeito que está se eu entro com um nome já existente eu recebo o seguinte erro: Microsoft OLE DB Provider for ODBC Drivers (0x80004005) [ODBC Firebird Driver][Firebird]violation of PRIMARY or UNIQUE KEY constraint "UQ_PRODUTOS" on table "PRODUTOS" Já tentei comparar com o hexadecimal do erro também: If Produtos.Status = 0x1000 then Response.Write("Erro") end if Mas dái o erro gerado é outro: Erro de compilação do Microsoft VBScript (0x800A03F9) 'Then' esperado If Produtos.Status = 0x1000 then Já até tentei testar se era diferente de 0 ou adRecOK e nada deu resultado. Por favor se alguém souber me ajudar, ficaria muito grato.
×
×
  • Criar Novo...