Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Interbase/IBOConsoleInterbase/Delphi7

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    Delphi Interbase/IBOConsoleInterbase/Delphi7

    Pessoal:
    Estou precisando de ajuda no seguinte problema que não estou conseguindo resolver no Delphi 7. Estou usando o Interbase 6 e os seguintes componentes da paleta Interbase do Delphi 7:
    IBDATABASE
    IBTRANSACTION
    IBTABLE
    E da paleta DataAcess o componente
    DATASOURCE
    Todos os componentes estão ligados certamente.
    O IBDATABASE ligado corretamente ao banco de Dados, pois se vê na propriedade allowstreamedConnected como TRUE e a propriedade connected também como TRUE.


    Aqui na propriedade do IBTRANSACTION na figura abaixo a proriedade ACTIVE também está como TRUE.


    E tenho algumas tabelas no DATAMODULE que também estão ligadas certamente sendo que na propriedade ACTIVE está como TRUE.





    Agora eu tenho as seguintes tabelas feitas no IBOCONSOLE DO INTERBASE

    Essa é a tabela de origem.

    CREATE TABLE "TBL_ENTRADA_PRODUTO_ESTOQUE"
    (
    "ID_CODIGO_ENTRADA_PRODUTO" INTEGER NOT NULL,
    "ID_DT_ENTRADA_DO_PRODUTO" TIMESTAMP,
    "ID_HR_ENTRADA_DO_PRODUTO" TIME,
    "ID_DESCRICAO_PRODUTO" VARCHAR(60) CHARACTER SET WIN1252 NOT NULL,
    "ID_QUANTIDADE_ENTRADA_ESTOQUE" NUMERIC(10, 2) NOT NULL,
    "ID_NOME_FORNECEDOR" VARCHAR(80) CHARACTER SET WIN1252 NOT NULL,
    "ID_NOTA_FISCAL_FORNECEDOR" VARCHAR(10) CHARACTER SET WIN1252,
    "ID_OBSERVACAO" VARCHAR(50) CHARACTER SET WIN1252,
    CONSTRAINT "CODIGOENTRADAPRODUTO_PK" PRIMARY KEY ("ID_CODIGO_ENTRADA_PRODUTO")
    );


    Essa é a tabela de destino

    CREATE TABLE "TBL_CONTROLA_ESTOQUE"
    (
    "ID_CODIGO_CONTROLA_ESTOQUE" INTEGER NOT NULL,
    "ID_CODIGO_PRODUTO" INTEGER,
    "ID_DESCRICAO_PRODUTO" VARCHAR(60) CHARACTER SET WIN1252,
    "ID_ESTOQUE_ATUAL" INTEGER,
    "ID_ESTOQUE_MINIMO" INTEGER,
    "ID_ESTOQUE_MAXIMO" INTEGER,
    "ID_CUSTO_UNITARIO" NUMERIC(10, 2),
    "ID_CUSTO_VENDA" NUMERIC(10, 2),
    CONSTRAINT "CODIGOCONTROLAESTOQUE_PK" PRIMARY KEY ("ID_CODIGO_CONTROLA_ESTOQUE")
    );


    O que eu preciso é o seguinte:

    Quero/Preciso transferir o que for digitado no campo "ID_QUANTIDADE_ENTRADA_ESTOQUE" da tabela TBL_ENTRADA_PRODUTO_ESTOQUE para o campo "ID_ESTOQUE_ATUAL" da tabela TBL_CONTROLA_ESTOQUE

    Detalhe do código que fiz no Delphi 7 no events do onclick do botão salvar:

    // início do código no delphi 7 //
    var
    i: Integer;
    nomedocampo:String;

    begin
    DM_DadosEntradaDeProdutoEstoque.EntradaDeProduto.F irst;
    while not
    DM_DadosEntradaDeProdutoEstoque.EntradaDeProduto.E of do
    begin
    DM_DadosEntradaDeProdutoEstoque.ChamaControlaEstoq ue.Append;
    for i := 0 to
    DM_DadosEntradaDeProdutoEstoque.EntradaDeProduto.F ieldCount - 1 do
    begin
    nomedocampo:=DM_DadosEntradaDeProdutoEstoque.Entra daDeProduto.Fields[i].FieldName;
    DM_DadosEntradaDeProdutoEstoque.ChamaControlaEstoq ue.FieldByName('ID_ESTOQUE_ATUAL').Value:=
    DM_DadosEntradaDeProdutoEstoque.EntradaDeProduto.F ieldByName('ID_QUANTIDADE_ENTRADA_ESTOQUE').Value;
    end;
    DM_DadosEntradaDeProdutoEstoque.ChamaControlaEstoq ue.Post;
    DM_DadosEntradaDeProdutoEstoque.EntradaDeProduto.N ext;
    end;

    DM_DadosEntradaDeProdutoEstoque.EntradaDeProduto.P ost;
    tbsConsultaEntradaDeProduto.TabVisible:=True;
    tbsCadastraEntradaDeProduto.TabVisible:=False;

    if DM_DadosEntradaDeProdutoEstoque.TransacaoAcessaBas eDeDadosEntradaEstoque.InTransaction then// procedimento de iníco do processo de transação//
    DM_DadosEntradaDeProdutoEstoque.TransacaoAcessaBas eDeDadosEntradaEstoque.CommitRetaining// para gravação no banco de dados Produto//
    else// caso contrário//
    DM_DadosEntradaDeProdutoEstoque.TransacaoAcessaBas eDeDadosEntradaEstoque.RollbackRetaining;//se for acionado o cancelamento das novas informações, essas informações, não serão gravadas no banco de dados Produto//
    end;


    // final do código no delphi 7 //


    O programa roda sem problemas mas quando eu vou salvar o registro acontece o seguinte problema.

    Project ProjetoSistemaEmpresa.exe raised exception class EIBInterbaseError with message ‘Validation error for column ID_CODIGOCONTROLA_ESTOQUE, value ‘***nul***’, process stoped


    ALGUÉM SABE COMO RESOLVO ESSE PROBLEMA, POR FAVOR.
    SE FOR POSSÍVEL ME ENVIE O PASSO A PASSO PARA A SOLUÇÃO.
    NA TABELA DE ORIGEM "TBL_ENTRADA_PRODUTO_ESTOQUE" OS REGISTROS SÃO AUTOMÁTICOS E NOT NULL QUE FIZ VIA PROGRAMAÇÃO DIRETO CÓDIGO NO PRÓPRIO DELPHI 7.
    NA TABELA DE DESTINO "TBL_CONTROLA_ESTOQUE" OS REGISTROS NÃO SÃO AUTOMÁTICOS DEVIDO SER APENAS UMA TABELA PARA CONTROLAR O QUE ENTRA E SAI DE PRODUTOS.
    ATÉ MAIS.
    Similar Threads
X
Working...
X