Páginas (2): 1 2   
omoreno   11-08-2020, 18:24
#1
Hola a todos.

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

Gracias.
tincho   11-08-2020, 19:35
#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.

1 Saludo.
omoreno   11-08-2020, 20:01
#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.
david   11-08-2020, 20:34
#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
omoreno   11-08-2020, 20:42
#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.
tincho   11-08-2020, 20:49
#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
Código:
Public Sub Button1_Click()
  Dim con As New Connection
  con.Type = "odbc"
  con.Host = "" ' pone el servidor
  con.Name = "" ' Pone nombre de la base de datos
  'con.port ' Tal vez haga fata especificarlo tambien
  'con.User ' Tal vez haga fata especificarlo tambien
  'con.Password ' Tal vez haga fata especificarlo tambien
  con.Open
  If con.Opened Then
    Message.Info("Conectado")
  Else
    Message.Info("Error")
  Endif
End
Proba con algo así a ver que sucede y lo vamos desarrollando.
Saludos.

1 Saludo.
omoreno   11-08-2020, 21:34
#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
Código:
Public Sub Button1_Click()
  Dim con As New Connection
  con.Type = "odbc"
  con.Host = "" ' pone el servidor
  con.Name = "" ' Pone nombre de la base de datos
  'con.port ' Tal vez haga fata especificarlo tambien
  'con.User ' Tal vez haga fata especificarlo tambien
  'con.Password ' Tal vez haga fata especificarlo tambien
  con.Open
  If con.Opened Then
    Message.Info("Conectado")
  Else
    Message.Info("Error")
  Endif
End
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.
Última modificación: 11-08-2020, 21:35 por omoreno.
tincho   11-08-2020, 22:31
#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
Última modificación: 11-08-2020, 22:34 por tincho.

1 Saludo.
omoreno   12-08-2020, 14:36
#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: 
    Código:
    Public conn As Connection

    Public Function ConectarODBC() As Boolean
     '
      conn = New Connection
      conn.Type = "odbc"     'Define el tipo de conexión
      conn.Host = "odbcxyz"  'Nombre de la conexión ODBC del sistema o del usuario actual: el DSN
      conn.Login = "user"    'Usuario para la conexión la algunos odbc no permite definirlo en el odbc.ini
      conn.Password = "123"  'Clave de Usuario de la conexión, algunos odbc no lo permite en el odbc.ini
      conn.Open()            'Activamos y Abrimos la conexión
      '
      Return True
      '
      Catch
        If String.InStr(Error.Text, "Access denied for user") <> 0 Then
          Message.Error("No se conecto<br>Error: Verificar los datos de conexion del sistema...", "OK")
        Else
          Message.Error("No se conecto<br>Error: " & Error.Code & "<br>" & Error.Text, "OK")
        Endif
        
        Return False
      '
    End
Saludos.
[/code]
[/list]
Última modificación: 14-08-2020, 20:24 por jguardon.
tincho   12-08-2020, 14:59
#10
Perfecto, gracias por el instructivo.
Saludos.

1 Saludo.
Páginas (2): 1 2   
  
Usuarios navegando en este tema: 2 invitado(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.