Sql Anywhere 17 Odbc Driver

Posted on by
Sql Anywhere 17 Odbc Driver Average ratng: 5,5/10 1927 reviews

Try SQL Anywhere Developer Edition Trial for Free. Try SQL Anywhere Developer Edition Trial for Free. Skip to Content. Create custom mobile and IoT applications using embedded SQL database management software. Create powerful, data-driven applications that run remotely on laptops, handhelds, and smartphones. The URL contains jdbc:sqlanywhere: followed by a connection string. If the sajdbc4.jar file is in your class file path, then the SQL Anywhere JDBC driver is loaded automatically and handles the URL. As shown in the example, an ODBC data source (DSN) may be specified for convenience, but you can also use explicit connection parameters, separated by semicolons, in addition to or instead of the.

  1. Type the name of the data source. Select 'SQL Anywhere Native Driver' (or 'SQL Anywhere 17 Native Driver' for SQL Anywhere 17) to connect with the SAP SQL Anywhere database. Select a system DSN that was created in the ODBC administrator. Type the database login username. The username is set on the database server.
  2. SQL Anywhere is a relational database manufactured by SAP.It provides multiple advanced features such as: integrated referentials, stored procedures, proxy tables, line level locking, high availability, system event and user management, in-memory mode, intra-query parallelism, database mirroring, integration with LDAP directories, strong encryption, support of multiple interfaces, etc.
  3. Microsoft ODBC Driver for SQL Server is a single dynamic-link library (DLL) containing run-time support for applications using native-code APIs to connect to SQL Server. Use Microsoft ODBC Driver 17 for SQL Server to create new applications or enhance existing applications that need to take advantage of newer SQL Server features.
  4. When trying to execute SELECT statement with BIGINT value in WHERE clause, the following message is displayed: '07006: SAPODBC DriverSQL Anywhere Cannot convert 0123456 to varchar'.
  • Connecting to SQL Anywhere

Sql Anywhere 17 Odbc Driver


Description

Alpha Anywhere AlphaDAO includes a SQL Anywhere extension driver built on the SQL Anywhere ODBC driver. SQL Anywhere connections in Alpha Anywhere do not require a DNS to be configured, but the SQL Anywhere ODBC driver must be installed.

Using the SQL Anywhere Connection String Dialog

When you select SQL Anywhere as your connection type in the connection string dialog, the dialog below will be displayed. Enter your host and server name and provide any authentication information required to connect to your database. The values you select will be generated into the connection string at the top of the dialog for you as you make changes. Before you begin, make sure you have install the SQL Anywhere ODBC driver. For more information on obtaining the driver, see https://wiki.scn.sap.com/wiki/display/SQLANY/SAP+SQL+Anywhere+Database+Client+Download

  • The SQL Anywhere connection string dialog has tab pages for general properties, timeout values and TLS/SSL connections. Each of the properties are described below.

  • The Timeouts tab page lets you override default timeouts for login, the lifetime of the connection and for each query.

  • The TLS tab is used to enable TLS (also called SSL) connections. These connections are encrypted between Alpha Anywhere and the database. The database presents a certificate to the client and the client verifies that it trusts the certificate. You will need to provide a certificate file with trusted certificates (and possibly the certificate being provided by the server). You can also require that the server certificate match a name, company and/or unit values that you provide.

  • Creating a New Database in the SQL Anywhere Connection String Dialog

    You can create a database from the connection string dialog once you have successfully connected to your server by clicking on the 'Create Database' button. You will be prompted for the name. Type a valid database name. Click 'OK' to create a new database file.

SQL Anywhere Connection String Properties

Connection Property
Description
A5API

Setting the connection property A5API to 'SQLAnywhere' will load the SQL Anywhere driver when you open a connection.

A5DBVersion

The version number of SQL Anywhere your server is running. This will assure that your client connects using the driver best matched to your SQL Anywhere server.

Host

Enter the DNS name or IP address of your server.

Port

SQL Anywhere defaults to an IP address of 2638. It is a good practice to set the server port to a different value so that it is not as obvious that SQL Anywhere is being served. This is not a substitute for using secure connections.

Server

The specific SQL Anywhere server running on the target host. Note that the server is NOT the DNS name or IP. Enter that value as the host.

Database

Enter or select the name of the database you are targeting.

trusted_connection

