ODBCexists in the folder provided, and is working per the walkthrough here: Home - Asterisk Documentation , and extconfig is configured according to The Asterisk RealTime Architecture (ARA) -VoIP-Info , swapping MySQL for ODBC and replacing names/tables with the ones in the database.
asteriskhost*CLI> module show like odbc
Module Description Use Count Status Support Level
cdr_adaptive_odbc.so Adaptive ODBC CDR backend 0 Running core
cdr_odbc.so ODBC CDR Backend 0 Running extended
cel_odbc.so ODBC CEL backend 0 Running core
func_odbc.so ODBC lookups 0 Running core
res_odbc.so ODBC resource 0 Running core
res_odbc_transaction.so ODBC transaction resource 0 Running core
6 modules loaded
I cannot seem to get this to work. I do not want to use the odbc.ini file because it requires engaging a sysadmin every time and we have a lot of data sources. We would be issuing tickets non-stop to make that happen.
I can understand your frustration. The problem is that the set up is different for every database. Some may require set up via the ODBC.INI and some may not. For example with Oracle you configure their TNSNAMES.ORA file, for SQL Server you need to configure ODBC.INI, then there are the environment variables that need setting too.
Bottom-line, I do not want to ask for a new entry in the ODBC.ini every time we have to connect a new datasource. If that is the only choice, it is not desirable but it is what it is but I want to explore all possibilities.
Unfortunately I think this is a Unix-specific issue. Under Windows ODBC drivers are automatically registered, so it is possible to use the NOPROMPT LIBNAME option in many cases to do a complete configuration.
The oracle example is more easy for me as it is documented now SAS/ACCESS(R) 9.4 for Relational Databases: Reference, Seventh Edition See the path settings. Those are the settings found in the tnsnames.ora. Ergo: You don not need that file tnsname.ora .
With ODBC the Libname states SAS/ACCESS(R) 9.4 for Relational Databases: Reference, Seventh Edition required prompt complete are not supported with Unix but noprompt is. There is dependency with the ODBC driver as you have many (Unix) and not just one (Windows) that is preinstalled. SAS/ACCESS(R) 9.4 for Relational Databases: Reference, Seventh Edition
For the necessary confusion look how often dedicated drivers are using the odbc.ini almost everybody is using that. This progress one is mentioned for MS-SQL Unix Linux ODBC Driver from Progress DataDirect
The jdbc has a connection object not using the odb.ini (server port etc) but is different for each type of dbms. SAS has documented the wasy how to connect th SAS/Share SAS(R) 9.4 Drivers for JDBC: Cookbook (wrong direction you want from SAS to others ) this one are some examples 52777 - Examples of SAS/ACCESS Interface to ODBC LIBNAME code used to access a Microsoft SQL Server... but not complete to your question
I have done a lot of research before I made it to the forums. However, no where that I can find documents whether it is possible. I need to know the extent of what is doable with noprompt because it is the only option not dealt with in the ODBC Access documentation. COMPLETE and PROMPT are both labelled explicitly that they are not available on Unix. That means noprompt works but it has limitations. Ok, what are those limitations.
In my situation, none of the other Access engines matter. We have all of them and all are used. However, the problem I am dealing with is specific to the ODBC driver. SAS, AFAIK, does not have an Access engine for JDBC (wish it did) so I cannot use it for JDBC consumption. I could use another means such as SOAP/REST but that is hard for most SAS programmers so I do not want to look at that yet.
AlanC,, I mentioned the JDBC approach as it using a connection string bypassing the odbc.ini on the same ODBC client installation.
Conclusion: It should be technically possible to have a DBMS ODBC connection in SAS not needing that ini file. We do not know whether and how SAS would do this.
JDBC is java code you can run java code from within SAS. SAS(R) 9.4 Language Reference: Concepts, Fifth Edition
The major point could be: Which SAS version you are running and which ODBC software is installed on the Unix. You didn't mention anything about that. The remarks are rather cumbersome that those choice is having much impact on the coding with ODBC interfaces. "see your odbc client installation manual". Yup which one?
When you have that and a jdbc sample is given put that in the noprompt area. Reviewing that approach to jdbc-oracle it is the same string going into the path option.
Any error message should help. A firewall or other one could be a blocking one. First try something easy that is working.
There are the names of the drivers being mentioned in the odbcinst file. "At the beginning of the file is a section named [ODBC Drivers] that lists installed drivers, for example, DataDirect 8.0 MongoDB=Installed"
I gave up trying to embed all the connection parameters in noprompt='' so that everything was contained in a single SAS program . The OP was trying to avoid engaging Admins to change the system $ODBCINI values. Instead, I created my own versions in $HOME/odbc and referenced them like this:
The odbc package provides a DBI-compliant interface to Open Database Connectivity (ODBC) drivers. It allows for an efficient, easy way to setup connection to any database using an ODBC driver, including SQL Server, Oracle, MySQL, PostgreSQL, SQLite and others. The implementation builds on the nanodbc C++ library.
The odbc package is often much faster than the existing RODBC and DBI compatible RODBCDBI packages. The tests below were carried out on PostgreSQL and Microsoft SQL Server using the nycflights13::flights dataset (336,776 rows, 19 columns).
DSS currently does not support connecting via ODBC right now, only JDBC. Notably, it's important to note that ODBC is primarily used as a connector in a Windows environment, while DSS is Linux-only so it doesn't make much sense to use ODBC through DSS. With that being said, if ODBC is a requirement, there are 3rd party packages and modules out there, such as pyodbc, which would allow you to create your own ODBC connection through Python directly.
You do not say what database you actually need to connect with. ODBC is a MS Windows way to connect to a variety of databases. Dataiku running on Linux and Macintosh OS X is using JDBC drivers to connect to databases.
I am evaluating Presto for an upcoming big data project, so I am trying to find the best ODBC driver to use for integration with UI/BI tools. As far as I can see, the options are:1) presto-odbc on GitHub: -odbcSeems to be defunct, not updated in a long time.2) Teradata Presto ODBC: be updated since version 0.167t, and requires a config workaround to work with vanilla Presto (setting presto.version=0.148 in the config file), which may or may not have side effects, not sure yet.Also, this *seems* to be a free driver, although I can't see any licensing information explicitly given?3) Starburst Presto ODBC/Simba Presto ODBC:
-odbc-jdbc/Apparently these are one and the same, with Starburst licensing the driver from Simba. I don't know if there are licensing differences between them. On Simba's page, it states that 0.188 is the latest version supported.Does anyone know of other options for Presto ODBC drivers?Thank you,
Mladen
At my current job, we're looking to implement our own odbc driver to allow many different applications to be able to connect to our own app as a datasource. Right now we are trying to weigh the options of developing our own driver to the implementation spec, which is massive, or using an SDK that allows for programmers to 'fill in' the data specific parts and allow higher levels of abstraction.
Has anyone else implemented a custom odbc driver? What pitfalls did you run into? What benefits did you see from doing it yourself? How many manhours would you approximate it took? Did you use an SDK, and if so, what benefits/downsides did you see from that approach?
A simple Python 2.7 example of a server backend that understands parts of the Postgresql wire protocol is below. The example script creates a server that listens to port 9876. I can use the command psql -h localhost -p 9876 to connect to the server. Any query executed will return a result set with columns abc and def and two rows, all values NULL.
ODBC drivers are very complex - the decision to write one should not be taken lightly. Reviewing existing open source drivers are a good approach for examples but most have shortcommings you may not want to emulate :) APIs are the same regardless of OS platform.FreeTDS for MSSQL/Sybase has one of the better open source ODBC Driver implementations I've seen.
If you control the application you can get away with implementing what may be just a very small subset of the spec in a reasonable amount of time. To use in a general purpose environment can require quite a bit more effort to get right. Off the top of my head in addition to simply implementing dozens of wrapper calls you will also have to implement:
I have not, but I once interviewed at a company that had done exactly this. They madea 4GL/DBMS product called AMPS of the same sort of architecture as MUMPS - a hierarchical database with integrated 4GL (a whole genre of such systems came out during the 1970s). They had quite a substantial legacy code base and customers wishing to connect to it using MS Access.
The lead developer who interviewed me shared some war stories about this. Apparently it is exceedingly painful to do and shouldn't be taken lightly. However, they did actually succeed in implemnenting it.
One alternative to doing this would be to provide a data mart/BI product (along the lines of SAP BW) that presents your application data in an external database and massages it into a more friendly format such as a star or snowflake schema.
This would suffer from not supporting real-time access, but might be considerably easier to implement (and more importantly maintain) than an ODBC driver. If your real-time access requirements are reasonably predicitable and limited, you could possibly expose a web service API to support those.
3a8082e126