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.
Pergunta
Luan Garcia
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:
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: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.
Link para o comentário
Compartilhar em outros sites
8 respostass a esta questão
Posts Recomendados