Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Bob Bruno

[Resolvido] Como faço pra chamar uma função ou uma procedure

Recommended Posts

Pessoal,

É o seguinte:

 

Estou fazendo manutenção em uma aplicação C e C++, e preciso do seguinte:

 

Dentro da aplicação eu recebo uma variável do tipo CHAR, porem essa variável é uma DATA ( exemplo: '20100201' ).

O que acontece é que preciso SOMAR 21 dias nessa variável.

Como é do tipo CHAR, eu não consigo somar.

 

Eu criei uma function no banco de dados (minha aplicação conversa com o Oracle) que recebe esse parâmetro, converte para TO_DATE, soma os 21 dias e retorna como CHAR, até então essa seria a solução do meu problema, porém o que não estou conseguindo é CHAMAR essa função de dentro da minha aplicação.

 

Como faço pra chamar uma função ou uma procedure que envia um parâmetro e retorne um valor em aplicações C/C++ ????

 

Desde já agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites


int main(){

.

.

.

.

// chamando a função

funcao(data);

 

}

 

// criei a função

char funcao(data){

 

return data_formatada;

 

}

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo,

 

Acho que não expliquei direito.

 

Eu tenho uma função na minha aplicação.

 

Preciso chamar uma STORED PROCEDURE no banco de dados.

Tenho que passar para essa Procedure um parâmetro ( no caso minha variável CHAR ) e retornar a data formatada.

 

Na verdade o que preciso é somar 21 dias na minha variável CHAR, que é uma data, entendeu?

A única opção que achei foi criar uma procedure ou função no meu banco de dados para fazer isso, mas não estou conseguindo chamar essa procedure de dentro da minha aplicação.

Compartilhar este post


Link para o post
Compartilhar em outros sites


//Chama a função do oracle responsável por somar as datas.
sprintf(sql, "SELECT %s.CONVERT_DATA('%s') FROM DUAL", IN_Data);
sprintf((char *)StrSQL_Host2.arr, "%s",sql);
StrSQL_Host2.len = (unsigned short)strlen((char *)StrSQL_Host2.arr);

// busca dados na tabela indicada
EXEC SQL PREPARE IC24 FROM :StrSQL_Host2;
EXEC SQL DECLARE Cursor_Converte_Data CURSOR FOR IC24;

// abre cursor
EXEC SQL OPEN Cursor_Converte_Data;

// seleciona registro
EXEC SQL FETCH Cursor_Converte_Data INTO :OUT_Data:OUT_Data_ind;
												
// fecha o cursor
EXEC SQL CLOSE Cursor_Converte_Data;

RESOLVIDO.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.