Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Diogo M

Ligação a Base de Dados Oracle através do Visual Studio 2008

Mensagens Recomendadas

Diogo M

Boas

Estou a tentar criar um projecto em Visual Studio 2008 que me permita aceder a uma base de dados ORACLE.

Queria pedir se me podiam ajudar,  fornecendo um Guia ou um Tutorial, ou até mesmo dicas para a realização do mesmo.

Muito Obrigado

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
apocsantos

      Bom dia,

    O google é sempre uma boa ajuda, de qualquer das formas deixo um exemplo minimamente adaptado.

#include <DbManager.h>
#include <iostream>

using namespace std;

using namespace oracle::occi;

const string sqlString("select numero,nome , data from emp");

const string dateFormat("DD-MON-YYYY HH24:MI:SS");

int main(int argc, char **argv)

{
    if (argc != 2)
    {
        cerr << "\nUsage: " << argv[0] << " <db-user-name>\n" << endl;
        exit(1);
    }
    
    // inicia os serviços oracle
    
    DbManager* dbm = NULL;
    
    OracleServices* oras = NULL;
    
    Statement *stmt = NULL;
    
    ResultSet *resultSet = NULL;
    
    try
    {
        
        // Obtem o Objecto dos OracleServices com os argumentos definidos.
        
        dbm = new DbManager(userName);
        
        oras = dbm->getOracleServices();
        
        // Captura a ligação
        
        Connection * conn = oras->connection();
        
        // cria um statment
        
        stmt = conn->createStatement(sqlString);
        
        int empno;
        
        string ename;
        
        Date hireDate;
        
        string dateAsString;
        
        // Executa a query para obter o resultset
        
        resultSet = stmt->executeQuery();
        
        while (resultSet->next())
        {
            
            empno = resultSet->getInt(1);  // recebe a primeira coluna da query;
            
            ename = resultSet->getString(2);  // recebe a segunda coluna da query
            
            hireDate = resultSet->getDate(3);  // recebe a terceira coluna da query
            
            dateAsString="";
            
            //Não recebe nullo enquanto os dados não tiverem sido todos lidos
            
            if (resultSet->isNull(1))
            {
                cout << "numero de emprego é nulo... " << endl;
            }
            if (resultSet->isNull(2))
            {
                cout << "Nome do empregado é nulo..." << endl;
            }
            if (resultSet->isNull(3))
            {
                cout << "data é nulo..." << endl;
            }
            else
            {
                dateAsString=Data.toText(dateFormat); //converte a data pata texto
            }
            cout << numero << "\t" << nome << "\t" << dataAsString << endl;
            
        }
        
        // Fecha a declaração do resulset 
        
        stmt->closeResultSet(resultSet);
        
        conn->terminateStatement(stmt);
        
        // Fecha a ligação
        
        delete dbm;
        
    }
    catch (SQLException& ex)
    {
        if (dbm != NULL)
        {
            dbm->rollbackActions(ex, stmt, resultSet); // Liberta os recursos e executa o rollback
        }
    }
    catch (ExoException& ex1)
    {
        cerr << "\nCaught ExoException:\n" << ex1.getExceptionText() << endl;
        exit(2);
    }
    
    return 0;
}

    Com este exemplo já tens por onde começar. Na Oracle Developers Network tens muito mais informação e webcasts específicos, alguns dos quais recomendo vivamente.

Cordiais cumprimentos,

Apocsantos


"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.