Usando ODBC SQL SERVER como controlo ventanas de conexion al haber error en usuario o password

Donde se configura ó se controla la aparición de ventanas de ODBC y SQLSERVER al haber un error en Usuario o Password, La captura del error con Try no funciona.

Soy nuevo programador en XOJO , antes de Clipper y VisualFoxPro
Espero me puedan ayudar, De antemano Gracias

Hola Claudia!

Yo uso SQL Server y PostgreSQL. Siempre capturo los errores con Try y no he tenido problemas con ello.
¿Puedes compartir código?

Para tratar de ver que esta sucediendo.

Puedo ayudarte en darte tips para que uses la programación por objetos de VFP9 de manera equivalente en XOJO. Solo has tus preguntas en este foro.

Hola, primero una disculpa, Mi nombre es Ismael Dominguez Cantu el Nombre con que aparezco es un error de cuando pague el XOJO, ya escribí para que me lo corrijan porque no veo por donde se pueda.
Abajo copio el código dentro de la clase de Base de Datos y agrego una imagen del error enviado pero no es de XOJO según yo:

Var Conectado As Boolean
Conectado = True

SELF.DataSource = “Driver={SQL Server}” + “;Server=” + strHost + “;Database=” + strDataBase + “;UID=” + strUsuario + “;PWD=” + strPassword + “;”

Try
SELF.Connect
Catch error as DatabaseException
Conectado = False
if error.ErrorNumber = 18456 then
messagebox( “Atrapado … fue el error 18456 El Usuario o Password estan mal escritos, vuelva a capturarlos” )
else
messagebox( "El error es : " + error.ErrorNumber.ToString )
end if
End Try
return Conectado

Error no atrapable

Estoy queriendo usar la opción NOPROMPT para la conexión con ODBC con MSSQLServer
no he encontrado la forma de hacerla funcionar

en Visual Fox es sencillo , Alguien me podrá ayudar con la forma de escribirlo en XOJO

xcadena =   'Description=JoyAdmin Ver. 1.00.00;'+;
			'DRIVER=SQL Server;'+;
			'SERVER='+xcServidor+';'+; 
			'UID='+xcUser+';PWD='+xcPass + ';'+;				
			'APP=ADS Berger Joyeros ;'+;
			'DATABASE='+xcBase+';'

SQLSETPROP(0,"DispLogin",3)	&& Esta parte hace que no se abran las opciones de SQLServer
	
gnConectadoSQL = SQLSTRINGCONNECT(xcadena)

¡Hola!

Me aventuro a responder…en tanto que uso ODBC para controlar cambios en la BBDD (en mi caso PostgreSQL) y luego poder manejar la información usando Xojo.

Por ello, me da la sensación que el error es del controlador. Yo intentaría configurar los parámetros con otro programa que pueda usar un controlador ODBC para ver lo que está pasando.

No obstante, con Xojo tienes un controlador específico para SQL Server que, creo, será mejor que a través de un ODBC

O, al menos, así lo pienso.

Hola , Muchas Gracias por tratar de ayudar
No he logrado que funcione haciendo lo sugerido, creo es muy raro este error con XOJO porque de lo poco que hay documentado sobre evitar la apertura del Login de SQL Server NADIE ha podido solucionarlo y me parece extraño ya que han de existir aplicaciones con SQLServer donde esto si lo controlen.

En SQL dice que es colocar esta configuración en SQLDriverConnect
DriverCompletion=SQL_DRIVER_NOPROMPT , pero no he encontrado como enviar el dato dese XOJO , desde VisualFox es sencillo , me extraña que un lenguaje que hace 14 años dejo de actualizarse lo pueda hacer fácilmente.

Capaz que tengo que replantearme sustituir VisualFoxPro con XOJO.

Buenas noches, Ismael.

No deberia haber problema con la conexión. Mucho menos usando solo una conexión a la base de datos.

¿Como puedo ayudar?

hummmm…

Supongo que ya has encontrado las páginas
https://forum.xojo.com/6797-xojo-with-foxpro-dbf/0
https://docs.xojo.com/UserGuide:ODBC
(A mi me ayudaron)

Definitivamente, lo que me supuso un antes y después, era abrir una conexión con el servidor, y luego configurar la conexión. A modo de ejemplo, yo uso la siguiente (insisto - contra .dbf):

// Abrimos la ruta UNC desde Xojo (no vale con que se tenga abierta en el ordenador)
Var sh_Conectar As New Shell
Var Comando As String = "NET USE G: \192.168.0.1\datos /user:mi_grupo" + mi_smb_user + " " + mi_smb_pass*

’ Y conectamos
sh_Conectar.Execute( Comando )

Var Con_ODBC As ODBCDatabase

’ Se configura el plugin de Conexión ODBC
Con_ODBC=New ODBCDatabase

’ Se define la cadena DataSource para poder conectar, con la información de la configuración del driver, que está bien explicada en Microsoft dBase driver (*.dbf) connection string | nhutils
Con_ODBC.DataSource=“CollatingSequence=ASCII; SourceType=DBF; SourceDB=c:\ART.DBF;Deleted=0;Driver={Microsoft Access dBase Driver (*.dbf, *.ndx, *.mdx)};DriverId=277;Exclusive=0;MaxBufferSize=2048;PageTimeout=600;ReadOnly=1;”

’ Se abre la conexión con ODBC
If Con_ODBC.Connect then
'Blah Blah Blah
End If

¡Espero que valga como ojo de la cerradura para abrir esa puerta!

:face_with_monocle: