Archive for May, 2008

Que versão de Oracle estou executando

Tuesday, May 6th, 2008

Se estamos usando SqlPlus e queremos saber que versão de Oracle é o banco de dados ao que estamos conectado, a sentencias para decifrar são as seguintes:

SET SERVEROUTPUT ON SIZE 10000
DECLARE
VERSION1 VARCHAR2(59);
VERSION2 VARCHAR2(59);
BEGIN
dbms_utility.db_version(VERSION1,VERSION2);
DBMS_OUTPUT.PUT_LINE(VERSION1);
DBMS_OUTPUT.PUT_LINE(VERSION2);
END;
/

Version1, mostra a versão do banco de dados.
Version2, mostra com que versão é compatível a instancia, baseado na configuração setada no INIT.ORA, se este parâmetro de compatibilidade não está setado, devolverá null.

Fabricio De los Santos
Gerência de Projetos –
Consultoria GeneXus –
ERP – Sistemas de Missão Crítica – Bancos de Dados.

Veja meus blogs em:
www.fabriciodelossantos.com

Como usar Case em Oracle

Tuesday, May 6th, 2008

(Postado originalmente no dia 23/04/07)

Pode acontecer que necessitemos devolver um texto ou valor dependendo dum dado duma coluna numa tabela Oracle.
Por exemplo:
Se temos uma tabela de nome Empleado_Salarios com os campos
Empleado, Salario
e com valores
Agustin, 20.000
Ignacio, 1.500
Nicolás, 10.000

E num “select” queremos em vez de mostrar os valores exatos e mostrar categorias, podemos usar a sentencia CASE de Oracle como mostra o seguinte exemplo.

Select Empleado,
CASE
when Salario < 5.000 then ‘Salario Bajo’
when Salario >= 5.000 and Salario < 15.000 then ‘Salario Medio’
else ‘Salario Alto’
END Categoria_Salario
from Empleados_Salarios;

A sentencia contem as palavras reservadas “when” para estabelecer as condições, “else” para o caso que não cumpra uma das condições when, e “CASE” e “END” que encerram a cláusula condicional, coloquei a palavra “Categoria_Salario” como alias duma coluna de categorias.

Outro exemplo simples poderia ser:
Tenho uma tabela de nome Stock com 3 campos:

Material char(20),
Entradas number(10),
Saidas number(10)

E quero saber os saldos positivos de Entradas – Saidas, e no caso que as Saidas sejam maiores que as Entradas, não quero mostrar o valor negativo, senão um valor 0.
Temos que ter em consideração os valores nulos que poderia ter de Entradas ou Saídas

O select seria o seguinte:

Select Material,Nvl(entradas,0) Entradas, Nvl(saidas,0) Saidas,
Case Nvl(entradas,0) – Nvl(saidas,0) > 0 then Nvl(entradas,0) – Nvl(saidas,0)
else 0
End Diferencia
from Stock;

Fabricio De los Santos
Gerência de Projetos –
Consultoria GeneXus –
ERP – Sistemas de Missão Crítica – Bancos de Dados.

Veja meus blogs em:
www.fabriciodelossantos.com

Error ORA-00957 GeneXus Oracle duplicate column name

Monday, May 5th, 2008

(Postado originalmente no dia 17/04/07)

Duplicate column name ou ORA-00957 com oracle, no meu caso Visual Basic, se produz basicamente por um erro comum que pode acontecer.

Se deve basicamente a que possivelmente no código tanto seja num New ou num When Duplicate se está fazendo referencia a um atributo 2 vezes por erro.

Exemplo:

New
CliCod=&CliCod
CliNom=&CliNom
CliEnd=&CliEnd
CliEnd=&Endereco
EndNew

Também pode acontecer num When duplicate não documentado neste exemplo.
É um erro simples de cometer geralmente quando se copiam códigos de um objeto para outro.

Fabricio De los Santos
Gerência de Projetos –
Consultoria GeneXus –
ERP – Sistemas de Missão Crítica – Bancos de Dados.

Veja meus blogs em:
www.fabriciodelossantos.com

error CS0006: Arquivo de metadados ‘vjslib.dll’ não pôde ser encontrado compilando .NET com GeneXus 90

Monday, May 5th, 2008

(Postado originalmente no dia 16/04/07)

Geralmente acontece quando temos um modelo de GeneXus em Visual Basic ou qualquer outro gerador que não sea ।NET e criamos outro modelo para testar algo .NET e não temos instalado o Visual J#

Pode fazer o download aqui

e solucionar o problema.

Fabricio De los Santos
Gerência de Projetos –
Consultoria GeneXus –
ERP – Sistemas de Missão Crítica – Bancos de Dados.

Veja meus blogs em:
www.fabriciodelossantos.com

Obter Valor de Autonumber em procedimiento genexus

Monday, May 5th, 2008

(Postado originalmente no dia 21/03/07)

Algo que geralmente nos perguntamos ao utilizar um campo autonumber é ao momento de usar num “New” num procedimento, como obter o valor do campo que acabamos de inserir?

Exemplo:

parm(in:&Var1,in:&Var2,in:&Var3,out:&VarAuto);
//Source

New //Tabela
Att1=&Var1
Att2=&Var2
Att3=&Var3
EndNew

&VarAuto=Att0

Att0 é a chave autonumber gerada para essa tabela.

Fabricio De los Santos
Gerência de Projetos –
Consultoria GeneXus –
ERP – Sistemas de Missão Crítica – Bancos de Dados.

Veja meus blogs em:
www.fabriciodelossantos.com

Server Error in ‘/services’ Application: genexus e .NET