Sybase Sql Anywhere 17 Odbc Driver Download

Set this value to 'yes' to use Windows authentication.

UserName

Set this value to the user name you wish to connect to the database with. This is only needed if trusted_connection is not set to 'yes'

Password

Set this value to the password value you wish to connect to the database with. This is only needed if trusted_connection is not set to 'yes' Using the connection string dialog will obscure the password within the connection string. Publish functions encrypt the connection string.

A5LoginTimeout

Set this value to control the timeout for new connections in seconds. Omit this setting to use the SQL Anywhere ODBC driver default value.

A5ConnectionTimeOut

Set this value to control the timeout for the lifetime of a connection in seconds. Omit this setting to use the SQL Anywhere ODBC driver default value.

A5QueryTimeOut

Set this value to control the timeout for a query in seconds. Omit this setting to use the SQL Anywhere ODBC driver default value.

A5TraceSQL

Set this value to Y to trace SQL statements. Within Alpha Anywhere messages are written to the trace pane. For Application Servers the output is written to a file. The actual location varies by server.

A5SSL

Setting this value to Y requests that connections made to SQL Anywhere be done using TLS (Transport Level Security). The predecessor to TLS is SSL (Secure Sockets Level) and is no longer the current protocol, but you will often see SSL in documentation and common usage.

A5TLSTrustedCertificateFile

Enter the file name or complete path to a file with trusted certificates, server certificates and any local certificates. If the file is for an IIS installation (including Alpha Cloud) you can omit the path and Alpha Anywhere wll look for the file in a subfolder of the deployed application. You will need to install the file into your web project in the same location.

A5TLSCertificateName

You can (optionally) set this field to the name of the certificate you expect for tighter security.

A5TLSCertificateCompany

You can (optionally) set this field to the name of the company you expect in the certificate for tighter security.

A5TLSCertificateUnit

You can (optionally) set this field to the name of the unit you expect in the certificate for tighter security.

A5InitialCommand

A string of commands (separated by semicolons ';') to be executed each time the connection is opened.

Using Portable SQL with SQL Anywhere

  • A SQL Anywhere connection automatically selects SQLAnywhere as it's syntax. The SQLAnywhere syntax handler reads table information, and generates DDL (Data Definition Language) such as CREATE TABLE, DROP TABLE and DML (Data Manipulation Language) such as SELECT, INSERT, UPDATE, DELETE. It is also responsible for translating AlphaDAO Portable SQL functions into native implementations. Although geography functions are not currently supported, the syntax handler has been extended to support all other portable SQL functions.

  • The SQLAnywhere syntax handler may be used with the ODBC and ADO.Net drivers as well.

First

*This blogpost created upon request. If you have any question or request .Please feel free to request.

There is a growing number of cases of migrating SAP SQL Anywhere from Windows servers to Linux servers. The application that was running on the Windows server will also be migrated to Linux, but if the application was connected via ODBC connection, how should I set it in Linux? This is only mentioned briefly in the manual, so I would like to explain the method.

I used Ver.17 in this post, but it seems that some versions will work slightly differently. If you have problems with other versions, please contact us from the comment section.

Environment used in the explanation

The Linux distribution used in this description is Ubuntu 16.04 LTS. The SAP SQL Anywhere uses Ver.17 64-bit version. Probably it can be used with any Linux distribution with a slight change, but if you find that it does not work with your distribution, please contact us from the comments section.

In addition, nowadays, even on Linux, a tool for setting the ODBC data source with GUI has been provided, but in the case of Linux server machine, there is a case that the GUI environment is not installed, so this time with CUI I would like to explain how to set up. You will be connecting via SSH, Telnet, or the console.

ODBC Driver manager

Unlike Windows, the ODBC driver manager required to use ODBC in Linux does not come standard with the OS, so it is usually necessary to install it additionally. (Although it may be installed as standard by the distribution or the option at the time of OS installation.)

There is one problem here, or there is a troublesome point, and unlike Windows provided as an OS standard function, there are several types of ODBC driver managers themselves in Linux. In addition, SAP SQL Anywhere for Linux itself comes with its own ODBC driver manager from SAP.

