sql >> Base de Datos >  >> RDS >> Sqlserver

Conexión de Genero a SQL Server

Genero proporciona un controlador de base de datos para usar con el controlador ODBC de SQL Server de Easysoft, y esto le permite crear programas de Genero que usan SQL Server como back-end.

  1. Descargue el controlador ODBC de SQL Server para Linux de 64 bits. (Es necesario registrarse).
  2. Instale y licencie el controlador ODBC de SQL Server en la máquina donde está o estará instalado Genero.

    Para obtener instrucciones de instalación, consulte la documentación del controlador ODBC.

    Nota Necesita el administrador de controladores unixODBC instalado en su máquina. La distribución de Easysoft incluye una versión de unixODBC Driver Manager con la que se ha probado el controlador ODBC de Easysoft SQL Server. El programa de instalación del controlador Easysoft le ofrece la opción de instalar unixODBC.

  3. Cree una fuente de datos ODBC en /etc/odbc.ini que se conecte a la base de datos de SQL Server a la que desea acceder desde Genero. Por ejemplo:
    [MSSQL-GENERO]
    Driver          = Easysoft ODBC-SQL Server
    Server          = my_machine\SQLEXPRESS
    User            = my_domain\my_user
    Password        = my_password
    # If the database you want to connect to is the default
    # for the SQL Server login, omit this attribute
    Database        = Northwind
    
  4. Utilice isql para probar la nueva fuente de datos. Por ejemplo:
    cd /usr/local/easysoft/unixODBC/bin
    ./isql.sh -v MSSQL-GENERO
    

    Cuando se le solicite, escriba "ayuda" para mostrar una lista de tablas. Para salir, presione regresar en una línea de aviso vacía.

    Si no puede conectarse, consulte este artículo y la base de conocimientos del controlador ODBC de SQL Server para obtener ayuda.

  5. Si aún no lo ha hecho, instale Genero en esta máquina.

    Nota Uno de nuestros clientes nos informó que si desea usar Genero con SQL Server 2016, debe usar Genero 3.00.10 o posterior.

    Durante la instalación, se le solicita que elija la base de datos predeterminada para fglrun. Si desea SQL Server 2014 o anterior como su base de datos predeterminada, elija la opción [7] Cuando se le solicite. Si desea utilizar SQL Server 2016 o posterior, elija [6] . Si no desea utilizar SQL Server como base de datos predeterminada, elija otra base de datos. Puede configurar la base de datos por aplicación especificando el controlador de la base de datos para usar en su código fuente de Genero.
  6. Cree un programa Genero que recupere algunos datos de SQL Server:
    $ more connect.4gl
    MAIN
      DEFINE varchar_col VARCHAR(100)
      # You can omit +driver... if you dbmesm_1 is the default driver in FGLPROFILE.
      CONNECT TO "MSSQL-GENERO+driver='dbmesm_1'"
      DECLARE xx CURSOR FOR SELECT * FROM MyVarcharTable
      FOREACH xx INTO varchar_col
        DISPLAY varchar_col CLIPPED
      END FOREACH
    END MAIN
    
  7. Configure el entorno para que Genero pueda cargar el controlador ODBC de SQL Server:
    export LD_LIBRARY_PATH=/usr/local/easysoft/sqlserver/lib
    

    Si no instaló el controlador de Easysoft en /usr/local, modifique la ruta en consecuencia.

  8. Compila y ejecuta tu programa:
    $ cd /opt/fourjs/gep/fgl/bin/
    $ ./fglcomp connect.4gl
    $ ./fglrun connect.42m
    Value1
    Value2
    
  9. Si tiene problemas para ejecutar el programa, intente configurar FGLSQLDEBUG:
    $ export FGLSQLDEBUG=3
    $ ./fglrun connect.42m
    SQL: CONNECT
     | 4gl source      : connect.4gl line=3
     | loading driver  : [/opt/fourjs/gep/fgl/dbdrivers/dbmesm_1]
     | Dynamic linker error: [libessqlsrv.so: cannot open shared object file: No such file or directory]...
     | loading driver  : [/opt/fourjs/gep/fgl/dbdrivers/dbmesm_1]
     | Dynamic linker error: [libessqlsrv.so: cannot open shared object file: No such file or directory]...
    Program stopped at 'connect.4gl', line number 3.
    SQL statement error number -6366 (0).
    Could not load database driver dbmesm_1. Set FGLSQLDEBUG to get more details.
    $ export LD_LIBRARY_PATH=/usr/local/easysoft/sqlserver/lib
    $ unset FGLSQLDEBUG
    $ ./fglrun connect.42m
    Value1
    Value2