Re: [delphi-br] Firebird Corrompendo apos criar SP e Tiggers
Tenta fazer o seguinte comando: gfix -v -full -user SYSDBA -password masterkey caminho_do_banco\banco Ninguém pode estar conectado no banco para realizar este comando. Se retornar erro, faz o seguinte comando: gfix -mend -ig -user SYSDBA -password masterkey caminho_do_banco\banco {Prepara o banco para backup} gbak -b -g -t -ig -user SYSDBA -password masterkey caminho_do_banco\banco caminho_para_o_backup\backup {Realiza o backup} gbak -C -user SYSDBA -password masterkey caminho_do_backup\backup caminho_do_banco\banco {Restaura o backup} É ideal que não restaure o banco sobrescrevendo o outro banco (banco original), pois dependendo do nível da corrupção, poderá ter problemas. Fabiano 2010/5/22 Roni Rodrigo ronirodr...@yahoo.com.br mas tem q ter tempo pra ler td isso né?? pq vc nao manda soh a procedure ou trigger q ta dando problema... e explica direito esse negócio de corrompendo.. corromprendo como? o problema é com a integridade dos dados ou com a estrutura da tabela?? o/ Em 22/05/2010 10:56, Iran Lima escreveu: Olá Pessoal, Estou com um problema aqui que começou após criar umas Procedures e Triggers para controle de Estoque. Criei uma tabela de movimentação de produtos e nela as triggers de atualização de estoque na tabela do produto. Para gravar a movimentação do produto uso uma SP que passado um pedido como parâmetro lança todos os itens do mesmo na tabela de movimentação Funcionou tudo certo como eu desejava porem a tabela de movimentação do produto começou a corromper. Se alguém poder me ajudar serei muito grato. /*** ***/ / Stored Procedures / /*** ***/ CREATE PROCEDURE SP_EXTB_COMPRA ( NR_DOC VARCHAR(10), COD_FORN VARCHAR(5)) AS BEGIN EXIT; END^ CREATE PROCEDURE SP_EXTB_LOTE ( COD_EMP INTEGER, COD_LOTE VARCHAR(6)) AS BEGIN EXIT; END^ CREATE PROCEDURE SP_EXTB_VENDA ( COD_EMP INTEGER, COD_PED INTEGER) AS BEGIN EXIT; END^ CREATE PROCEDURE SP_MOVB_COMPRA ( NR_DOC VARCHAR(10), COD_FORN VARCHAR(5)) AS BEGIN EXIT; END^ CREATE PROCEDURE SP_MOVB_LOTE ( COD_EMP INTEGER, COD_LOTE VARCHAR(6)) AS BEGIN EXIT; END^ CREATE PROCEDURE SP_MOVB_VENDA ( COD_EMP INTEGER, COD_PED INTEGER) AS BEGIN EXIT; END^ SET TERM ; ^ /*** ***/ / Tables / /*** ***/ CREATE TABLE MOV_B ( COD_MPROD INTEGER NOT NULL, COD_PROD VARCHAR(5) NOT NULL, TELA CHAR(1) NOT NULL, DATA_MOVI TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL, QTD_MOV NUMERIC(12,3) DEFAULT 0 NOT NULL, COD_EMP INTEGER NOT NULL, COD_PED INTEGER, COD_FORN VARCHAR(5), NR_DOC VARCHAR(10), NR_PRO VARCHAR(6), COD_DEV VARCHAR(5), TIPO_SAI CHAR(1), COD_LOTE VARCHAR(6) ); /*** ***/ / Triggers for tables / /*** ***/ /* Trigger: TG_ADD_ESTOQUE */ CREATE TRIGGER TG_ADD_ESTOQUE FOR MOV_B ACTIVE BEFORE INSERT POSITION 0 AS declare variable VQTDE NUMERIC(12,3); begin /* Adiciona Movimento ao estoque */ IF(NEW.TIPO_SAI = 'S') THEN VQTDE = -NEW.QTD_MOV; ELSE IF(NEW.TIPO_SAI = 'E') THEN VQTDE = +NEW.QTD_MOV; IF ((NEW.TIPO_SAI = 'S') OR (NEW.TIPO_SAI = 'E')) THEN UPDATE EST_PROD SET QTD_ATU_B = QTD_ATU_B + :VQTDE WHERE COD_PROD = NEW.COD_PROD; end ^ /* Trigger: TG_REM_ESTOQUE */ CREATE TRIGGER TG_REM_ESTOQUE FOR MOV_B ACTIVE AFTER DELETE POSITION 0 AS declare variable VQTDE NUMERIC(12,3); begin /* Adiciona Movimento ao estoque */ IF(OLD.TIPO_SAI = 'S') THEN VQTDE = +OLD.QTD_MOV; ELSE IF(OLD.TIPO_SAI = 'E') THEN VQTDE = -OLD.QTD_MOV; IF ((OLD.TIPO_SAI = 'S') OR (OLD.TIPO_SAI = 'E')) THEN UPDATE EST_PROD SET QTD_ATU_B = QTD_ATU_B + :VQTDE WHERE COD_PROD = OLD.COD_PROD; end ^ SET TERM ; ^ /*** ***/ / Stored Procedures / /*** ***/ SET TERM ^ ; ALTER PROCEDURE SP_EXTB_COMPRA ( NR_DOC VARCHAR(10), COD_FORN VARCHAR(5)) AS BEGIN /* Deleta Movimento de Venda */ DELETE FROM MOV_B WHERE NR_DOC = :NR_DOC AND COD_FORN = :COD_FORN AND TELA = 'C'; END ^ ALTER PROCEDURE SP_EXTB_LOTE ( COD_EMP INTEGER, COD_LOTE VARCHAR(6)) AS BEGIN /* Deleta
[delphi-br] ERRO: Zeos online
Ola a todos. gente estou com um probleminha ao tentar conectar a um DB MySQL online em uma hospedagem pelo zeos 6.6.1. Consigo fazer a conexao, mas apos 5 segundos qualquer tarefa da um erro SQL Error: MySQL server has gone away. Alguem sabe resolver isso... Ha ja tentei usar o Munitor!!! grato [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Ajuda para analisar multiplos lançamentos
Ola Pessoal, Estou precisando efetuar baixa de múltiplas contas, porem surge a dúvida se o usuario definir que esta pagando ao total valor maior que seria, sendo que esta lançado os juros pagos, como vou definir para que conta é esse juros? E se ele pagar parcial o valor como vou saber qual conta foi pago parcial. Gostaria da ajuda de vcs para me ajudarem nessa analise. grato -- Atenciosamente Eduardo Melo Bacharelado em Sistemas de Informação www.meloshospedagem.com.br Porque Deus amou o mundo de tal maneira que deu o seu Filho unigênito, para que todo aquele que nele crê não pereça, mas tenha a vida eterna. (João 3:16) [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Ajuda para analisar multiplos lançamentos
Olá, vc pode fazer a análise de data de vencimento, se ela for anterior a atual, então nela correrá juros. Vc pode dividir o valor de juros por quantidade de lançamentos a ser baixados em atraso e ratear por igual para cada lançamento ou dividir o valor do juro pela quantidade total de dias em atraso e depois multiplicar esse valor pela quantidade de dias atrasados para cada lançamento. pagamento parcial = valor pago valor do lançamento. Vc pode ter um campo de controle (lógico ou smallint) para marcar quando pago, assim se for pago algum lançamento com desconto (portanto valor pago valor lançamento) marca o campo PAGO e assim vc vai saber quais lançamentos estão pagos ou não. Sds, Fabiano Em 24/05/2010 15:49, Eduardo Melo escreveu: Ola Pessoal, Estou precisando efetuar baixa de múltiplas contas, porem surge a dúvida se o usuario definir que esta pagando ao total valor maior que seria, sendo que esta lançado os juros pagos, como vou definir para que conta é esse juros? E se ele pagar parcial o valor como vou saber qual conta foi pago parcial. Gostaria da ajuda de vcs para me ajudarem nessa analise. grato -- Atenciosamente Eduardo Melo Bacharelado em Sistemas de Informação www.meloshospedagem.com.br Porque Deus amou o mundo de tal maneira que deu o seu Filho unigênito, para que todo aquele que nele crê não pereça, mas tenha a vida eterna. (João 3:16) [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] ERRO: Zeos online
O MySQL é bem exigente com a conexão, qualquer anormalidade no pacote ele derruba a conexão. Você deve usar uma versão mais nova do Zeos que tem a capacidade de reconectar quando isso ocorra. Caso não consiga com Zeos, tente o Mydac da DevArt, www.devart.com/mydac Att, ... Eduardo Silva dos Santos DRD SISTEMAS (27) 3218-4201 (27) 9961-7095 MSN: eduardo@gmail.com Site: http://www.drdsistemas.com.br/ ... Em 24 de maio de 2010 06:13, Hudson BHTE hudson_tor...@yahoo.com.brescreveu: Ola a todos. gente estou com um probleminha ao tentar conectar a um DB MySQL online em uma hospedagem pelo zeos 6.6.1. Consigo fazer a conexao, mas apos 5 segundos qualquer tarefa da um erro SQL Error: MySQL server has gone away. Alguem sabe resolver isso... Ha ja tentei usar o Munitor!!! grato [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM * Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages * Para falar com o moderador, envie um e-mail para: delphi-br-ow...@yahoogrupos.com.br Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ * Para sair deste grupo, envie um e-mail para: delphi-br-unsubscr...@yahoogrupos.com.br * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
[delphi-br] DatabaseShutdown no FIBPlus
Olá, Instalei o pacote FIBPlus v 6.9.9 para usar com Firebird 2.1. Preciso fazer Shutdown no banco de dados via aplicação com a opção 'single', para ter somente uma conexão permitida mas não encontrei esta opção nos modos. Alguém sabe como fazer isto? Atualmente uso IBX mas também não consigo este tipo de shutdown com ele. Obrigada, Magda
RES: [delphi-br] Firebird Corrompendo apos criar SP e Tiggers
Opa foi mau ai. Seguinte... ta corrompendo apenas a tabela de movimentação do produto, nela tem as triggers que alteram o estoque, e ela é povoada com SP que pegam o pedido passado por parâmetro, e lança o movimento de estoque, é simples, já tenhu outros bancos q funcionam assim e não da problema, só que neste após ums 50 registros na tabela de movimento ela corrompe. Quando corrompe so da pra recuperar com gbak se eu excluir a tabela. De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em nome de Roni Rodrigo Enviada em: sábado, 22 de maio de 2010 19:20 Para: delphi-br@yahoogrupos.com.br Assunto: Re: [delphi-br] Firebird Corrompendo apos criar SP e Tiggers mas tem q ter tempo pra ler td isso né?? pq vc nao manda soh a procedure ou trigger q ta dando problema... e explica direito esse negócio de corrompendo.. corromprendo como? o problema é com a integridade dos dados ou com a estrutura da tabela?? o/ Em 22/05/2010 10:56, Iran Lima escreveu: Olá Pessoal, Estou com um problema aqui que começou após criar umas Procedures e Triggers para controle de Estoque. Criei uma tabela de movimentação de produtos e nela as triggers de atualização de estoque na tabela do produto. Para gravar a movimentação do produto uso uma SP que passado um pedido como parâmetro lança todos os itens do mesmo na tabela de movimentação Funcionou tudo certo como eu desejava porem a tabela de movimentação do produto começou a corromper. Se alguém poder me ajudar serei muito grato. /*** ***/ / Stored Procedures / /*** ***/ CREATE PROCEDURE SP_EXTB_COMPRA ( NR_DOC VARCHAR(10), COD_FORN VARCHAR(5)) AS BEGIN EXIT; END^ CREATE PROCEDURE SP_EXTB_LOTE ( COD_EMP INTEGER, COD_LOTE VARCHAR(6)) AS BEGIN EXIT; END^ CREATE PROCEDURE SP_EXTB_VENDA ( COD_EMP INTEGER, COD_PED INTEGER) AS BEGIN EXIT; END^ CREATE PROCEDURE SP_MOVB_COMPRA ( NR_DOC VARCHAR(10), COD_FORN VARCHAR(5)) AS BEGIN EXIT; END^ CREATE PROCEDURE SP_MOVB_LOTE ( COD_EMP INTEGER, COD_LOTE VARCHAR(6)) AS BEGIN EXIT; END^ CREATE PROCEDURE SP_MOVB_VENDA ( COD_EMP INTEGER, COD_PED INTEGER) AS BEGIN EXIT; END^ SET TERM ; ^ /*** ***/ / Tables / /*** ***/ CREATE TABLE MOV_B ( COD_MPROD INTEGER NOT NULL, COD_PROD VARCHAR(5) NOT NULL, TELA CHAR(1) NOT NULL, DATA_MOVI TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL, QTD_MOV NUMERIC(12,3) DEFAULT 0 NOT NULL, COD_EMP INTEGER NOT NULL, COD_PED INTEGER, COD_FORN VARCHAR(5), NR_DOC VARCHAR(10), NR_PRO VARCHAR(6), COD_DEV VARCHAR(5), TIPO_SAI CHAR(1), COD_LOTE VARCHAR(6) ); /*** ***/ / Triggers for tables / /*** ***/ /* Trigger: TG_ADD_ESTOQUE */ CREATE TRIGGER TG_ADD_ESTOQUE FOR MOV_B ACTIVE BEFORE INSERT POSITION 0 AS declare variable VQTDE NUMERIC(12,3); begin /* Adiciona Movimento ao estoque */ IF(NEW.TIPO_SAI = 'S') THEN VQTDE = -NEW.QTD_MOV; ELSE IF(NEW.TIPO_SAI = 'E') THEN VQTDE = +NEW.QTD_MOV; IF ((NEW.TIPO_SAI = 'S') OR (NEW.TIPO_SAI = 'E')) THEN UPDATE EST_PROD SET QTD_ATU_B = QTD_ATU_B + :VQTDE WHERE COD_PROD = NEW.COD_PROD; end ^ /* Trigger: TG_REM_ESTOQUE */ CREATE TRIGGER TG_REM_ESTOQUE FOR MOV_B ACTIVE AFTER DELETE POSITION 0 AS declare variable VQTDE NUMERIC(12,3); begin /* Adiciona Movimento ao estoque */ IF(OLD.TIPO_SAI = 'S') THEN VQTDE = +OLD.QTD_MOV; ELSE IF(OLD.TIPO_SAI = 'E') THEN VQTDE = -OLD.QTD_MOV; IF ((OLD.TIPO_SAI = 'S') OR (OLD.TIPO_SAI = 'E')) THEN UPDATE EST_PROD SET QTD_ATU_B = QTD_ATU_B + :VQTDE WHERE COD_PROD = OLD.COD_PROD; end ^ SET TERM ; ^ /*** ***/ / Stored Procedures / /*** ***/ SET TERM ^ ; ALTER PROCEDURE SP_EXTB_COMPRA ( NR_DOC VARCHAR(10), COD_FORN VARCHAR(5)) AS BEGIN /* Deleta Movimento de Venda */ DELETE FROM MOV_B WHERE NR_DOC = :NR_DOC AND COD_FORN = :COD_FORN AND TELA = 'C'; END ^ ALTER PROCEDURE SP_EXTB_LOTE ( COD_EMP INTEGER, COD_LOTE VARCHAR(6)) AS BEGIN /* Deleta Movimento de Lote */ DELETE FROM MOV_B WHERE COD_EMP = :COD_EMP AND COD_LOTE = :COD_LOTE AND TELA = 'L'; END ^ ALTER PROCEDURE SP_EXTB_VENDA ( COD_EMP INTEGER, COD_PED INTEGER) AS BEGIN /* Deleta Movimento de Venda */ DELETE FROM MOV_B WHERE COD_EMP = :COD_EMP AND COD_PED = :COD_PED AND TELA = 'V'; END ^
Re: [delphi-br] ERRO: Zeos online
Tente atualizar o seu Zeos, instale a 6.6.6 (última estável) que tem um monte de coisa corrigida Sds, Fabiano. Em 24/05/2010 06:13, Hudson BHTE escreveu: Ola a todos. gente estou com um probleminha ao tentar conectar a um DB MySQL online em uma hospedagem pelo zeos 6.6.1. Consigo fazer a conexao, mas apos 5 segundos qualquer tarefa da um erro SQL Error: MySQL server has gone away. Alguem sabe resolver isso... Ha ja tentei usar o Munitor!!! grato [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]