Arquivo de maio, 2014

A linguagem Python possui vários módulos adicionais e você pode usar o módulo cx_Oracle que é importado para fornecer a API para acessar o banco de dados Oracle.

Download: http://cx-oracle.sourceforge.net/

Oracle API para Python

1 –  Após efetuar o download para seu sistema operacional no link acima abra o instalador:

Local

Local

2 – Aguarde o andamento da instalação:

Andamento

Andamento

3 – Clique em finalizar para terminar a instalação:

Concluir

Concluir

4 – Abra sua IDE preferida e utilize o código abaixo:

Programa

Programa

Exemplo:

Neste exemplo criamos uma conexão com o Oracle Database XE utilizando a API Oracle para Python.

Python

#!/usr/bin/env python
# -*- coding: latin-1 -*-
# Desenvolvimento Aberto
# ConexaoOracle.py

# importa modulos
from Tkinter import *
import tkMessageBox
import cx_Oracle

# Cria formulario
formulario = Tk(className='Oracle XE - 11g')
formulario.geometry("300x200+300+300")

# Cria janela para menssagem
janela = Tk()
janela.wm_withdraw()

# Evento para o botão
def conectar():
    # Cria string de conexão
    sconexao = eusuario.get()+ "/" + esenha.get() + "@localhost/" + esid.get()
    try:
        con = cx_Oracle.connect(sconexao)
        tkMessageBox.showinfo(title="Menssagem", message="Conectado com Sucesso!", parent=janela)
    except ValueError:
        tkMessageBox.showinfo(title="Menssagem", message="Erro de Conexão", parent=janela)

# Cria componentes
titulo = Label(formulario, text="Oracle XE - Python")

lusuario = Label(formulario, text="Digite seu usuário:")
lsenha = Label(formulario, text="Digite sua senha:")
lsid = Label(formulario, text="Digite o Oracle SID:")

eusuario = Entry(formulario)
esenha = Entry(formulario, show="*")
esid = Entry(formulario)

botao = Button(formulario, text="Conectar", command=conectar)

# Cria layout de tela
titulo.grid(row=0, sticky=W+E+N+S, pady=10)
lusuario.grid(row=1, sticky=W, padx=20)
eusuario.grid(row=1, column=1, pady=5)
lsenha.grid(row=2,sticky=W, padx=20)
esenha.grid(row=2, column=1, pady=5)
lsid.grid(row=3, sticky=W, padx=20)
esid.grid(row=3, column=1, pady=5)
botao.grid(row=5, sticky=W, pady=20, padx=20)

# Loop do tcl
mainloop()

 

É possível utilizar técnicas especiais de programação para criar, modificar e executar programas e procedimentos ABAP em tempo de execução. Para criar um novo programa dinâmico em tempo de execução de um programa ABAP, é necessário utilizar uma tabela interna. Para esta finalidade, pode-se criar uma tabela interna com uma única coluna de tipo de caracteres e uma largura de linha de 72 caracteres.

Programa Dinâmico

Programa Dinâmico

Exemplo:

Neste exemplo criamos um programa no qual a partir dele criamos um programa dinâmico e o executamos usando o Abap Runtime.

Abap

*&---------------------------------------------------------------------*
*& Report  ZDINAMICO
*&
*&---------------------------------------------------------------------*
*& Desevolvimento Aberto
*& Programa Dinamico - Tecnicas Especiais
*&---------------------------------------------------------------------*

REPORT  ZDINAMICO.

* Cria tabela interna do tipo codigo fonte
Data Codigo TYPE TABLE OF rssource-LINE.

* Adiciona linhas do programa na tabela interna
APPEND '* Desenvolvimento Aberto' TO CODIGO.
APPEND '* Dinamic program' TO CODIGO.
APPEND '' TO CODIGO.
APPEND '* Este programa foi criado utilizando:' TO CODIGO.
APPEND '* Abap Special Techniques' TO CODIGO.
APPEND '' TO CODIGO.
APPEND 'REPORT ZMEUCODIGO.' TO CODIGO.
APPEND '' TO CODIGO.
APPEND 'WRITE : / ''Este código foi criado dinamicamente''.' TO CODIGO.
APPEND 'WRITE : / ''Este programa será inserido na bibilioteca de programas''.' TO CODIGO.

* Insere o programa na biblioteca
INSERT REPORT 'ZMEUCODIGO' FROM CODIGO.

* Executa programa em tempo de execução
SUBMIT ZMEUCODIGO.

MFC fornece dois conjuntos distintos de classes para acessar banco de dados: um para permitir o acesso através de DAO, e outros através de ODBC. O método DAO é geralmente usado para acessar bancos de dados desktop e o método ODBC para conectar-se servidores de banco de dados relacionais através de uma fonte de dados.

MSSQL - ODBC

MSSQL – ODBC

ODBC

