Conexion a SQL desde VFP

25/08/2005 - 18:44 por Oscar Martinez | Informe spam
Buenos Días Grupo.

He digitado esta cadena de conexion en un programa (prg) para abrir la base
de datos de SQL:
ConHnd2 = SQLSTRINGCONNECT("uid=;pwd=;server=" + "NOMBRE_DEL_SERVIDOR" +
";driver={SQL Server};database=" + "NOMBRE_BASE_DE_DATOS" +
";DSN='';Trusted_Connection=yes")

Cuando este programa corre, abre una ventana de dice lo siguiente:
Error en la Conexion
SQLState: '28000'
ERROR de SQL Server: 18456
[Microsoft][ODBC SQL Server Driver][SQL Server]Error de inicio de sesion del
usuario ...
Solo muestra un boton de aceptar, al presionar click en este boton, abre
otra ventana con el titulo de: "Inicio de sesion para SQL server" y esta
otra informacion:
Servidor: NOMBRE_DEL_SERVIDOR
Usar Conexion de confianza. (Aparece con un checkbox activado)
Si desactivo el checkbox entonces me permite digitar mi usuario y mi
contraseña.
Tambien hay otras opciones que quedan a libre acceso para el usuario. Luego
de digitar mi usuario y contraseña se ha logrado establecar la conexion con
la base de datos de SQL.

La pregunta es: Como puedo manipular los datos para el usuario y la
contraseña para que no me presente las 2 ventanas que anteriomente describo
o es que tengo que crear un formulario para capturar el usuario y su
contraseña para luego validarlo en "uid=; y pwd=; de la cadena de conexion.

Si alguien puede ayudarme con esta situacion de antemano lo agradezco.

Oscar Martínez
 

Leer las respuestas

#1 Esparta Palma
25/08/2005 - 21:13 | Informe spam
Lo que sucede es que con la opción que tienes "Trusted_Connection=yes"
estás pidiendo que valide el usuario con la contraseña y password de la
PC donde iniciaste sesión contra los usuarios de el servidor donde está
ejecutándose el SQLServer, si dicho usuario y contraseña no pueden ser
validadas, entonces no te deja entrar y aparece esa segunda ventana que
indicas, en otras palabras, se ignora los parámetros de uid y pwd de la
cadena de conexión.

Si quieres hacer que tu validación sea contra los usuarios de SQLServer
(no la autentificación de Windows) entonces deberás cambiar tu cadena de
conexión para que no utilices la autentificación Windows:

TEXT TO lcConnString NOSHOW TEXTMERGE
"Driver={SQL
Server};Server=<<lcServer>>;Database=<<lcDataBase>>;Uid=<<lcUser>>;Pwd=<<lcPassword>>;"
ENDTEXT

Puedes ver más sobre las cadenas de conexión en el siguiente website:

http://www.connectionstrings.com/

Por default, si la conexión vía ODBC no puede ser completamente validada
te saldrá el recuadro que comentas, si no quieres que eso suceda,
deberás cambiar la configuración de "DisplayLogin" a "No desplegar":

IF SQLSetProp(0,"DispLogin",3) > 0

ENDIF

De este modo, si no puede conectarse, la función SQLConnect() y
SQLStringConnect() te devolverá un un valor negativo (error) que podrás
manejar:

lnHandle = SQLStringConnect(lcConnString)

IF lnHandle > 0

ELSE
IF AERROR(laError) > 0
Messagebox("Error al conectarse:"+laError[2])
ENDIF
ENDIF

Para conecer más al respecto, puedes ver los siguientes artículos:

Crear Aplicaciones Cliente-Servidor con Visual FoxPro
http://www.panoramabox.com/GoPub.as...bj"03

¿Utilizar Vistas Remotas o SQL Pass Through (SPT) para
Cliente-Servidor?
http://www.panoramabox.com/GoPub.as...bj"32

eFrontEnd, Proyecto de Ejemplo Cliente-Servidor con Visual FoxPro
http://www.panoramabox.com/GoPub.as...bj"34

eBook Gratuito: SQL: A Practical Introduction (reseña y descarga)
http://www.panoramabox.com/GoPub.as...bj"35

Consultas de mas de 256 cars. a el servidor remoto (SPT y TEXT..
ENDTEXT)
http://www.panoramabox.com/GoPub.as...bj"09

Conectar a DBMS sin crear DSN (técnica DSNLess)
http://www.panoramabox.com/GoPub.aspx?IdObj05

Uso de AERROR() para errores ODBC
http://www.panoramabox.com/GoPub.aspx?IdObj!81

Espero te sirva.

ž,ø€º°`°º€ø,žž,ø€º°`°º€ø,žž,ø€º°`°º€ø,žž,ø€º°`°º

Espartaco Palma Martínez
SysOp http://www.PortalFox.com
México D.F.
MoBlogs!
http://weblogs.golemproject.com/esparta/
http://www.espartha.com/blog/

Oscar Martinez wrote:
Buenos Días Grupo.

He digitado esta cadena de conexion en un programa (prg) para abrir la base
de datos de SQL:
ConHnd2 = SQLSTRINGCONNECT("uid=;pwd=;server=" + "NOMBRE_DEL_SERVIDOR" +
";driver={SQL Server};database=" + "NOMBRE_BASE_DE_DATOS" +
";DSN='';Trusted_Connection=yes")

Cuando este programa corre, abre una ventana de dice lo siguiente:
Error en la Conexion
SQLState: '28000'
ERROR de SQL Server: 18456
[Microsoft][ODBC SQL Server Driver][SQL Server]Error de inicio de sesion del
usuario ...
Solo muestra un boton de aceptar, al presionar click en este boton, abre
otra ventana con el titulo de: "Inicio de sesion para SQL server" y esta
otra informacion:
Servidor: NOMBRE_DEL_SERVIDOR
Usar Conexion de confianza. (Aparece con un checkbox activado)
Si desactivo el checkbox entonces me permite digitar mi usuario y mi
contraseña.
Tambien hay otras opciones que quedan a libre acceso para el usuario. Luego
de digitar mi usuario y contraseña se ha logrado establecar la conexion con
la base de datos de SQL.

La pregunta es: Como puedo manipular los datos para el usuario y la
contraseña para que no me presente las 2 ventanas que anteriomente describo
o es que tengo que crear un formulario para capturar el usuario y su
contraseña para luego validarlo en "uid=; y pwd=; de la cadena de conexion.

Si alguien puede ayudarme con esta situacion de antemano lo agradezco.

Oscar Martínez


Preguntas similares