Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Cómo crear DSN de sistema por codigo

82 views
Skip to first unread message

lauta

unread,
Mar 11, 2002, 12:03:19 PM3/11/02
to
Voy a instalar una base Access en cada PC de usuario que
se conecta a un SQL Server. No quiero que el
funcionamiento dependa de tener o no el DSN de conexion en
cada PC. Ya puedo detectar (via API de windows) si existe
o no cierto DSN. El problema es que si no existe, solo
pude crear uno de USUARIO y no supe decirle que el SQL
tiene trusted connection...
Alguien sabe cómo crear un DSN de sistema (no de usuario)
a través de codigo vb? Cómo setearle que es una conexion
de confianza?
Sé que viene por el lado del método RegisterDatabase del
objeto DBEngine, pero no encajo los parámetros para que
salga como yo quiero:

(BUC es el nombre de mi DSN al SQL)
DBEngine.RegisterDatabase "BUC", "SQL Server", True,
strAtributos

donde strAtributos= "Description= " & MiBD & Chr$(13)
& "OemToAnsi=No" & Chr$(13) & "SERVER=" & Servidor &
Chr$(13) & "Database=" & BaseAConectar

con: MiBD es el nombre del DSN
Servidor es el nombre del Server
Base a Conectar es el nombre de la base en el SQL.

Que anda faltando/fallando?
Gracias por cualquier ayuda!!!.

Fernando G. Guerrero

unread,
Mar 11, 2002, 1:55:47 PM3/11/02
to
No puedes crear un DSN del sistema con RegisterDatabase, sino que lo tienes
que hacer con la función SQLConfigDataSource.del API de ODBC.

Basado en el ejemplo Q287688 de MSDN
(http://support.microsoft.com/support/kb/articles/Q287/6/68.ASP), he creado
este ejemplo en Access 2002 y funciona perfectamente:

Option Compare Database

Option Explicit
Const ODBC_ADD_SYS_DSN = 4 'Add data source
Const ODBC_CONFIG_SYS_DSN = 5 'Configure (edit) data source
Const ODBC_REMOVE_SYS_DSN = 6 'Remove data source

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

Sub Build_SQLSystemDSN()

Dim ret%, Driver$, Attributes$

Driver = "SQL Server" & Chr(0)
Attributes = "DSN=MyNW" & Chr(0)
Attributes = Attributes & "trusted_connection=yes" & Chr(0)
Attributes = Attributes & "Database=Northwind" & Chr(0)

ret = SQLConfigDataSource(0, ODBC_ADD_SYS_DSN, Driver, Attributes)

'ret is equal to 1 on success and 0 if there is an error
If ret <> 1 Then
MsgBox "DSN Creation Failed"
End If

End Sub


--
Fernando G. Guerrero
SQL Server MVP
QA plc., UK
PASS Spanish Group
www.sqlserverbyexample.com
www.callsql.com
www.qa.com

"Comparte lo que sabes, aprende lo que no sepas"


"lauta" <la...@hotmail.com> wrote in message
news:224a01c1c91e$a524f8b0$9ae62ecf@tkmsftngxa02...

0 new messages