CRIAR CONEXAO ODBC VIA VB6
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
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
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[Ô]
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]
[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]
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