Crear ODBC - DSNs por código con autenticación de SQL Server

09/04/2010 - 12:21 por DIANGELEM | Informe spam
Estimados amigos:

Estoy intentando crear una DSNs, para un ODBC a SQL Server 2005.
En este foro existe un código que muchos utilizamos para crearlos.
Pero tengo la necesidad de crear una DSNs con autenticación SQL
Server, osea con

UidPwd
No me funciona de ninguna de las maneras.
¿Alguno de ustedes sería tan amable de compartir un ejemplo?

Código utilizado con diferentes cadenas (la que muetro es la básica
que se utiliza siempre):

LPARAMETERS cAntDriver, cAntAtributos
LOCAL cDriver, cAtributos, lRetVal, nRetConfig
LOCAL m.cServidor
LOCAL ODBC_ADD_DSN

ODBC_ADD_DSN = 1
m.cServidor = ALLTRIM(Thisform.txtServidor.Value) &&
EQUIPO1\SQLEXPRESS
DECLARE INTEGER SQLConfigDataSource IN ODBCCP32.DLL INTEGER
hwndParent, INTEGER fRequest, STRING @lpszDriver, STRING
@lpszAttributes

cDriver = IIF(EMPTY(cDriver), 'SQL Native Client', PROPER(cAntDriver))
+ CHR(0)
cAtributos = IIF(EMPTY(cAtributos),'DSN=Fac39SQLServer' + CHR(0) +
'Description=Driver BitFac 2010 para SQL Server' + CHR(0) + ;
'Database=Fac39' + CHR(0) + 'Server=' + m.cServidor + CHR(0) +
'Trusted_Connection=Yes' + CHR(0) + 'Language=Español' + CHR(0) +
'Regional=yes', ;
PROPER(cAntAtributos)) + CHR(0)

nRetConfig = SQLConfigDataSource(0, ODBC_ADD_DSN, @cDriver,
@cAtributos)

lRetVal = (nRetConfig = 1)

RETURN lRetVal
 

Leer las respuestas

#1 hquinones
10/04/2010 - 18:28 | Informe spam
Tengo una rutina que creaba DSN, por algun motivo ahora no me funciona, pero
antes si lo hacia con windos 2000.
Una inquietud, porque quieres crear el DSN, abandone esa practica porque
encontre que ingresaban a la base de datos de ahi. Ahora hago la conexion
directamente y no tengo que estar creando y eliminando el DSN.

Te dejo la rutina que utilizaba. (tampoco da con "SQL Native Client")

Local lcDriver,lcServer,lcDescription,;
lcDSN,lcDatabase,lcUID,lcPWD,;
SQLAuthentication
#Define ODBC_ADD_DSN 1
#Define ODBC_REMOVE_DSN 3
lcDriver = 'SQL Server'
lcServer = 'SERRA_01\SQLEXPRESS'
lcDescription = "DNS sql"
lcDSN = "DSN_sql"
lcDatabase = 'PRODUCTION'
lcUID = 'usuario1'
lcPWD = 'miclave'
SQLAuthentication = .T.
cAttribs = "SERVER="+ lcServer+ Chr(0)
cAttribs = cAttribs + "DESCRIPTION="+lcDescription+ Chr(0)
cAttribs = cAttribs + "DSN="+lcDSN + Chr(0)
cAttribs = cAttribs + "DATABASE="+lcDatabase+ Chr(0)


Declare Integer SQLConfigDataSource In odbccp32;
INTEGER hwndParent,;
INTEGER fRequest,;
STRING lpszDriver,;
STRING lpszAttributes

If SQLAuthentication
cAttribs = cAttribs + "UID="+lcUID+ Chr(0)
cAttribs = cAttribs + "PWD="+lcPWD+ Chr(0)
Endif

nReturnValue = SQLConfigDataSource(0, ODBC_ADD_DSN, LcDriver, cAttribs)
If nReturnValue = 1
Messagebox("DSN fue creado...",64,"DSN")
ELSE
= MESSAGEBOX('Que esta pasando?', 16, 'Error al crear DSN SQL Server')
Endif


"DIANGELEM" escribió en el mensaje
news:
Estimados amigos:

Estoy intentando crear una DSNs, para un ODBC a SQL Server 2005.
En este foro existe un código que muchos utilizamos para crearlos.
Pero tengo la necesidad de crear una DSNs con autenticación SQL
Server, osea con

UidPwd
No me funciona de ninguna de las maneras.
¿Alguno de ustedes sería tan amable de compartir un ejemplo?

Código utilizado con diferentes cadenas (la que muetro es la básica
que se utiliza siempre):

LPARAMETERS cAntDriver, cAntAtributos
LOCAL cDriver, cAtributos, lRetVal, nRetConfig
LOCAL m.cServidor
LOCAL ODBC_ADD_DSN

ODBC_ADD_DSN = 1
m.cServidor = ALLTRIM(Thisform.txtServidor.Value) &&
EQUIPO1\SQLEXPRESS
DECLARE INTEGER SQLConfigDataSource IN ODBCCP32.DLL INTEGER
hwndParent, INTEGER fRequest, STRING @lpszDriver, STRING
@lpszAttributes

cDriver = IIF(EMPTY(cDriver), 'SQL Native Client', PROPER(cAntDriver))
+ CHR(0)
cAtributos = IIF(EMPTY(cAtributos),'DSN=Fac39SQLServer' + CHR(0) +
'Description=Driver BitFac 2010 para SQL Server' + CHR(0) + ;
'Database=Fac39' + CHR(0) + 'Server=' + m.cServidor + CHR(0) +
'Trusted_Connection=Yes' + CHR(0) + 'Language=Español' + CHR(0) +
'Regional=yes', ;
PROPER(cAntAtributos)) + CHR(0)

nRetConfig = SQLConfigDataSource(0, ODBC_ADD_DSN, @cDriver,
@cAtributos)

lRetVal = (nRetConfig = 1)

RETURN lRetVal

Preguntas similares