O Microsoft Open Database Connectivity (ODBC) é uma interface de linguagem de programação C, que torna possível que aplicativos acessem dados de uma variedade de sistemas de gerenciamento de banco de dados (SGBD). ODBC é escrita em baixo nível, e uma interface de alto desempenho que é projetado especificamente para armazenamentos de dados relacionais.

O Microsoft Foundation Classes (MFC) fornece bibliotecas de classes para programação com Open Database Connectivity (ODBC).

CDatabase

Representa uma conexão com uma fonte de dados, através do qual você pode operar com esta fonte de dados.

Conectando ao banco de dados MSSQL Server

1 – Crie um novo projeto C++ MFC Application Dialog Based, coloque no dialogo 4 componentes Static Text, 3 componentes Edit Control, e um Button, disponha os componentes como na figura abaixo:

Design

Design

2 – No painel de controle escolha a opção ferramentas administrativas e abra a opção Fontes de Dados ODBC para 32 ou 64bits, na guia DNS de Usuário, clique em adicionar e selecione o driver correspondente ao MSSQL:

Driver

Driver

3 – Crie os parâmetros de conexão contendo um nome para sua fonte de dados no qual será seu DNS e crie os parâmetros comuns para se conectar ao MSSQL, teste sua conexão e clique em OK:

MSQL -DNS

MSQL -DNS

4 – Use os trechos marcados do código abaixo para completar seu código gerado automaticamente

Exemplo:

Neste exemplo efetuamos uma conexão ao banco de dados através de um DNS ODBC usando a classe CDatabase.

C++


// MSSQLSever-cppDlg.cpp : implementation file
//

#include "stdafx.h"
#include "MSSQLSever-cpp.h"
#include "MSSQLSever-cppDlg.h"
#include "afxdialogex.h"

// Inclui classe de banco de dados MFC
#include "afxdb.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#endif

CMSSQLSevercppDlg::CMSSQLSevercppDlg(CWnd* pParent /*=NULL*/)
	: CDialogEx(CMSSQLSevercppDlg::IDD, pParent)
{
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CMSSQLSevercppDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialogEx::DoDataExchange(pDX);
	DDX_Control(pDX, IDC_EDIT1, m_usuario);
	DDX_Control(pDX, IDC_EDIT2, m_senha);
	DDX_Control(pDX, IDC_EDIT3, m_sid);
}

BEGIN_MESSAGE_MAP(CMSSQLSevercppDlg, CDialogEx)
	ON_WM_PAINT()
	ON_WM_QUERYDRAGICON()
	ON_BN_CLICKED(IDC_BUTTON1, &CMSSQLSevercppDlg::OnBnClickedButton1)
END_MESSAGE_MAP()

BOOL CMSSQLSevercppDlg::OnInitDialog()
{
	CDialogEx::OnInitDialog();

	SetIcon(m_hIcon, TRUE);
	SetIcon(m_hIcon, FALSE);		

	return TRUE;
}

void CMSSQLSevercppDlg::OnPaint()
{
	if (IsIconic())
	{
		CPaintDC dc(this); 

		SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);

		int cxIcon = GetSystemMetrics(SM_CXICON);
		int cyIcon = GetSystemMetrics(SM_CYICON);
		CRect rect;
		GetClientRect(&rect);
		int x = (rect.Width() - cxIcon + 1) / 2;
		int y = (rect.Height() - cyIcon + 1) / 2;

		dc.DrawIcon(x, y, m_hIcon);
	}
	else
	{
		CDialogEx::OnPaint();
	}
}

HCURSOR CMSSQLSevercppDlg::OnQueryDragIcon()
{
	return static_cast<HCURSOR>(m_hIcon);
}

// Desenvolvimento Aberto
// nosso código começa aqui.

// Cria menssagem
int menssagem(bool correto)
{
	LPCWSTR msg;

	if (correto)
	{
		msg = L"Conectado com sucesso!";
	}
	else
	{
		msg = L"Erro na conexão";
	}

	int msgboxID = MessageBox(
		NULL,
		msg,
		(LPCWSTR)L"Conexão",
		MB_ICONWARNING | MB_OK | MB_DEFBUTTON2
		);

	switch (msgboxID)
	{
	case IDOK:

		break;
	}

	return msgboxID;
}

void CMSSQLSevercppDlg::OnBnClickedButton1()
{
	// Cria classe conexão ODBC
	CDatabase db;

	// Declara variaveis
	CString usuario;
	CString senha;
	CString fonte;
	CString conexao;

	// Alimenta variaveis
	m_sid.GetWindowTextW(fonte);
	m_usuario.GetWindowTextW(usuario);
	m_senha.GetWindowTextW(senha);

	// Cria string de conexão
	conexao = L"DSN=" + fonte + L";UID=" + usuario + L";PWD=" + senha;

	// Conecta ao banco de dados
	db.OpenEx(conexao, 0);

	// Verifica conexão
	if (db.IsOpen())
	{
		menssagem(true);
	}
	else
	{
		menssagem(false);
	}

}

MFC fornece dois conjuntos distintos de classes para acessar banco de dados: um para permitir o acesso através de DAO, e outros através de ODBC. O método DAO é geralmente usado para acessar bancos de dados desktop e o método ODBC para conectar-se servidores de banco de dados relacionais através de uma fonte de dados.

IBM DB2 - MFC - C++

IBM DB2 – MFC – C++

ODBC

O Microsoft Open Database Connectivity (ODBC) é uma interface de linguagem de programação C, que torna possível que aplicativos acessem dados de uma variedade de sistemas de gerenciamento de banco de dados (SGBD). ODBC é escrita em baixo nível, e uma interface de alto desempenho que é projetado especificamente para armazenamentos de dados relacionais.

O Microsoft Foundation Classes (MFC) fornece bibliotecas de classes para programação com Open Database Connectivity (ODBC).

CDatabase

Representa uma conexão com uma fonte de dados, através do qual você pode operar com esta fonte de dados.

Conectando ao banco de dados IBM DB2 Express-C

1 – Crie um novo projeto C++ MFC Application Dialog Based, coloque no dialogo 4 componentes Static Text, 3 componentes Edit Control, e um Button, disponha os componentes como na figura abaixo:

Design

Design

2 – No painel de controle escolha a opção ferramentas administrativas e abra a opção Fontes de Dados ODBC para 32 ou 64bits, na guia DNS de Usuário, clique em adicionar e selecione o driver correspondente ao IBM DB2:

Driver IBM DB2

Driver IBM DB2

3 – Crie os parâmetros de conexão contendo um nome para sua fonte de dados no qual será seu DNS e crie os parâmetros comuns para se conectar ao IBM DB2, teste sua conexão e clique em OK:

DSN - ODBC

DSN – ODBC

4 – Use os trechos marcados do código abaixo para completar seu código gerado automaticamente

Exemplo:

Neste exemplo efetuamos uma conexão ao banco de dados através de um DNS ODBC usando a classe CDatabase.

C++


// IBM-DB2cppDlg.cpp : implementation file
//

#include "stdafx.h"
#include "IBM-DB2cpp.h"
#include "IBM-DB2cppDlg.h"
#include "afxdialogex.h"

// Inclui classe de banco de dados MFC
#include "afxdb.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#endif

CIBMDB2cppDlg::CIBMDB2cppDlg(CWnd* pParent /*=NULL*/)
	: CDialogEx(CIBMDB2cppDlg::IDD, pParent)
{
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CIBMDB2cppDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialogEx::DoDataExchange(pDX);
	DDX_Control(pDX, IDC_EDIT1, m_usuario);
	DDX_Control(pDX, IDC_EDIT2, m_senha);
	DDX_Control(pDX, IDC_EDIT3, m_sid);
}

BEGIN_MESSAGE_MAP(CIBMDB2cppDlg, CDialogEx)
	ON_WM_PAINT()
	ON_WM_QUERYDRAGICON()
	ON_BN_CLICKED(IDC_BUTTON1, &CIBMDB2cppDlg::OnBnClickedButton1)
END_MESSAGE_MAP()

BOOL CIBMDB2cppDlg::OnInitDialog()
{
	CDialogEx::OnInitDialog();

	SetIcon(m_hIcon, TRUE);
	SetIcon(m_hIcon, FALSE);		

	return TRUE;
}

void CIBMDB2cppDlg::OnPaint()
{
	if (IsIconic())
	{
		CPaintDC dc(this); 

		SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);

		int cxIcon = GetSystemMetrics(SM_CXICON);
		int cyIcon = GetSystemMetrics(SM_CYICON);
		CRect rect;
		GetClientRect(&rect);
		int x = (rect.Width() - cxIcon + 1) / 2;
		int y = (rect.Height() - cyIcon + 1) / 2;

		dc.DrawIcon(x, y, m_hIcon);
	}
	else
	{
		CDialogEx::OnPaint();
	}
}

HCURSOR CIBMDB2cppDlg::OnQueryDragIcon()
{
	return static_cast<HCURSOR>(m_hIcon);
}

// Desenvolvimento Aberto
// nosso código começa aqui.

// Cria menssagem
int menssagem(bool correto)
{
	LPCWSTR msg;

	if (correto)
	{
		msg = L"Conectado com sucesso!";
	}
	else
	{
		msg = L"Erro na conexão";
	}

	int msgboxID = MessageBox(
		NULL,
		msg,
		(LPCWSTR)L"Conexão",
		MB_ICONWARNING | MB_OK | MB_DEFBUTTON2
		);

	switch (msgboxID)
	{
	case IDOK:

		break;
	}

	return msgboxID;
}