So which one should you use? As for the case, there are situations where this depends on the application. For example, in the case of an application developed in C-language by scratch, this needs to be decided by the developer. This means linking the libraries provided by the ODBC driver manager to build the application. This means that you can use any ODBC driver manager in this case. You can use the ODBC Driver Manager that comes with SAP SQL Anywhere to make it a SQL Anywhere-only application, or you can link against open source ODBC Driver Manager libraries such as unixODBC and iODBC for use with a wide variety of databases. There is also a way to develop an application.

If you use an application developed by a third party or a runtime development environment such as Python, you need to follow those guidelines. If you want to use an application that uses a module called pyodbc in Python, this module requires unixodbc, so you need to configure the SQL Anywhere ODBC driver to use with unixodbc.

* For Python, SAP SQL Anywhere also provides its own connection module, so there is also a way to use it.

In this blogpost, I will use unixODBC as the ODBC driver manager. If the unixodbc package is not installed, you need to install it additionally. I think it will be installed as following on ubuntu

# sudo apt install unixodbc

On the SQL Anywhere side, “SQL Anywhere Client” must be installed. (This is included if you installed by default.)

USER Datasource and SYSTEM Datasource

If you are reading this blogpost and you are using Microsoft Windows, you are familiar with the tool “ODBC Data Source Administrator”.
These are ….

    • User DSN

An ODBC data source that can only be viewed by the user who set it up.

    • System DSN

An ODBC data source that is visible to all (privileged) users on this OS. However, it cannot be set without administrative authority

There is a difference. This is a similar concept on Linux, which causes different locations for the files that configure the ODBC settings. If you are migrating from Windows, you need to decide which one you set on Windows, and how to use it if you set a new one.

On Linux, define the data source as a text file. The file that defines the ODBC data source is a file called “.odbc.ini”. The SAP SQL Anywhere ODBC driver searches for definition files and uses them in the following order: (If it is found, the search ends there, so if the same DSN exists, the one found earlier will be used.)

  1. Environment variable : ODBCINI
    • Please define the full path including the file name. Therefore, the file name does not have to be “.odbc.ini”.
      example : export ODBCINI=/etc/odbc.ini
  2. Environment variable : ODBC_INI
    • Please define the full path including the file name. Therefore, the file name does not have to be “.odbc.ini”.
      example : export ODBCINI=/etc/odbc.ini
  3. Environment variable : ODBCHOME
    • Define the path. Use the “.odbc.ini” file in that path.
      例: export ODBCHOME=/opt/odbcsettings
  4. Environment variable : HOME
    • Define the path. Use the “.odbc.ini” file in that path
  5. Home directory of current user (~)
    • Use “.odbc.ini” file on HOME directory of current user.
  6. PATH environment variable
    • We do not recommend using it. Make sure you can find the DSN with the previous settings.

On Linux, user DSNs and system DSNs are associated with file and directory permissions. For example, if you set the odbc.ini file that everyone can see with the “1. Environment variable : ODBCINI “, it is treated as a system DSN. And if you place .odbc.ini on the home directory (“5. Home directory of current user (~)) , this will be the user DSN because it will not be normally viewable by other users. As far as I can see, 1 and 5 are often used.

Setting of odbcinst.ini

odbcinist.ini is the definition of the ODBC driver library file. It corresponds to the driver in the ODBC administrator of Windows.

Instead of writing this file directly, it will be registered with the odbcinst command.
First, create the following text file with the name sqladriver.template.

[SQL Anywhere 17]
Description=SAP SQL Anywhere 17 ODBC Driver
Driver=/opt/sqlanywhere17/lib64/libdbodbc17_r.so
Setup=/opt/sqlanywhere17/lib64/libdbodbc17_r.so

* /opt/sqlanywhere17 is the default installation directory, but if you installed it in a different directory, change it appropriately. In addition, in the example, the 64-bit version is set. When using the 32-bit version, replace 64 to 32, such as lib64.

Then read the SQL Anywhere environment variables and specify the sqladriver.template file created by the odbcinst command to install.

$ source /opt/sqlanywhere17/bin64/sa_config.sh

$ sudo odbcinst -i -d -f sqladriver.template
odbcinst: Driver installed. Usage count increased to 1.
Target directory is /etc

The odbcinst command usually needs to be installed with root privileges. In the above example, Usage count is displayed as 1, but this is a count, so it may be a different number.

If the command is successful, the following entry will be written in /etc/odbcinst.ini.