Saturday, May 3rd, 2008

(Postado originalmente no dia 29/11/06)

Gerando ।NET com Genexus 9 um erro que aconteceu foi:

Server Error in ‘/services’ Application:

O problema é que estava compilando com Framework 2.0 e o IIS estava setado para 1.1 como mostra a imagem.
A solução foi setar a versão correta de framework na aba APNET do IIS.
Isso geralmente acontece quando temos instalado o 1.1, executando aplicações e depois instalamos o 2.0
Após setado corretamente paramos, e levantamos o IIS e já está funcionando o objeto corretamente.Informação obtida de: Manual do Gerador .NET

Texto:

Server Error in ‘/services’ Application:
System.BadImageFormatException: The format of the file ‘HXXXX’ is invalid.
File name: “reorganization”

Motivos/Soluções:

  • Se esta compilando com framework 2.0 y executando com framework 1.1 ou inferior
  • Se esta gerando com a versão 8.0 de GeneXus ou inferior y executando com framework 2.0.

Fabricio De los Santos
Gerência de Projetos –
Consultoria GeneXus –
ERP – Sistemas de Missão Crítica – Bancos de Dados.

Veja meus blogs em:
www.fabriciodelossantos.com

Error Loading GemBox.ExcelLite.dll genexus e .Net quando queremos gerar arquivo excel

Saturday, May 3rd, 2008

(Postado originalmente no dia 30/11/06)

Quando queremos gerar um arquivo Excel com GeneXus e .NET em algum caso podemos nos encontrar com o seguinte erro:

Error Loading GemBox.ExcelLite.dll

O problema é que não temos as livrarias correspondentes para gerar Excel.
Podemos também gerar Excel usando Jakarta Poi.
Devemos conseguir as seguintes dlls e copiar as mesmas no diretório web/bin

Apache.Xalan2.dll
Apache.Xerces2.dll
Apache.Xml.Commons.dll
Jakarta.Commons.Logging.dll
Jakarta.POI.dll
JSharpLib.dll

Isto funciona com:
– .NET Framework 2.0
– JSharp framework 2.0

Verificar nas propriedades de execução do modelo GeneXus que o compilador C# este apontado ao Framework 2.o

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\csc.exe

Verificar nas propriedades de execução do modelo GeneXus que o compilador C# este अपोंतादो ao Framework 2.o

Alem disso temos que considerar que esteja correto o set da versão do framework para o IIS na aba ASPNET tal como mencionei num post anterior.

Após de ter setado tudo corretamente, podemos encontrar outro erro:

“Could not load or assembly ‘Jakarta.POI’ or one of its dependencies”

O SAC diz que provavelmente não está instalado o JSharp 2।0, mas quando me encontrei com o problema não foi esse meu caso.

Solução:

Tive que apagar o diretório “web” e seus subdiretórios (prévio backup das dlls jakarta, images, etc), apagar o diretório virtual, compilar um main, copiar as dlls imagens e demais ao seus diretórios correspondentes, logo fazemos o build do objeto que chama ao gerador do Excel e sua correspondente compilação.
Existe muita informação relacionada no GxTechnical baixo o SAC 19780.

Fabricio De los Santos
Gerência de Projetos –
Consultoria GeneXus –
ERP – Sistemas de Missão Crítica – Bancos de Dados.

Veja meus blogs em:
www.fabriciodelossantos.com

Server Error in ‘/’ Application .Net genexus

Friday, May 2nd, 2008

(Postado originalmente no dia 21/11/06)

Server Error in ‘/’ Application.

The resource cannot be found.

Se o erro acontece quando estamos gerando .Net com Genexus, um dos motives deste erro pode ser porque não existe o diretório virtual.

Solução, se não temos arquivos externos que não queremos perder, podemos apagar o diretório web debaixo do data00X, e fazer um build all e compilar o main novamente.

Fabricio De los Santos
Gerência de Projetos –
Consultoria GeneXus –
ERP – Sistemas de Missão Crítica – Bancos de Dados.

Veja meus blogs em:
www.fabriciodelossantos.com

Página não pode ser exibida IIS .NET genexus

Friday, May 2nd, 2008

(Postado originalmente no dia 09/11/06)


Este erro pode dar quando logo após ter instalado o IIS, e digitamos a url HTTP://localhost para testar a se carrega a pagina de inicio do IIS a mesma não aparece.
Um dos motivos pode ser que instalamos o IIS posteriormente a ter instalado o .Net Framework.

Uma das possíveis soluciones, é desinstalar as versões do framework que estejam instaladas no PC, desinstalar o IIS, reiniciar o PC e logo instalar primeiro o IIS e depois o .Net framework com qual vamos trabalhar.

Fabricio De los Santos
Gerência de Projetos –
Consultoria GeneXus –
ERP – Sistemas de Missão Crítica – Bancos de Dados.

Veja meus blogs em:
www.fabriciodelossantos.com

Explain Plan para Otimizar consultas sql oracle

Friday, May 2nd, 2008

(Postado originalmente no dia 04/10/06)

Quando o resultado de uma consulta demora muito e queremos saber o porquê, podemos ver um detalhe do que a consulta está fazendo.
Passos a seguir usando o sqlplus:
1)
alter session set sql_trace=true;

2)
explain plan for select …….

3)
select operation ||’ ‘||options||’ ‘||object_name from plan_table
connect by prior id=parent_id
start with id=1;

Informação obtida de: ADP

Fabricio De los Santos
Gerência de Projetos –
Consultoria GeneXus –
ERP – Sistemas de Missão Crítica – Bancos de Dados.

Veja meus blogs em:
www.fabriciodelossantos.com