Este foro usa cookies
Este foro utiliza cookies para almacenar su información de inicio de sesión si está registrado y su última visita si no lo está. Las cookies son pequeños documentos de texto almacenados en su computadora; las cookies establecidas por este foro solo se pueden usar en este sitio web y no representan ningún riesgo de seguridad. Las cookies en este foro también rastrean los temas específicos que ha leído y la última vez que los leyó. Si Ud. continúa navegando, entenderemos que acepta todas las cookies.

Se almacenará una cookie en su navegador, independientemente de la elección, para evitar que se le vuelva a hacer esta pregunta. Podrá cambiar la configuración de sus cookies en cualquier momento utilizando el enlace en el pie de página.

El foro antiguo se encuentra accesible desde https://foro.gambas-es.org en modo de solo lectura.

Calificación:
  • 1 voto(s) - 4 Media
  • 1
  • 2
  • 3
  • 4
  • 5

MS SQL Server
#1

Hola a todos.

Alguien tiene un ejemplo  para conectar a una base de datos MS SQL Server.

Gracias.
    ¡Gracias!
#2

Hola omoreno.
Como no especificas para que entorno de programación, SO o lenguaje, supongo que cualquier ejemplo te vale.
https://docs.microsoft.com/es-es/sql/ssm...rver-ver15
Saludos.
    ¡Gracias!
#3

(11-08-2020, 19:35)tincho escribió:  Hola omoreno.
Como no especificas para que entorno de programación, SO o lenguaje, supongo que cualquier ejemplo te vale.
https://docs.microsoft.com/es-es/sql/ssm...rver-ver15
Saludos.

Hola tincho.

Quiero conectar con MS SQL Server por medio de:

1- Gambas 3.15.1.
2- Ejecutando un servidor WEBFORM en Linux MINT 20.0.
3-La base de datos de prueba MS SQL SERVER esta en otra PC con windows 10 que he conectado al PC con Linux.

Gracias.
    ¡Gracias!
#4

Código:
if hconn <> null then return
hconn = new connection

with hconn
   .host = "la ip del Servidor"
   .port = "el puerto abierto del servidor"
   .login = "tu login"
   .password = "pues eso tu contraseña"
   .Name = "Nombre de la base de datos"
   . type = "Formato de la base de datos", yo usaba Mysql pues lo pones y haber que sale
 end with

try hconn.open() 'la abres 

y si no te sale ningun error ya la tienes abierta y lista para recibir comandos
espero que te sirva
    ¡Gracias!
#5

Gracias por responder david.

Pero en el atributo type no puedes usar "MySQL" para conectar con "MS SQL SERVER", creo que si de alguna manera conectara la sintaxis SQL de MySQL no es igual para MS SQL SERVER.

Saludos.
    ¡Gracias!
#6

(11-08-2020, 20:01)omoreno escribió:  1- Gambas 3.15.1.
2- Ejecutando un servidor WEBFORM en Linux MINT 20.0.
3-La base de datos de prueba MS SQL SERVER esta en otra PC con windows 10 que he conectado al PC con Linux.
Es ese caso, que yo sepa, solo te queda conectarte por medio de ODBC ya que gambas no tiene un driver para ms-sqlserver
El tema es interesante, nunca use ODBC con gambas pero en lo que pueda te ayudare.
En principio este código valdría para conectarte a cualquier base de datos a través de ODBC
GAMBAS
  1. Public Sub Button1_Click()
  2.   con.Type = "odbc"
  3.   con.Host = "" ' pone el servidor
  4.   con.Name = "" ' Pone nombre de la base de datos
  5.   'con.port ' Tal vez haga fata especificarlo tambien
  6.   'con.User ' Tal vez haga fata especificarlo tambien
  7.   'con.Password ' Tal vez haga fata especificarlo tambien
  8.   con.Open
  9.   If con.Opened Then
  10.     Message.Info("Conectado")
  11.   Else
  12.     Message.Info("Error")


Proba con algo así a ver que sucede y lo vamos desarrollando.
Saludos.
    ¡Gracias!
#7

(11-08-2020, 20:49)tincho escribió:  
(11-08-2020, 20:01)omoreno escribió:  1- Gambas 3.15.1.
2- Ejecutando un servidor WEBFORM en Linux MINT 20.0.
3-La base de datos de prueba MS SQL SERVER esta en otra PC con windows 10 que he conectado al PC con Linux.
Es ese caso, que yo sepa, solo te queda conectarte por medio de ODBC ya que gambas no tiene un driver para ms-sqlserver
El tema es interesante, nunca use ODBC con gambas pero en lo que pueda te ayudare.
En principio este código valdría para conectarte a cualquier base de datos a través de ODBC
GAMBAS
  1. Public Sub Button1_Click()
  2.   con.Type = "odbc"
  3.   con.Host = "" ' pone el servidor
  4.   con.Name = "" ' Pone nombre de la base de datos
  5.   'con.port ' Tal vez haga fata especificarlo tambien
  6.   'con.User ' Tal vez haga fata especificarlo tambien
  7.   'con.Password ' Tal vez haga fata especificarlo tambien
  8.   con.Open
  9.   If con.Opened Then
  10.     Message.Info("Conectado")
  11.   Else
  12.     Message.Info("Error")


Proba con algo así a ver que sucede y lo vamos desarrollando.
Saludos.

OK tincho.