[SQL Anywhere 17]
Description=SAP SQL Anywhere 17 ODBC Driver
Driver=/opt/sqlanywhere17/lib64/libdbodbc17_r.so
Setup=/opt/sqlanywhere17/lib64/libdbodbc17_r.so
UsageCount=1

The SAP SQL Anywhere ODBC driver is now ready to use.

Setting of odbc.ini

About example database

The database to connect in the example from here is as follows.

      • Host:localhost, running on port 2638
      • Database server name, database name is demo

I think that you can think of it as a database started with
dbsrv17 -n demo -x “tcpip (port = 2638)” demo.db
on localhost.

Define ODBC data source as SYSTEM data source

Make it available to multiple users as a system data source.
Here, create the ODBC data source definition file as /etc/odbc.ini. This file should not be modifiable by normal users. For example

# sudo nano /etc/odbc.ini

Create it with root privileges as above.

Enter the contents of the file as follows.

[demodb1]
Driver=SQL Anywhere 17
DatabaseName=demo
ServerName=demo
CommLinks=tcpip(host=localhost;port=2638)

[demodb1]:ODBC Data source name
Driver:ODBC driver name to use
DatabaseName:Database name
ServerName:Database server name
CommLinks:Network settings , above is . tcpip connection ,Host = localhost,port=2638

The settings are the same as when connecting from SQL Central or Interactive SQL, so refer to the SQL Anywhere manual.

As a reminder, make sure that Driver matches the name defined in odbcinst.ini and the contents enclosed in [] in the first line of sqladriver.template. Now the library defined in odbcinst.ini will be used and the ODBC connection will be established.

Define ODBC data source as USER data source

* For convenience of explanation, a connection to the same database as the database set as the system data source is created using a different DSN name. /windows-10-education-key-generator.html. (If you use the same DSN name, the connection setting found first will be used, as described above.)

Create a data source that only one user can use as a user data source. Create an ODBC data source definition file as .odbc.ini in your home directory. Now the configuration file can only be read by users who have that directory as their home directory (except for the admin user), so it will act as a user data source.

% cd $HOME
% nano .odbc.ini

Enter the contents of the file as follows.

[demodb2]
Driver=SQL Anywhere 17
DatabaseName=demo
ServerName=demo
CommLinks=tcpip(host=localhost;port=2638)

The user data source is now complete.

Test connection

Try a test connection. Here, I will use the command line SQL tool called isql that comes with unixodbc.

Don’t forget to read and set environment variables before using , like followings

# source /opt/sqlanywhere17/bin64/sa_config.sh
# export ODBCINI=/etc/odbc.ini

*export ODBCINI= …. is only need for use SYSTEM data source.

isql command syntax is following

isql <Data Source Name> <User name> <Password>

I will try to connect according to this. The following connects using DSN:demodb1.

# isql demodb1 DBA sql
+—————————————+
Connected!

sql-statement
help [tablename]
quit

+—————————————+
SQL>

If “Connected!” Is displayed, the connection is successful. Enter an appropriate SQL statement and check if the connection is correct.

# isql demodb1 DBA sql
+—————————————+
Connected!

sql-statement
help [tablename]
quit

+—————————————+
SQL> select * from customers;
+————+———————+———————+——————————-+———————+—————–+—————–+———–+————–+———————————+
ID Surname GivenName Street City State Country PostalCode Phone CompanyName
+————+———————+———————+——————————-+———————+—————–+—————–+———–+————–+———————————+
101 Devlin Michaels 114 Pioneer Avenue Kingston NJ USA 07070 2015558966 The Power Group
102 Reiser Beth 33 Whippany Road Rockwood NY USA 10154 2125558725 AMF Corp.
103 Niedringhaus Erin 190 Windsor Street Tara PA USA 19301 2155556513 Darling Associates
104 Mason Meghan 5520 Dundas Street East Cheslea TN USA 37919 6155555463 P.S.C.
105 McCarthy Laura 110 Highway 36 Clinton……………… snip ………………….

5165552549 The Apple Farm
+————+———————+———————+——————————-+———————+—————–+—————–+———–+————–+———————————+
SQLRowCount returns 126
126 rows fetched
SQL> quit
#

Next, try testing with your application.

Summary

As above, you can connect to SAP SQL Anywhere database via ODBC on Linux. It is a format that is often used, so I hope you find it useful.

Stay home , stay safe.