Ir para conteúdo
Fórum Script Brasil

Oliveira.

Membros
  • Total de itens

    6
  • Registro em

  • Última visita

Tudo que Oliveira. postou

  1. Bom dia a todos e desde já muito obrigado por sua atenção. Estou precisando que as alterações efetuadas na estrutura da tabela TBFUNC sejam replicadas na tabela LOG_FUNC. Exemplo o DBA por algum motivo alterou na tabela TBFUNC o tamanho da coluna NOME de varchar(50) para varchar(100) a idéia do gatilho é que essa alteração seja replicada na tabela LOG_FUNC que possui uma coluna com o mesmo nome e tem que ter obrigatoriamente o mesmo tipo de dados e tamanho. Acredito que deva haver um meio de se fazer isso e na verdade criei este gatilho utilizando essas duas tabela como exemplo mas a ideia é que isso funcione para todas as tabelas de log que tenho no BD do sistema que estou desenvolvendo. Agradeço mais uma vez sua colaboração e conto com sua ajuda, grande abraço e obrigado. Segue abaixo o código do gatilho. Atenciosamente, Tadeu. CREATE TRIGGER LOG_ALT_TBFUNC ON DATABASE FOR ALTER_TABLE AS -- Variáveis Gerais DECLARE @V_COLID INT -- Variáveis da Tabela de Dados DECLARE @T_COLID VARCHAR(5) DECLARE @T_COLUNA VARCHAR(100) DECLARE @T_TIPO VARCHAR(100) DECLARE @T_TAMANHO VARCHAR(10) DECLARE @T_PREC VARCHAR(10) DECLARE @T_ISNULLABLE CHAR(1) -- Declarando Cursor DECLARE LINHA CURSOR FOR SELECT col.colid , col.name AS Coluna , tip.name AS Tipo , col.length as Tamanho , col.prec , col.isnullable FROM syscolumns col INNER JOIN sysobjects tab ON tab.id = col.id INNER JOIN systypes tip ON tip.xtype = col.xtype WHERE tab.xtype = 'U' AND tab.name = 'TBFUNC' ORDER BY col.id OPEN LINHA FETCH NEXT FROM LINHA INTO @T_COLID, @T_COLUNA, @T_TIPO, @T_TAMANHO, @T_PREC, @T_ISNULLABLE WHILE @@FETCH_STATUS = 0 BEGIN SET @V_COLID = CAST(@T_COLID AS INTEGER) + 7 IF EXISTS( SELECT col.colid , col.name AS Coluna FROM syscolumns col INNER JOIN sysobjects tab ON tab.id = col.id INNER JOIN systypes tip ON tip.xtype = col.xtype WHERE tab.xtype = 'U' AND tab.name = 'LOG_TBFUNC' AND col.id = LTRIM(RTRIM(CAST(@V_COLID AS VARCHAR(5)))) ) BEGIN IF @T_TIPO IN ('CHAR', 'VARCHAR') BEGIN -- ALTER TABLE LOG_FUNC ALTER COLUMN @T_COLUNA @T_TIPO + '(' + @T_TAMANHO + ')'; -- SEI QUE A SINTAXE DO COMANDO ALTER NÃO ACEITA ISSO MAS... END END END
  2. Meus caros, preciso de ajuda. Em um relatório preciso que um ou mais campos sejam suprimidos quando o campo anterior a ele estiver suprimido. A pergunta é a seguinte como suprimir um campo via código validando o campo anterior caso o campo "A" seja suprimido os campos "B,C e D" também sejam suprimidos? Para evitar que ocorra o que está na imagem em anexo. Atenciosamente, Tadeu.
  3. :unsure: Ao tentar se conectar a base de dados com o database expert para trocar a tabela para ser utilizada no relatório recebi a mensagem de erro dizendi que a crdb_oracle.dll não foi carregada. Alguém pode me ajudar??? Obrigado.
  4. Meus caros. Estou com o seguinte problema. Em um relatório tenho um cross-tab que funciona perfeitamente. Por motivo de necessidade do cliente precisei que uma das linhas do cross-tab fosse suprimida, sendo assim como não encontrei outra maneira de fazer, salvei o relatório com outro nome e no novo relatório criei uma section-below, copiei o cross-tab existente e colei na nova seção, removi a linha necessária deste novo cross-tab e coloquei uma formula para que fosse suprimida a section de acordo com o valor de um parâmetro passado no relatório. O resultado não foi muito bom, porque independentemente do valor do parâmetro não imprime nem um nem o outro. Sendo assim peço a ajuda dos colegas. Obrigado. Tadeu
  5. Como inibir a impressão de uma linha de um relatório cross-tab em função de um parâmetro. Conto com a ajuda dos colegas.
×
×
  • Criar Novo...