Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Connecter Genero à SQL Server

Genero fournit un pilote de base de données à utiliser avec le pilote ODBC SQL Server d'Easysoft, ce qui vous permet de créer des programmes Genero qui utilisent SQL Server comme backend.

  1. Téléchargez le pilote ODBC SQL Server pour Linux 64 bits. (Inscription requise.)
  2. Installez et autorisez le pilote ODBC SQL Server sur la machine sur laquelle Genero est ou sera installé.

    Pour obtenir des instructions d'installation, consultez la documentation du pilote ODBC.

    Remarque Le gestionnaire de pilotes unixODBC doit être installé sur votre machine. La distribution Easysoft inclut une version du gestionnaire de pilotes unixODBC avec lequel le pilote ODBC Easysoft SQL Server a été testé. Le programme d'installation du pilote Easysoft vous offre la possibilité d'installer unixODBC.

  3. Créez une source de données ODBC dans /etc/odbc.ini qui se connecte à la base de données SQL Server à laquelle vous souhaitez accéder depuis Genero. Par exemple :
    [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. Utilisez isql pour tester la nouvelle source de données. Par exemple :
    cd /usr/local/easysoft/unixODBC/bin
    ./isql.sh -v MSSQL-GENERO
    

    À l'invite, tapez "help" pour afficher une liste de tables. Pour quitter, appuyez sur retour dans une ligne d'invite vide.

    Si vous ne parvenez pas à vous connecter, reportez-vous à cet article et à la base de connaissances du pilote ODBC SQL Server pour obtenir de l'aide.

  5. Si vous ne l'avez pas déjà fait, installez Genero sur cette machine.

    Remarque Un de nos clients nous a signalé que si vous souhaitez utiliser Genero avec SQL Server 2016, vous devez utiliser Genero 3.00.10 ou une version ultérieure.

    Lors de l'installation, vous êtes invité à choisir la base de données par défaut pour fglrun. Si vous voulez SQL Server 2014 ou une version antérieure comme base de données par défaut, choisissez l'option [7] lorsque vous y êtes invité. Si vous souhaitez utiliser SQL Server 2016 ou une version ultérieure, choisissez [6] . Si vous ne souhaitez pas utiliser SQL Server comme base de données par défaut, choisissez une autre base de données. Vous pouvez définir la base de données application par application en spécifiant le pilote de base de données à utiliser dans votre code source Genero.
  6. Créez un programme Genero qui récupère certaines données 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. Définissez l'environnement pour que Genero puisse charger le pilote ODBC SQL Server :
    export LD_LIBRARY_PATH=/usr/local/easysoft/sqlserver/lib
    

    Si vous n'avez pas installé le pilote Easysoft sous /usr/local, modifiez le chemin en conséquence.

  8. Compilez et exécutez votre programme :
    $ cd /opt/fourjs/gep/fgl/bin/
    $ ./fglcomp connect.4gl
    $ ./fglrun connect.42m
    Value1
    Value2
    
  9. Si vous rencontrez des problèmes lors de l'exécution du programme, essayez de définir 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