Categoria:Programação

Conectar Delphi 7 com MySQL

Essa duvida apareceu na aula de Banco de Dados 2.

No Mata Burro Google, achei esse texto. Ele Começa assim:

Bom, como todos sabem, o Delphi tem a possibilidade de usar banco de dados Mysql.

Mas muitas pessoas não sabem como fazer isso, para ter uma idéia, o banco de dados SQL, é bem conhecido na programação em Object Pascal, mas servidores SQL são muito caros.

Por isso irei lhes mostrar neste artigo, como usar banco de dados Mysql, que é muito mais em conta que servidores SQL.

Mas afinal, o que é Mysql?
MySQL é um sistema de gerenciamento de banco de dados relacional que utiliza a linguagem padrão SQL e é largamente utilizado em aplicações internet.

Copiado descaradamente daqui (clique no link para ver a matéria completa).

Do PostgreSQL para o Excel

 

Essa dica é pra quem precisa importar dados do postgres (ou qualquer outro SGBD) para o excel.

O comando é via macro e eu só usei no Excel 2003.


Sub Executa_SQL_PG(rSql As String, rPlaSaida As String, rCelSaida As String, rIP As String, rPorta As String, rBanco As String, rUsuario As String, rSenha As String, rSchema As String)

‘Esta função conecta no banco de dados, executa o sql e devolve na celula indicada
‘ rSql      => Comando a ser executado
‘ rPlaSaida => Nome da planilha onde os dados vão retornar. Se em branco, retorna na atual
‘ rCelSaida => Endereço de Célula onde os dados vão sair. Se em branco, retorna na A5
‘ rIP       => IP do servidor
‘ rPorta    => Porta onde conectar
‘ rBanco    => Nome do Banco de Dados
‘ rUsuario  => Nome do Usuario
‘ rSenha    => Senha do Usuário
‘ rSchema   => Schema a considerar

Dim cnt As ADODB.Connection
Dim rst As ADODB.Recordset
Dim stSQL As String
Dim wbBook As Workbook
Dim wsSheet As Worksheet
Dim rnStart As Range
Dim stADO As String

‘ valida planilha de saida
If rPlaSaida <> “” Then
Sheets(rPlaSaida).Select
End If

‘ valida celula de saida
If rCelSaida = “” Then
rCelSaida = “A5”
End If

stADO = “Driver={PostgreSQL UNICODE};Server=” & rIP & “;Port=” & rPorta & “;Database=” & rBanco & “;Uid=” & rUsuario & “;Pwd=” & rSenha & “;”

Set wbBook = ActiveWorkbook
Set wsSheet = wbBook.Worksheets(rPlaSaida)

With wsSheet
Set rnStart = .Range(rCelSaida)
End With

stSQL = rSql

Set cnt = New ADODB.Connection

With cnt
.CursorLocation = adUseClient
.Open stADO
.CommandTimeout = 5000000
Set rst = .Execute(stSQL)
End With

‘Here we add the Recordset to the sheet from A1
rnStart.CopyFromRecordset rst

‘Cleaning up.
rst.Close
cnt.Close
Set rst = Nothing
Set cnt = Nothing

End Sub

 

Dá pra fazer gravando uma macro usando a importação de dados externos do excel. Mas ai depende de ter uma odbc na maquina e o resultado nao sai da tabela (até sai, mas da muito trabalho), o que aumenta o tamanho dela.

 

É isso. Abraços!