void CIBMDB2cppDlg::OnBnClickedButton1()
{

	// Cria classe conexão ODBC
	CDatabase db;

	// Declara variaveis
	CString usuario;
	CString senha;
	CString fonte;
	CString conexao;

	// Alimenta variaveis
	m_sid.GetWindowTextW(fonte);
	m_usuario.GetWindowTextW(usuario);
	m_senha.GetWindowTextW(senha);

	// Cria string de conexão
	conexao = L"DSN=" + fonte + L";UID=" + usuario + L";PWD=" + senha;

	// Conecta ao banco de dados
	db.OpenEx(conexao, 0);

	// Verifica conexão
	if (db.IsOpen())
	{
		menssagem(true);
	}
	else
	{
		menssagem(false);
	}

}

MFC fornece dois conjuntos distintos de classes para acessar banco de dados: um para permitir o acesso através de DAO, e outros através de ODBC. O método DAO é geralmente usado para acessar bancos de dados desktop e o método ODBC para conectar-se servidores de banco de dados relacionais através de uma fonte de dados.

Oracle - ODBC

Oracle – ODBC

ODBC

O Microsoft Open Database Connectivity (ODBC) é uma interface de linguagem de programação C, que torna possível que aplicativos acessem dados de uma variedade de sistemas de gerenciamento de banco de dados (SGBD). ODBC é escrita em baixo nível, e uma interface de alto desempenho que é projetado especificamente para armazenamentos de dados relacionais.

O Microsoft Foundation Classes (MFC) fornece bibliotecas de classes para programação com Open Database Connectivity (ODBC).

CDatabase

Representa uma conexão com uma fonte de dados, através do qual você pode operar com esta fonte de dados.

Conectando ao banco de dados Oracle XE

1 – Crie um novo projeto C++ MFC Application Dialog Based, coloque no dialogo 4 componentes Static Text, 3 componentes Edit Control, e um Button, disponha os componentes como na figura abaixo:

Design

Design

2 – No painel de controle escolha a opção ferramentas administrativas e abra a opção Fontes de Dados ODBC para 32 ou 64bits, na guia DNS de Usuário, clique em adicionar e selecione o driver correspondente ao Oracle XE:

Driver Oracle

Driver Oracle

3 – Crie os parâmetros de conexão contendo um nome para sua fonte de dados no qual será seu DNS e crie os parâmetros comuns para se conectar ao Oracle XE, teste sua conexão e clique em OK:

DNS OracleXE

DNS OracleXE

4 – Use os trechos marcados do código abaixo para completar seu código gerado automaticamente

Exemplo:

Neste exemplo efetuamos uma conexão ao banco de dados através de um DNS ODBC usando a classe CDatabase.

C++


// OraclecppDlg.cpp : implementation file
//

#include "stdafx.h"
#include "Oraclecpp.h"
#include "OraclecppDlg.h"
#include "afxdialogex.h"

// Inclui classe de banco de dados MFC
#include "afxdb.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#endif

COraclecppDlg::COraclecppDlg(CWnd* pParent /*=NULL*/)
	: CDialogEx(COraclecppDlg::IDD, pParent)
{
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void COraclecppDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialogEx::DoDataExchange(pDX);
	DDX_Control(pDX, IDC_EDIT1, m_usuario);
	DDX_Control(pDX, IDC_EDIT2, m_senha);
	DDX_Control(pDX, IDC_EDIT3, m_sid);
}

BEGIN_MESSAGE_MAP(COraclecppDlg, CDialogEx)
	ON_WM_PAINT()
	ON_WM_QUERYDRAGICON()
	ON_BN_CLICKED(IDC_BUTTON1, &COraclecppDlg::OnBnClickedButton1)
END_MESSAGE_MAP()

BOOL COraclecppDlg::OnInitDialog()
{
	CDialogEx::OnInitDialog();

	SetIcon(m_hIcon, TRUE);
	SetIcon(m_hIcon, FALSE);	

	return TRUE;
}

void COraclecppDlg::OnPaint()
{
	if (IsIconic())
	{
		CPaintDC dc(this); 

		SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);

		int cxIcon = GetSystemMetrics(SM_CXICON);
		int cyIcon = GetSystemMetrics(SM_CYICON);
		CRect rect;
		GetClientRect(&rect);
		int x = (rect.Width() - cxIcon + 1) / 2;
		int y = (rect.Height() - cyIcon + 1) / 2;

		dc.DrawIcon(x, y, m_hIcon);
	}
	else
	{
		CDialogEx::OnPaint();
	}
}

HCURSOR COraclecppDlg::OnQueryDragIcon()
{
	return static_cast<HCURSOR>(m_hIcon);
}

// Desenvolvimento Aberto
// nosso código começa aqui.

// Cria menssagem
int menssagem(bool correto)
{
	LPCWSTR msg;

	if (correto)
	{
		msg = L"Conectado com sucesso!";
	}
	else
	{
		msg = L"Erro na conexão";
	}

	int msgboxID = MessageBox(
		NULL,
		msg,
		(LPCWSTR)L"Conexão",
		MB_ICONWARNING | MB_OK | MB_DEFBUTTON2
		);

	switch (msgboxID)
	{
	case IDOK:

		break;
	}

	return msgboxID;
}

// Clique do Botão
void COraclecppDlg::OnBnClickedButton1()
{
	// Cria classe conexão ODBC
	CDatabase db;

	// Declara variaveis
	CString usuario;
	CString senha;
	CString fonte;
	CString conexao;

	// Alimenta variaveis
	m_sid.GetWindowTextW(fonte);
	m_usuario.GetWindowTextW(usuario);
	m_senha.GetWindowTextW(senha);

	// Cria string de conexão
	conexao = L"DSN=" + fonte + L";UID=" + usuario + L";PWD=" + senha;

	// Conecta ao banco de dados
	db.OpenEx(conexao, 0); 

	// Verifica conexão
	if (db.IsOpen())
	{
		menssagem(true);
	}
	else
	{
		menssagem(false);
	}	  

}

Conexão Microsoft SQL Server – ADO.NET – C#

Publicado: 8 de maio de 2014 em C#

ADO.NET é um conjunto de classes que expõem serviços de acesso de dados para programadores .NET Framework. O ADO.NET fornece um rico conjunto de componentes para a criação de aplicativos distribuídos e de compartilhamento de dados. É parte integrante do .NET Framework, proporcionando acesso relacional a, XML e dados de aplicativos. ADO.NET suporta uma variedade de necessidades de desenvolvimento, incluindo a criação de clientes do banco de dados front-end e objetos de negócios de camada intermediária usados ​​por aplicativos, ferramentas, linguagens, ou navegadores de Internet.

MSSQL SERVER - ADO.NET

MSSQL SERVER – ADO.NET

Conectando ao MSSQL usando o ADO.NET

Um objeto SqlConnection representa uma sessão exclusiva com uma fonte de dados SQL Server. Com um sistema de banco de dados cliente/servidor, é equivalente a uma conexão de rede para o servidor. SqlConnection é usado juntamente com SqlDataAdapter e SqlCommand para aumentar o desempenho quando conectado a um banco de dados Microsoft SQL Server. Para implantar aplicativos de alto desempenho, você deve usar o pool de conexão. Quando você usa o .Net Framework para o SQL Server, você não tem que habilitar o pool de conexão porque o provedor gerencia isso automaticamente.

Exemplo:

Neste exemplo utilizamos o ADO.NET para conectar ao banco de dados Microsoft SQL Server.

C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace ConexaoMssql
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        public static void getDBConnection(string Server, string Database,
                                    string Username, string Password, string Timeout)
        {
            try
            {
                // String de Conexao
                string connectionString =

                    // Servidor
                    "Data Source=" + Server +

                    // Banco de dados
                    ";Initial Catalog=" + Database +

                    // Usuario
                    ";User ID =" + Username +

                    // Senha
                    ";Password=" + Password +

                    // TNSnames
                    ";Connect Timeout=" + Timeout;

                //Conecta ao datasource usando a conexão Padrão
                 SqlConnection conn = new SqlConnection(connectionString);

                //Abre a conexão com o banco de dados
                conn.Open();
                MessageBox.Show("Conexão efetuada com sucesso");

            }
            // Retorna erro
            catch (Exception ex)
            {
                // Mostra menssagem de erro
                MessageBox.Show(ex.ToString());

            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            getDBConnection(textBox1.Text, textBox2.Text, textBox3.Text, textBox4.Text, "30");
        }

    }
}

Você pode se conectar ao IBM DB2 usando conexões baseadas no componente de dados da Microsoft chamado MDAC, no qual suporta os tipos de conexões Microsoft como ADO NET, OLE DB, ODBC, mas se você deseja uma alta performance, maior segurança e acesso a todos os recursos do IBM DB2 você pode usar o IBM Data Server Provider for .Net.

MDAC

Microsoft Data Access Components é uma estrutura de tecnologias da Microsoft inter-relacionada que permite aos programadores uma forma abrangente de desenvolvimento de aplicativos que podem acessar praticamente qualquer armazenamento de dados e uniforme. Seus componentes incluem: ActiveX Data Objects (ADO), OLE DB, e Open Database Connectivity (ODBC). Houve vários componentes obsoletos, assim, como o Microsoft Jet Database Engine, MSDASQL (o fornecedor de OLE DB para ODBC) e Remote Data Services (RDS). Alguns componentes também se tornaram obsoletos, como o Data Access Objects API e Remote Data Objects.

IBM Data Server Provider for .NET

O Provedor IBM ® Data Server para. NET estende o suporte de servidor de banco de dados para a interface ADO.NET. O provedor oferece acesso de alto desempenho e seguro para servidores de dados IBMO IBM Data Server Provider para. NET é um nome que é usado para descrever os provedores .NET que são distribuídos com o servidor de dados clientes dos produtos IBM.

IBM DB2 - Express-C

IBM DB2 – Express-C

Local: C:\Program Files\IBM\SQLLIB\BIN\netf40

Assembler: IBM.Data.DB2.dll

Conectando ao IBM DB2 usando o IBM.Data.DB2.dll

1 – Crie um novo projeto C# e Design Time disponha na tela 5 componentes Labels, 4 Textboxs e um Button e configure o layout com na figura abaixo:

Layout e Referencia

Layout e Referencia

2 – Na janela Solution Explorer com o botão direito no projeto clique em Add > Reference, na janela seguinte sobre o menu Browse , clique no botão Browse e navegue até o driver de conexão da IBM citado logo acima, selecione o arquivo IBM.Data.DB2.dll e clique em OK:

Driver DB2 .NET

Driver DB2 .NET

3 – Use os trechos do código abaixo para completar o seu código gerado automaticamente.

Exemplo:

Neste exemplo utilizamos os Namespaces IBM para conectar ao banco de dados usando IBM Data Server Provider for .Net.

C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using IBM.Data.DB2; // namespace IBM

namespace ConexaoDb2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        public static void getDBConnection(string Server, string Database,
                                    string Username, string Password, string Timeout)
        {
            try
            {
                // String de Conexao
                string connectionString =

                    // Servidor
                    "Server=" + Server +

                    // Banco de dados
                    ";Database=" + Database +

                    // Usuario
                    ";UID=" + Username +

                    // Senha
                    ";PWD=" + Password +

                    // TNSnames
                    ";Connect Timeout=" + Timeout;

                //Conecta ao datasource usando a conexão DB2
                DB2Connection conn = new DB2Connection(connectionString);

                //Abre a conexão com o banco de dados
                conn.Open();
                MessageBox.Show("Conexão efetuada com sucesso");

            }
            // Retorna erro
            catch (Exception ex)
            {
                // Mostra menssagem de erro
                MessageBox.Show(ex.ToString());

            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            // Cria conexão
            getDBConnection(textBox1.Text, textBox2.Text, textBox3.Text, textBox4.Text, "30");
        }
    }
}

Além do software básico de conectividade do cliente Oracle, uma conexão Oracle com acesso aos recursos completos ao banco de dados requer o uso do que é conhecido como um provedor de dados gerenciado onde “gerenciado” refere-se ao código gerenciado pelo .NET. O provedor de dados é a camada entre o código. NET e o software de conectividade de cliente  do Oracle.  O Provedor de Dados Oracle para .NET (ODP.NET) é um ADO NET Oracle 2.0 de alto desempenho que expõe um conjunto completo de características específicas da Oracle e opções de ajuste, incluindo suporte para Real Application Clusters, DB XML e segurança avançada.

Conexão Oracle ODAC

Conexão Oracle ODAC

Obs: Caso não tenha instalado o ODAC 12c em seu computador você encontra um walkthrough de com instalar e configurar tanto o cliente ou o servidor Oracle, em nossa categoria SQL.

Conectando ao Oracle usando ODAC do Visual Studio

1 – Crie um novo projeto C# e Design Time disponha na tela 4 componentes Labels, 3 Textboxs e um Button e configure o layout com na figura abaixo:

Layout e Referencia

Layout e Referencia

2 – Na janela Solution Explorer com o botão direito no projeto clique em Add > Reference, na janela seguinte sobre o menu Assemblies > Extensions escolha a opção  Oracle.DataAccess versão 4.112.2.0 e clique em OK:

Oracle Data Access

Oracle Data Access

3 – Use os trechos do código abaixo para completar o seu código gerado automaticamente.

Exemplo:

Neste exemplo utilizamos os Namespaces Oracle para conectar ao banco de dados usando Oracle Client, é possível distribuir sua aplicação sem que precise da instalação do cliente da Oracle distribuindo certos arquivos dll junto com sua aplicação.

C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Oracle.DataAccess.Client; // namespace Oracle

namespace ConexaoOracle
{
    public partial class Form1 : Form
    {       

        public Form1()
        {
            InitializeComponent();
        }

        // Cria conexão com o banco de dados Oracle
         static public void getDBConnection(string Username, string Password, string Datasource)
		{
			try
			{
				// String de Conexao
				string connectionString = 

					// Usuario
					"User Id=" + Username +

					// Senha
					";Password=" + Password +

					// TNSnames
					";Data Source=" + Datasource;

				//Conecta ao datasource usando a conexão Oracle
                OracleConnection conn = new OracleConnection(connectionString);

				//Abre a conexão com o banco de dados
				conn.Open();
                MessageBox.Show("Conexão efetuada com sucesso");

			}
			// Retorna erro
			catch (Exception ex)
			{
				// Mostra menssagem de erro
				MessageBox.Show(ex.ToString());

			}
		}

        private void button1_Click(object sender, EventArgs e)
        {
            // Cria conexão
            getDBConnection(textBox1.Text, textBox2.Text, textBox3.Text);

        }       

    }
}

Oracle ODAC substitui as funcionalidades de acesso a dados do MDAC e em sua versão mais recente acrescenta ferramentas para desenvolvimento no Microsoft Visual Studio. É possível programar para Oracle usando o MDAC que contém drivers de acesso ao banco de dados Oracle em todos os seus componentes como ADO, OLEDB e ODBC, mas estes componentes não suportam as funcionalidades únicas do Oracle tais como, Real Application Clusters, otimizações de desempenho, DB XML, e recursos avançados de segurança.

O ODAC não é apenas para aplicações .NET, suporta também drivers nativos do Windows e pode ser usado para aplicações Win32 nativas como por exemplo o Delphi entre outros.

O que é MDAC?

Microsoft Data Access Components é uma estrutura de tecnologias da Microsoft inter-relacionada que permite aos programadores uma forma abrangente de desenvolvimento de aplicativos que podem acessar praticamente qualquer armazenamento de dados e uniforme. Seus componentes incluem: ActiveX Data Objects (ADO), OLE DB, e Open Database Connectivity (ODBC). Existem vários componentes MDAC obsoletos, assim, como o Microsoft Jet Database Engine, MSDASQL (o fornecedor de OLE DB para ODBC) e Remote Data Services (RDS). Alguns componentes também se tornaram obsoletos, como o Data Access Objects API e Remote Data Objects.

Oracle Data Access Components  (ODAC)

ODAC inclui Oracle Data Provider para .NET, Oracle Developer Tools para Visual Studio (ODT), Provedores Oracle para ASP.NET, suporte ao .NET Stored Procedure, Bem como software adicional de acesso de dados Oracle para Windows.

Requisitos:

ODAC só pode ser instalado em uma versão profissional do Windows ou superior, as ferramentas para o Visual Studio não suportam a versão Express. Para o Visual Studio Express você precisa usar o ODP.NET, também encontrado na mesma pagina de download do ODAC no site da Oracle.

Download: http://www.oracle.com/us/products/tools/index-090165.html

Instalação

1 – Após o download descompacte o arquivo baixado em uma pasta e abra o programa setup.exe:

Preparação

Preparação

2 – Após verificar os requisitos básicos na tela de bem-vindo clique em próximo:

Bem-Vindo

Bem-Vindo

3 – Selecione a opção da instalação cliente ou de servidor caso tenha um servidor Oracle instalado na maquina:

Client / Server

Client / Server

4 – Escolha o diretório da instalação:

Local da instalação

Local da instalação

5 – Selecione os componentes que deseja instalar:

Componentes

Componentes

6 – Crie a entrada no TNS NAMES para acesso ao servidor Oracle:

TNS Names

TNS Names

7 – Nesta tela você recebe um lembrete de rodar os scripts para a configuração ASP.NET sempre que instalar uma nova versão do ODAC ou efetuar um Upgrade na mesma:

Scripts

Scripts

8 – Verifique sua instalação na tela de resumo e se tudo estiver como deseja clique em instalar:

Resumo

Resumo

9 – Aguarde o andamento da instalação:

Progresso da instalação

Progresso da instalação

10 – Após a instalação bem sucedida clique em sair:

Concluido

Concluido

Você já esta pronto para usar o ODAC e as ferramentas para Visual Studio.

Microsoft SQL Server é um banco de dados relacional que pode ser usado para armazenar, usar e modificar dados. O Java Database Connectivity (JDBC) padrão é usado por aplicativos Java para acesso e manipulação de dados em bancos de dados relacionais.

JDBC é um protocolo de acesso de banco de dados que permite que você se conecte a um banco de dados e execute instruções SQL e consultas no banco de dados. As bibliotecas de classe do núcleo de Java fornecem as APIs JDBC, java.sql e javax.sql. No entanto, JDBC é projetado para permitir que os vendedores forneçam drivers que oferecem a especialização necessária para um banco de dados específico.

MSSQL - Java

MSSQL – Java

Microsoft JDBC Driver for SQL Server

Microsoft JDBC Driver 4.0 para SQL Server, um driver JDBC Tipo 4 que fornece conectividade de banco de dados por meio das APIs (interfaces de programa aplicativo) padrão JDBC disponíveis na Plataforma Java.

Download: http://msdn.microsoft.com/pt-br/sqlserver/aa937724.aspx

Instalação

Para instalar descompacte o Driver em uma pasta e use o arquivo default.html da pasta help para informações adicionais.

Configurações Microsoft SQL Server

Para conectar-se com o Java você precisa habilitar o protocolo TCP/IP para rede, que por padrão vem desabilitado, para efetuar este procedimento siga os seguintes passos:

1 – Abra o SQL Server Configuration Manager, expanda os nodes da arvore até Configurações de rede do SQL Server e clique em, protocolos para SQLEXPRESS. Na opção TCP/IP escolha habilitado:

Habilitar TCP/IP de Rede

Habilitar TCP/IP de Rede

2 – Clique com o botão direito ainda em cima da opção TCP/IP e escolha propriedades, role as propriedades até o final e em IPALL, na opção porta, preencha com 1433:

Define Porta 1433

Define Porta 1433

4 – Vá para o primeiro node da arvore chamado Serviços do SQL Server e reinicie o serviço.

 

Configurando Driver JDBC SQL Server

