ACESSAR DSN DO PC SERVIDOR
Olá gente, tudo bem?
Seguinte, meus sistemas funcionam em rede, ai no caso eu deixo tudo no servidor e nas outras estações eu apenas crio um atalho para o executável.
Só que no caso eu preciso criar a conexão DSN nos computadores locais, e eu queria que acessasse o DSN que está configurado no servidor, pra num ter que criar de um em um, ja que o .exe está no servidor.
Tem como?
abraços
Seguinte, meus sistemas funcionam em rede, ai no caso eu deixo tudo no servidor e nas outras estações eu apenas crio um atalho para o executável.
Só que no caso eu preciso criar a conexão DSN nos computadores locais, e eu queria que acessasse o DSN que está configurado no servidor, pra num ter que criar de um em um, ja que o .exe está no servidor.
Tem como?
abraços
Amigo minha ideia para você seria criar um arquivo INI (ideal) ou TXT com a string de conexão no mesmo local onde está o executável no servidor, porque quando você mudasse a string de conexão refletia pra todos!
Ok concordo, mas o crystal reports não aceita passar string de conexão né, tenho que passar DSN.
O sistema tudo bem, mas o cystal não
como posso fazer?
Abraços e obrigado pela atenção!
O sistema tudo bem, mas o cystal não
como posso fazer?
Abraços e obrigado pela atenção!
Cara eu não sou especilista no Crystal mas acredito que quando você vai chamar o relatório via VB você passa a conexão para o Crystal não importando qual o tipo de conexão, mas procure por exemplos de arquivo INI aqui no forum para adiantar que alguem irá te ajudar com relação ao Crystal.
No meu sistema eu uso com .INI, o problema é no crystal, opis eu não queria ter que configurar de máquina em máquina o DSN, até porque meu sistea cria automaticamente o DSN, mas se mudarem IP do servidor, ai atrapalha tudo...
e agora hein???
Abraços
e agora hein???
Abraços
função q uso pra criar o dsn automaticamente... adapta pra sua necessidade...
[ô]cria DSN automaticamente
Public Sub CriaDSN(ByVal DSN As String, ByVal Nome As String, ByVal User As String, ByVal PWD As String, ByVal Porta As String, ByVal Servidor As String, ByVal Database As String)
Const DriverName = [Ô]MySQL ODBC 3.51 Driver[Ô]
Dim lResult As Long
Dim hKeyHandle As Long
Dim hKeyHandSub As Long
[ô]cria chave
lResult = RegCreateKey(HKEY_CURRENT_USER, [Ô]SOFTWARE\ODBC\ODBC.INI\[Ô] & DSN, hKeyHandle)
[ô]configura os dados
lResult = RegSetValueEx(hKeyHandle, [Ô]Description[Ô], 0&, REG_SZ, ByVal Nome, Len(Description))
lResult = RegSetValueEx(hKeyHandle, [Ô]Driver[Ô], 0&, REG_SZ, ByVal DriverPath, Len(DriverPath))
lResult = RegSetValueEx(hKeyHandle, [Ô]Option[Ô], 0&, REG_SZ, ByVal [Ô]11[Ô], Len([Ô]11[Ô]))
lResult = RegSetValueEx(hKeyHandle, [Ô]Password[Ô], 0&, REG_SZ, ByVal PWD, Len(PWD))
lResult = RegSetValueEx(hKeyHandle, [Ô]Port[Ô], 0&, REG_SZ, ByVal Porta, Len(Porta))
lResult = RegSetValueEx(hKeyHandle, [Ô]Stmt[Ô], 0&, REG_SZ, ByVal [Ô][Ô], Len([Ô][Ô]))
lResult = RegSetValueEx(hKeyHandle, [Ô]Server[Ô], 0&, REG_SZ, ByVal Servidor, Len(Servidor))
lResult = RegSetValueEx(hKeyHandle, [Ô]User[Ô], 0&, REG_SZ, ByVal User, Len(User))
lResult = RegSetValueEx(hKeyHandle, [Ô]Database[Ô], 0&, REG_SZ, ByVal Database, Len(Database))
[ô]Fecha chave.
lResult = RegCloseKey(hKeyHandle)
[ô]salva dsn em lista para abrir em gerenciador
lResult = RegCreateKey(HKEY_CURRENT_USER, [Ô]SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources[Ô], hKeyHandle)
lResult = RegSetValueEx(hKeyHandle, DSN, 0&, REG_SZ, ByVal DriverName, Len(DriverName))
lResult = RegCloseKey(hKeyHandle)
End Sub
[ô]cria DSN automaticamente
Public Sub CriaDSN(ByVal DSN As String, ByVal Nome As String, ByVal User As String, ByVal PWD As String, ByVal Porta As String, ByVal Servidor As String, ByVal Database As String)
Const DriverName = [Ô]MySQL ODBC 3.51 Driver[Ô]
Dim lResult As Long
Dim hKeyHandle As Long
Dim hKeyHandSub As Long
[ô]cria chave
lResult = RegCreateKey(HKEY_CURRENT_USER, [Ô]SOFTWARE\ODBC\ODBC.INI\[Ô] & DSN, hKeyHandle)
[ô]configura os dados
lResult = RegSetValueEx(hKeyHandle, [Ô]Description[Ô], 0&, REG_SZ, ByVal Nome, Len(Description))
lResult = RegSetValueEx(hKeyHandle, [Ô]Driver[Ô], 0&, REG_SZ, ByVal DriverPath, Len(DriverPath))
lResult = RegSetValueEx(hKeyHandle, [Ô]Option[Ô], 0&, REG_SZ, ByVal [Ô]11[Ô], Len([Ô]11[Ô]))
lResult = RegSetValueEx(hKeyHandle, [Ô]Password[Ô], 0&, REG_SZ, ByVal PWD, Len(PWD))
lResult = RegSetValueEx(hKeyHandle, [Ô]Port[Ô], 0&, REG_SZ, ByVal Porta, Len(Porta))
lResult = RegSetValueEx(hKeyHandle, [Ô]Stmt[Ô], 0&, REG_SZ, ByVal [Ô][Ô], Len([Ô][Ô]))
lResult = RegSetValueEx(hKeyHandle, [Ô]Server[Ô], 0&, REG_SZ, ByVal Servidor, Len(Servidor))
lResult = RegSetValueEx(hKeyHandle, [Ô]User[Ô], 0&, REG_SZ, ByVal User, Len(User))
lResult = RegSetValueEx(hKeyHandle, [Ô]Database[Ô], 0&, REG_SZ, ByVal Database, Len(Database))
[ô]Fecha chave.
lResult = RegCloseKey(hKeyHandle)
[ô]salva dsn em lista para abrir em gerenciador
lResult = RegCreateKey(HKEY_CURRENT_USER, [Ô]SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources[Ô], hKeyHandle)
lResult = RegSetValueEx(hKeyHandle, DSN, 0&, REG_SZ, ByVal DriverName, Len(DriverName))
lResult = RegCloseKey(hKeyHandle)
End Sub
Muito bom LROSSI, mas me fala uma coisa, quando alguém muda o IP do servidor e vc acessa o sistema em alguma outra estação, automaticamente o ODBC abre aquela janela de conexão né. Como que vc faz quando alguém muda o IP do servidor para o sistema não mostrar aquela caixa de conexão do ODBC??
Abraços e obrigado pela ajuda
Abraços e obrigado pela ajuda
usa o host da maquina...
O NOME NETBEUI VC FALA?
ABRAÇOS
ABRAÇOS
Tópico encerrado , respostas não são mais permitidas