Re: [delphi-br] Firebird Corrompendo apos criar SP e Tiggers

2010-05-24 Por tôpico Fabiano Moura
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

2010-05-24 Por tôpico Hudson BHTE
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

2010-05-24 Por tôpico Eduardo Melo
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

2010-05-24 Por tôpico Fabiano Almeida
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

2010-05-24 Por tôpico Eduardo Silva dos Santos
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

2010-05-24 Por tôpico magda_de_carli
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

2010-05-24 Por tôpico Iran Lima
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

2010-05-24 Por tôpico Fabiano Almeida
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]