Saltar al contenido principal

SQL Server

SQL Server es el motor de base de datos relacional de Microsoft. En Gredit, esta integración permite conectarse a una instancia de SQL Server para ejecutar consultas SQL desde los guiones mediante ODBC y el driver FreeTDS.

Para qué se usa

Configurar una conexión a SQL Server para que los guiones puedan ejecutar consultas SQL y leer o escribir datos en una base de datos relacional Microsoft.

Configuración

Datos necesarios

DatoDescripción
HostDirección del servidor SQL Server (IP o hostname)
DatabaseNombre de la base de datos
PortPuerto de conexión (por defecto: 1433)
UsernameUsuario de conexión
PasswordContraseña del usuario
TDS_VersionVersión del protocolo TDS (debe ser 7.4)
TraceHabilitación de trazas (debe ser no)

Alta de la base de datos en Gredit

  1. Ir a la sección de Bases de datos y crear una nueva configuración.
  2. Completar los datos de host, base de datos, puerto, usuario y contraseña.
  3. En Controlador, usar FreeTDS.
  4. En Propiedades, agregar el atributo TDS_Version con el valor 7.4.
  5. En Propiedades, agregar el atributo Trace con el valor no.
  6. El valor de Nombre será el identificador para inyectar la conexión en los guiones.

Alta de la base de datos en Gredit

Uso en guiones

Ruby

require 'odbc_utf8'

con = ODBC.connect('TestSQLServer')
stmt = con.run('SELECT id, nombre FROM usuarios')

columns = stmt.columns.keys.map(&:to_s)

stmt.each do |row|
h = columns.zip(row).to_h
puts h['nombre'] || h['NOMBRE'] || h['Nombre']
end

stmt.drop
con.disconnect

Python

Agregar la librería pyodbc en Bibliotecas del guión.

Bibliotecas

import pyodbc

cnxn = gredit.connect('TestSQLServer')
cursor = cnxn.cursor()
cursor.execute("SELECT id, nombre FROM usuarios")

columns = [col[0].strip() for col in cursor.description]
rows = cursor.fetchall()

for r in rows:
h = dict(zip(columns, r))
print(h["nombre"])

cursor.close()
cnxn.close()

Relación con otros módulos

  • Cuentas: La conexión de SQL Server pertenece a una cuenta.
  • Guiones: Puede asociarse a uno o varios guiones de forma opcional.
  • Permisos: Se controla por roles y permisos asignados.