ACESSAR DSN DO PC SERVIDOR

GFASSIO 02/02/2010 10:09:46
#333385
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
LUIS.FLAVIO 02/02/2010 10:53:53
#333387
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!
GFASSIO 02/02/2010 11:21:02
#333392
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!
LUIS.FLAVIO 02/02/2010 11:49:18
#333403
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.
GFASSIO 02/02/2010 13:13:22
#333409
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
LROSSI 02/02/2010 14:23:20
#333417
Resposta escolhida
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
GFASSIO 02/02/2010 14:44:51
#333419
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
LROSSI 02/02/2010 15:22:30
#333422
usa o host da maquina...
GFASSIO 02/02/2010 15:51:33
#333430
O NOME NETBEUI VC FALA?
ABRAÇOS
Tópico encerrado , respostas não são mais permitidas