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, 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:
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
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)
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
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.
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!