Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Conectando o Genero ao SQL Server


O Genero fornece um driver de banco de dados para uso com o driver ODBC do SQL Server da Easysoft, e isso permite que você crie programas Genero que usam o SQL Server como backend.
  1. Baixe o driver ODBC do SQL Server para Linux de 64 bits. (Registro obrigatório.)
  2. Instale e licencie o driver ODBC do SQL Server na máquina onde o Genero está ou será instalado.
    Para obter instruções de instalação, consulte a documentação do driver ODBC.

    Observação Você precisa do gerenciador de driver unixODBC instalado em sua máquina. A distribuição Easysoft inclui uma versão do unixODBC Driver Manager com a qual o driver ODBC do Easysoft SQL Server foi testado. O programa de instalação do driver Easysoft oferece a opção de instalar o unixODBC.
  3. Crie uma fonte de dados ODBC em /etc/odbc.ini que se conecte ao banco de dados SQL Server que você deseja acessar do Genero. Por exemplo:
    [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. Use o isql para testar a nova fonte de dados. Por exemplo:
    cd /usr/local/easysoft/unixODBC/bin
    ./isql.sh -v MSSQL-GENERO
    

    No prompt, digite "help" para exibir uma lista de tabelas. Para sair, pressione return em uma linha de prompt vazia.

    Se você não conseguir se conectar, consulte este artigo e a Base de Conhecimento do Driver ODBC do SQL Server para obter assistência.
  5. Se ainda não o fez, instale o Genero nesta máquina.
    Observação Um de nossos clientes nos informou que se você deseja usar o Genero com SQL Server 2016, você precisa usar o Genero 3.00.10 ou posterior.
    Durante a instalação, você será solicitado a escolher o banco de dados padrão para fglrun. Se você deseja o SQL Server 2014 ou anterior como seu banco de dados padrão, escolha a opção [7] quando solicitado. Se você quiser usar o SQL Server 2016 ou posterior, escolha [6] . Se você não quiser usar o SQL Server como banco de dados padrão, escolha outro banco de dados. Você pode definir o banco de dados por aplicativo especificando o driver do banco de dados a ser usado no código-fonte do Genero.
  6. Crie um programa Genero que recupere alguns dados do 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. Defina o ambiente para que o Genero possa carregar o driver ODBC do SQL Server:
    export LD_LIBRARY_PATH=/usr/local/easysoft/sqlserver/lib
    

    Se não instalou o driver Easysoft em /usr/local, altere o caminho de acordo.
  8. Compile e execute seu programa:
    $ cd /opt/fourjs/gep/fgl/bin/
    $ ./fglcomp connect.4gl
    $ ./fglrun connect.42m
    Value1
    Value2
    
  9. Se você tiver algum problema ao executar o programa, tente 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