MS SQL Server - omoreno - 11-08-2020
Hola a todos.
Alguien tiene un ejemplo para conectar a una base de datos MS SQL Server.
Gracias.
RE: MS SQL Server - tincho - 11-08-2020
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/ssms/tutorials/connect-query-sql-server?view=sql-server-ver15
Saludos.
RE: MS SQL Server - omoreno - 11-08-2020
(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/ssms/tutorials/connect-query-sql-server?view=sql-server-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.
RE: MS SQL Server - david - 11-08-2020
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
RE: MS SQL Server - omoreno - 11-08-2020
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.
RE: MS SQL Server - tincho - 11-08-2020
(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.
RE: MS SQL Server - omoreno - 11-08-2020
(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:
- Hay que instalar en el linux un driver ODBC: "msodbcsql17_17.6.1.1-1_amd64" https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/connection-string-keywords-and-data-source-names-dsns?view=sql-server-ver15
- 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.
RE: MS SQL Server - tincho - 11-08-2020
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
RE: [SOLUCIONADO] MS SQL Server - omoreno - 12-08-2020
(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:
- Instalar en Linux los siguientes paquetes: sudo apt-get -y install freetds-bin tdsodbc unixodbc
- 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
- Configurar ODBC driver en el Archivo: /etc/odbcinst.ini
Código: [FreeTDS]
Description = FreeTDS
Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
- Configurar ODBC fuentes de datos en el Archivo: /etc/odbc.ini
Código: [<DATA_SOURCE_NAME>]
Driver = FreeTDS
Server = <SERVERNAME>
Port = 1433
Database = <DBNAME>
- 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>
- 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]
RE: MS SQL Server - tincho - 12-08-2020
Perfecto, gracias por el instructivo.
Saludos.
|