CRIAR CONEXAO ODBC VIA VB6

SVS99 26/11/2009 17:19:28
#328629
Ola Amigos

Saberiam me dizer como criar a conexao ODBC via VB6.Quando a utilizo eu vou em Ferramentas Administrativas no Painel de Controle, porem agora se tornou necessaria a criacao dinamica da mesma.

Obrigado e um Abraço
HUGOSSOUZA 26/11/2009 17:42:13
#328633
Resposta escolhida
Você pode fazer assim:

[ô]################################################# API para criar DSN
Private Declare Function SQLConfigDataSource Lib [Ô]ODBCCP32.DLL[Ô] (ByVal _
hwndParent As Long, ByVal fRequest As Long, ByVal lpszDriver As String, _
ByVal lpszAttributes As String) As Long

Private Declare Function RegCloseKey Lib [Ô]advapi32[Ô] (ByVal hKey As Long) As Long

Private Declare Function RegOpenKeyEx Lib [Ô]advapi32[Ô] Alias [Ô]RegOpenKeyExA[Ô] _
(ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, _
ByVal samDesired As Long, ByRef phkResult As Long) As Long

Const REG_SZ = 1
Const KEY_ALL_ACCESS = &H2003F
Const HKEY_CURRENT_USER = &H80000001

Const ODBC_ADD_DSN = 1 [ô]4 [ô] cria o DSN
Const ODBC_REMOVE_DSN = 3 [ô]6 [ô] excluir o DSN

[ô]#################################################
Sub CriaDSN(ByVal pDSN As String, pServer As String, pDataBase As String, pUsuario As String, pSenha As String)

Dim strAttributes As String
Dim sDBQ As String
Dim lngRet As Long

Dim hKey As Long
Dim regValue As String
Dim valueType As Long

[ô] consulta o registro para verificar se o DSN já esta instalado
[ô] abre a chave
If RegOpenKeyEx(HKEY_CURRENT_USER, [Ô]Software\ODBC\ODBC.INI\[Ô] & pDSN, 0, KEY_ALL_ACCESS, hKey) = 0 Then
[ô] fecha a chave
RegCloseKey hKey
[ô]Exit Sub
Else
strAttributes = [Ô]SERVER=[Ô] & pServer & Chr$(0)
strAttributes = strAttributes & [Ô]DSN=[Ô] & pDSN & Chr$(0)
strAttributes = strAttributes & [Ô]DATABASE=[Ô] & pDataBase & Chr$(0)
strAttributes = strAttributes & [Ô]UserName=tedablio[Ô] & Chr$(0)
strAttributes = strAttributes & [Ô]Password=tw123[Ô] & Chr$(0)

lngRet = SQLConfigDataSource(0&, ODBC_ADD_DSN, [Ô]PostgreSQL[Ô], strAttributes)
If lngRet Then
[ô]MsgBox [Ô]DSN Criada[Ô]
Else
MsgBox [Ô]Falha ao Criar[Ô]
End If
End If
End Sub



[ô]chamada da função
CriaDSN [Ô]nomeODBC[Ô], [Ô]192.168.0.1[Ô], [Ô]nomebanco[Ô], [Ô]usuario[Ô], [Ô]senha[Ô]

SVS99 27/11/2009 09:17:04
#328662
Bom Dia


[txt-size=2]

Muito obrigado por sua ajuda Hugo
Bem, acabou dando um erro.


Deu um erro nessa linha :

If RegOpenKeyEx(HKEY_CURRENT_USER, [Ô]Software\ODBC\ODBC.INI\[Ô] & pDSN, 0, KEY_ALL_ACCESS, hKey) = 0 Then

HKEY_CURRENT_USER = Variavel Nao Encontrada.

Na verdade eu nao entndo muito de API mas esse erro indica que a variavel em questao nao foi definida.Porem eu copiei o modulo para criar a API em um modulo e essa variavel que e uma constante esta dentro dele,como voce me passou.

Const HKEY_CURRENT_USER = &H80000001


O que sera que pode ser entao?


E a proposito, essas letras pequenas do forum estao acabandoi com a minha vista.Antes estava melhor.Eu nao enxergo nem o que eu mesmo escrevo.O jeito e aumentar o tamanho da fonte.


Obrigado e um Abraço

[/txt-size]
PARREIRA 27/11/2009 09:58:18
#328668
Abra um aquivo do tipo bloco de notas ,renomeie a extensão do arquiva para .udl,configure a conexão que vc quer ,apos ter feito isso salve o arquivo e renomeie novamente para .txt,e a string estara la dentro feita.[txt-size=2] [/txt-size]
Tópico encerrado , respostas não são mais permitidas