Não consigo inserir registro com ASP.NET E BDP

21/11/2005

0

Faz alguns dias que estou tentando desenvolver uma aplicação com ASP.NET e BDP no D2005 e INTERBASE 7.5, mas estou apanhando um monte.

Tenho uma tabela onde registro os pacientes de um hospital com os seguintes campos:

CODIGO - NOME - OLHO - CONVENIO - DATA - REOP

Estou com dois problemas, meu campo DATA chega no DBWebGrid assim [b:bb1212de25]17/11/2005 00:00:00[/b:bb1212de25], mas eu inseri direto os dados no banco somente a data e no refresh do BdpDataAdapter ele chega normal, pq aparece assim no DBWebGrid e o que eu faço que não apareça?

Outra coisa é que não estou conseguindo inserir registro no banco de dados, aparece a seguinte mensagem:

Errors Falha ao ativar restrições. Uma ou mais linhas contêm valores que violam as restrições non-null, unique ou foreign-key. Não há linha na posição 7.


Meu campo CODIGO é a chave primaria da tabela, onde tenho um GENERATOR em conjunto com um TRIGGER do seguinte modo:

SET SQL DIALECT 3;

SET NAMES NONE;

CREATE GENERATOR GEN_PACIENTES_ID;

SET TERM ^ ;




CREATE TRIGGER PACIENTES_BI FOR PACIENTES
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
  IF (NEW.CODIGO IS NULL) THEN
    NEW.CODIGO = GEN_ID(GEN_PACIENTES_ID,1);
END
^


SET TERM ; ^


Ou seja, quando nenhum valor for dado a um campo, ele tem q ser dado um autoincremento, faço isso pelo IBExpert e funciona direitinho.

Os demais campos são todos NOT NULL, exceto REOP. E preencho todos os campos como manda o figurino em minha aplicação. Meu INSERT no BDPDATAADAPTER é:

INSERT INTO PACIENTES (NOME, OLHO, CONVENIO, DATA, REOP) VALUES (?, ?, ?, ?, ?)


Já tentei usando DBWebTextBox e já tentei com TextBox normais passando os valores por parametro e o erro sempre é o mesmo.

Já fiz alguns exemplos de umas revistas e nada também.

Alguém está passando por isso? Ou sabe como me ajudar?

Desde já, grato.


Tpoeta

Tpoeta

Responder

Posts

23/11/2005

Sanses

Abra o property buides e faça um databind personalizado para esta coluna que apresenta a data, assim logo na primeira vez que a página for aberta, já apresentará os dados como queres....

Abra o collections e veja se seus parametros estão configurados corretamente. Se todos os dados estão sendo enviados corretamente, algum parametro não foi criado ou não está recebendo o valor passado.

[]´s
Sanses


Responder

23/11/2005

Tpoeta

Desculpe amigo, mas vc poderia ser mais claro, não sei como fazer esse tal ´DataBind´, será que você pode me explicar...

Sobre os parametros, tudo está correto, fiz até um teste, tirei um autoincremento do campo código de minha tabela e coloquei o código na mão em minha inserções e tudo funcionou direitinho. Acredito que o erro está na comunição do Interbase com o autoincremento.

Farei um novo teste, usarei a mesma tabela, usando autoincremento numa aplicação Win32, do jeito que estou acostumado e verei as diferenças que darão.


Responder

24/11/2005

Sanses

Olá

1 - DataBind:
Clique em property builder > selecione columns > desmarque a caixa: Create columns automatically.
Em seguida, adicione as colunas da tabela manualmente do campo AVAILABLE COLUMNS para SELECT COLUMNS.
No campo data, coloque em DATA FORMATTING EXPRESSION a espressão: {0:d}
Compile novamente e veja se funciona.

2 - Quando estiver criando a sentença SQL use ? para parametros, mas depois configure no dataadapter @parametro. Não insira o campo de autonueração na inserção.

[]´s
Sanses


Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar