A API ibm_db oferece uma variedade de funções úteis para acessar e manipular dados em um banco de dados de um servidor de dados IBM ®. A API inclui funções para se conectar a um banco de dados, executar e preparar instruções SQL, buscar linhas de conjuntos de resultados, chamar procedimentos armazenados, finalizar e reverter transações, manipular tratamento de erros e recuperação de metadados.
Python DBI driver for DB2 (LUW, zOS, i5) and IDS
Essa extensão é a implementação de banco de dados com especificação da API Python v2.0. A extensão suporta DB2 (LUW, zOS, i5) e IDS (Informix Dynamic Server)
Download: https://pypi.python.org/pypi/ibm_db/
Instalação:
Para instalar a API você pode compilar o código fonte ou utilizar as extensões já compiládas, copiando o arquivo ibm_db.pyd para o diretório de DLL da sua instalação do Python.
Diretório: C:\Python27\DLLs\ibm_db.pyd
Exemplo:
Neste exemplo usamos a API de conexão para o IBM DB2 para efetuar uma conexão com o banco de dados DB2 Express-C.
Python
#!/usr/bin/env python # -*- coding: latin-1 -*- # Desenvolvimento Aberto # ConexaoDB2py # importa modulos from Tkinter import * import tkMessageBox import ibm_db # Cria formulario formulario = Tk(className='IBM DB2 Express-C') 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 = "DATABASE=" + edb.get() + \ ";HOSTNAME=localhost;PORT=50000;PROTOCOL=TCPIP;" + \ "UID=" + eusuario.get() + ";" + \ "PWD=" + esenha.get() try: con = ibm_db.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="IBM DB2 - Python") lusuario = Label(formulario, text="Digite seu usuário:") lsenha = Label(formulario, text="Digite sua senha:") ldb = Label(formulario, text="Digite o database:") eusuario = Entry(formulario) esenha = Entry(formulario, show="*") edb = 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) ldb.grid(row=3, sticky=W, padx=20) edb.grid(row=3, column=1, pady=5) botao.grid(row=5, sticky=W, pady=20, padx=20) # Loop do tcl mainloop()