Para usar o driver JDBC para SQL Server você pode adiciona-lo em seu projeto, clicando com o botão direito do mouse em cima do nome do projeto e escolhendo a opção propriedades, adicione o arquivo de driver na biblioteca do seu projeto usando a opção Add External JAR, a figura abaixo ilustra como efetuar este procedimento na IDE Eclipse:

JDBC - MSSQL

JDBC – MSSQL

Diretório: C:\[Seu diretório de download]\Microsoft JDBC Driver 4.0 for SQL Server\sqljdbc_4.0\ptb\

Driver: sqljdbc4.jar

Exemplo:

Neste exemplo usamos o driver JDBC SQL Server para efetuar uma conexão no banco de dados, para criar o banco de dados você pode usar nosso walkthrough de como instalar as o banco de dados Microsoft SQL Server Express with Tools.

Java

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import java.sql.*;

import javax.swing.BorderFactory;
import javax.swing.Box;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;

public class ConexaoMssql implements ActionListener
{
	// Declara componentes
	private JLabel ltitulo;
	private JLabel lbanco;
	private JLabel lusuario;
	private JLabel lsenha;
	private JTextField tbanco;
	private JTextField tusuario;
	private JPasswordField tsenha;
	private JButton botao;
	private JFrame menssagem;

	// Declara objetos de conexão
	private Connection conn;
	private Statement query;

	public Container criaPainel()
	{
		// Cria painel principal
		JPanel painel = new  JPanel();
		painel.setLayout(new BorderLayout());
		painel.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));

		// Cria componente titulo
		ltitulo = new JLabel("Microsoft SQL Server Express");

		painel.add(ltitulo, BorderLayout.PAGE_START);

		// Cria painel de usuario
		JPanel painelDados = new JPanel(new GridLayout(0, 2, 10, 10));

		// Cria componentes de usuario
		lbanco   = new JLabel("Banco de dados:");
		lusuario = new JLabel("Digite seu Usuario: ");
		lsenha   = new JLabel("Digite sua Senha: ");
		tbanco   = new JTextField();
		tusuario = new JTextField();
		tsenha   = new JPasswordField();

		// Define tamanho dos campos
		tusuario.setPreferredSize( new Dimension(120, 20));
		tsenha.setPreferredSize( new Dimension(120, 20));

		// Adiciona componentes no grid do painel
		painelDados.add(Box.createVerticalStrut(10));
		painelDados.add(Box.createVerticalStrut(10));
		painelDados.add(lbanco);
		painelDados.add(tbanco);
		painelDados.add(lusuario);
		painelDados.add(tusuario);
		painelDados.add(lsenha);
		painelDados.add(tsenha);
		painelDados.add(Box.createVerticalStrut(10));
		painelDados.add(Box.createVerticalStrut(10));

		// Cria botão
		botao = new JButton("Conectar");
		botao.addActionListener(this);

		// Adiciona componentes no painel principal
		painel.add(painelDados);
		painel.add(botao, BorderLayout.PAGE_END);

		return painel;
	}

	public static void criaGUI()
	{
		// Cria formulario
		JFrame formulario = new JFrame("MSSQL Express 2012");
		formulario.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		// cria classe da conexão
		ConexaoMssql conectar = new ConexaoMssql();

		// Define painel
		formulario.setContentPane(conectar.criaPainel());
		formulario.pack();

		// Mostra aplicação
		formulario.setVisible(true);
	}

	public void conectar(String banco, String login, String senha) {
        try
        {
        	// Define Driver de conexão JDBC thin
        	String URL =  "jdbc:sqlserver://Estacao01\\SQLEXPRESS:1433;databaseName=" + banco +
        			      ";user=" + login + ";password="+senha;

            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            conn = DriverManager.getConnection(URL);                      

            		//Executa pedido SQL
            query = conn.createStatement();
            JOptionPane.showMessageDialog(menssagem, "Conexão Efetuada com sucesso!");
        } 

        catch (ClassNotFoundException ex)
        {
            ex.printStackTrace();
        }

        catch (SQLException ex)
        {
        	JOptionPane.showMessageDialog(menssagem, "Erro na conexão!");
        	ex.printStackTrace();
        }
    }

	public void actionPerformed(ActionEvent arg0)
	{
	   // Verfica tamanho da senha
		char[] tamanho = tsenha.getPassword();

		if (tamanho.length == 0)

		{
		  	JOptionPane.showMessageDialog(menssagem, "Digite uma senha!");
		}
		else
		{
			// recupera senha do Java Password Field
			String psenha = new String(tsenha.getPassword());

			//Cria conexão
			ConexaoMssql conecta= new ConexaoMssql();
		    conecta.conectar(tbanco.getText(), tusuario.getText() , psenha);

		}

	}

	public static void main(String[] args)
	{
		javax.swing.SwingUtilities.invokeLater(new Runnable() {

			public void run() {

				// Cria e exibe GUI
				criaGUI();

			}
		});      

	}
}