Para las conexiones tipo odbc:
  1. Hay que instalar en el linux un driver ODBC: "msodbcsql17_17.6.1.1-1_amd64" https://docs.microsoft.com/en-us/sql/con...rver-ver15
  2. Hay que configurar el archivo /etc/odbc.ini con:  
    Código:
    # [DSN name]
    [MSSQLTest]
    Driver = ODBC Driver 17 for SQL Server
    # Server = [protocol:]server[,port]
    Server = tcp:192.168.0.1,1433
    #Note:
    # Port is not a valid keyword in the odbc.ini file
    # for the Microsoft ODBC driver on Linux or macOS
Realice todos los pasos, pero me genera un error de conexión:

SQLConnect failed: 08001[unixODBC][Microsoft][ODBC Driver 17 for SQL Server]SSL Provider: [error:1425F102:SSL routines: ssl_choose_client_version:unsupported protocol] 08001[unixODBC][Microsoft][ODBC Driver 17 for SQL Server]Client unable to establish connection

Saludos.
    ¡Gracias!
#8

Acá hay hay algo mas de información, tal vez sirva.
https://gambaswiki.org/wiki/howto/odbcdatabase#t3
https://gambaswiki.org/wiki/doc/odbc
http://www.unixodbc.org/
Supuestamente ODBC es un estándar que permite acceder a una base de datos desde otros sistemas diferentes al que sirve los datos.
Si tenes que instalar tanto ms-driver ya me huele mal el asunto.
Saludos
    ¡Gracias!
#9

(11-08-2020, 22:31)tincho escribió:  Acá hay hay algo mas de información, tal vez sirva.
https://gambaswiki.org/wiki/howto/odbcdatabase#t3
https://gambaswiki.org/wiki/doc/odbc
http://www.unixodbc.org/
Supuestamente ODBC es un estándar que permite acceder a una base de datos desde otros sistemas diferentes al que sirve los datos.
Si tenes que instalar tanto ms-driver ya me huele mal el asunto.
Saludos

Finalmente lo he conseguido, estos son los pasos para el que los pueda necesitar:
  1. Instalar en Linux los siguientes paquetes: sudo apt-get -y install freetds-bin tdsodbc unixodbc
  2. Configurar FreeTDS en el Archivo: /etc/freetds/freetds.conf 
    Código:
    #
    [global]
    # TDS protocol version
    tds version = auto

    # Whether to write a TDSDUMP file for diagnostic purposes
    # (setting this to /tmp is insecure on a multi-user system)
    ; dump file = /tmp/freetds.log
    ; debug flags = 0xffff

    # Command and connection timeouts
    ; timeout = 100
    ; connect timeout = 100
    # To reduce data sent from server for BLOBs (like TEXT or
    # IMAGE) try setting 'text size' to a reasonable limit
    ; text size = 64512

    # If you experience TLS handshake errors and are using openssl,
    # try adjusting the cipher list (don't surround in double or single quotes)
    # openssl ciphers = HIGH:!SSLv2:!aNULL:-DH

    #Microsoft SQL server
    [tracking]
    host = <host>.database.windows.net
    port = 1433
    tds version = 7.3
  3. Configurar ODBC driver en el Archivo: /etc/odbcinst.ini 
    Código:
    [FreeTDS]
    Description = FreeTDS
    Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
  4. Configurar ODBC fuentes de datos en el Archivo: /etc/odbc.ini 
    Código:
    [<DATA_SOURCE_NAME>]
    Driver = FreeTDS
    Server = <SERVERNAME>
    Port = 1433
    Database = <DBNAME>
  5. Prueben la conexión con isql
    Código:
    isql -v <DATA_SOURCE_NAME> <USER> <PASSWORD>

    +---------------------------------------+
    | Connected!                            |
    |                                       |
    | sql-statement                         |
    | help [tablename]                      |
    | quit                                  |
    |                                       |
    +---------------------------------------+
    SQL> select current_timestamp
    +------------------------+
    |                        |
    +------------------------+
    | 2015-01-02 09:05:55.593|
    +------------------------+
    SQLRowCount returns 1
    1 rows fetched
    SQL>
  6. Finalmente configurar su ODBC en Gambas3: 
    GAMBAS
    1.  
    2. Public Function ConectarODBC() As Boolean
    3.  '
    4.   conn = New Connection
    5.   conn.Type = "odbc"     'Define el tipo de conexión
    6.   conn.Host = "odbcxyz"  'Nombre de la conexión ODBC del sistema o del usuario actual: el DSN
    7.   conn.Login = "user"    'Usuario para la conexión la algunos odbc no permite definirlo en el odbc.ini
    8.   conn.Password = "123"  'Clave de Usuario de la conexión, algunos odbc no lo permite en el odbc.ini
    9.   conn.Open()            'Activamos y Abrimos la conexión
    10.   '
    11.   '
    12.     If String.InStr(Error.Text, "Access denied for user") <> 0 Then
    13.       Message.Error("No se conecto<br>Error: Verificar los datos de conexion del sistema...", "OK")
    14.     Else
    15.       Message.Error("No se conecto<br>Error: " & Error.Code & "<br>" & Error.Text, "OK")
    16.     Endif
    17.     
    18.   '


Saludos.
[/code]
[/list]
[-] Los siguientes 1 usuarios dice gracias a omoreno por este post:
  • jguardon
    ¡Gracias!
#10

Perfecto, gracias por el instructivo.
Saludos.
    ¡Gracias!


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)