How to distribute FDSN to other users or machines? - sql-server

I am using a File DSN to connect to a SQL Server database in a linked tables project with MS Access as front end.
When I open the created .dsn file, it looks like this:
[ODBC]
DRIVER=SQL Server
UID=XXX
DATABASE=XXXX
WSID=XXXXXX
APP=Microsoft Office 2010
Trusted_Connection=Yes
SERVER=XXXX,XXX
Description=XXX
Here, it is showing my workstation's host name and my user id as I have created the DSN
If I want to share the app along with DSN , do I have to change any details in the DSN file ?
What is procedure to be followed to distribute this FDSN to multiple machines? Or simply sharing the file would suffice
We prefer to avoid System DSN as it causes difficulty in deploying the app to multiple users in production
Any thoughts on this ?

Eliminate the DSN and use DSN-less connections. Here are some links
http://www.accessmvp.com/djsteele/DSNLessLinks.html
http://www.databasejournal.com/features/mssql/article.php/1491011/ODBC-DSN-Less-Connection-Tutorial.htm
https://support.microsoft.com/en-us/kb/147875/en-us?wa=wsignin1.0

Related

Database Link to ATP/ADW

I am having challenges in creating a database link from an ORACLE DBCS to an ORACLE ATP.
I am creating a database link from an ORACLE DBCS (PAAS) to an ORACLE ATP (Autonomous Transaction Processing) database. I can't seem to get the proper connection set-up for this. Anyone who has successfully been able to?
My connection to the ORACLE ATP with SQLDeveloper is a zipped Wallet.
CREATE DATABASE LINK TARGET_DB
CONNECT TO admin IDENTIFIED BY "Myp#ssword123!"
USING
'(DESCRIPTION=
(ADDRESS=
(PROTOCOL=tcps)
(HOST=99.99.99.99)
(PORT=1522))
(CONNECT_DATA=
(service_name=eoakbwd540pwkbi_myuseratp_high.atp.oraclecloud.com)))';
-- ip address and service names are fake
When I test the DB link using SQLDeveloper I get the ORA-28788 error code.
0. Setup
You start out with two instances:
DBCS - in my case Enterprise Edition/12.2 with port 1521 opened in the security lists
ATP Instance
Download the wallet zip-file from the ATP instance containing a tnsnames.ora, sqlnet.ora and some wallet files.
Then upload the unzipped files to your DBCS instance.
1. Wallet Configuration
On DBCS: Replace the sqlnet.ora and tnsnames.ora in the $ORACLE_HOME/network/admin folder with the ones from the zip file (might need to merge them if you have existing entries that are still needed).
Replace the WALLET_LOCATION in the sqlnet.ora file with the actual location of your wallet files (specifically the cwallet.sso and ewallet.p12). Make certain the permission are open for the oracle user.
2. Database Link
You have two options for the database link (that I know of). First get the service names (e.g. randomatp_high) from your tnsnames.ora file.
Using the username/password of your ATP admin user in the database link connection command
create database link <DBLinkName> connect to ADMIN identified by "<ATPpassword>" using '<ATPServiceName>';
Create two users with the same username and the same password in DBCS and ATP, connect to DBCS as that user and then:
create database link <DBLinkName> using '<ATPServiceName>';
You might need to use alter session set global_names=false; to help with ORA-02085 saying the database link is connected to a different DB.
3. Test
Test the database link with e.g.:
select banner from v$version#<DBLinkName>;

Users on my network cant open the Sql server linked tables from their MS Access Form

Hi there hopefully this makes sense.
I have split the database into backend and Frontend.
In the frontend i also have added some linked tables from a SQL Database which are on the network. The DNS files are in the same folder as the front. Now when ive copied across the frontend to the end users desktop when they try to open the table via a form they get the error: "ODBC Call failed" anyone know why that might be?
1 of the end users is using the free version of ms access(2016 runtime) and other has full MS Access but both get the same error.
As it wasnt happening during the development stage on my computer and my collegues. I am a bit lost on how to fix the issue other than convert the linked tables to local tables and do a weekly update of them from the SQL server via my computer where the links work.
Seeing as a normal backend table that is linked to the front works fine. Just would like it to directly call the information from the SQl Server.
Make sure on your development workstation you link the table using a FILE DSN. When you link, Access then converts the links to what we call DSN-less.
The above means then you don’t have to copy or setup or use ANY kind of DSN on each workstation. So do NOT use a “system” DSN – that uses settings in the registry that you have to setup on each workstation.
The next issue to be aware of is which SQL driver you use to link the tables. If you use the “standard” SQL Driver when linking, then you can be SURE those drivers are installed by default on each workstation.
If you use “Native 11” (or later), then you have to ensure that the Native 11 (or later) drivers are installed on each workstation for this to work. The native drivers are better choice, but they are not by default installed on each workstation.
So I suggest you delete the links, or use the linked table manager to re-link the tables – just make sure you use a FILE dsn – since once the tables are linked, then Access ignores and does not use the DSN anymore – you don’t need it, and you could even delete the DSN and you linked tables will still work.

Knime with database

How to add new driver into database through KNIME preferences? Generally,
File-> Preferences -> Add File/ Add Directory
The files accepted are only of *.jar or *.zip.
MY QUESTION
I have installed ODBC64 into my PC. Now I need to add that file into knime preferences and use the Driver into Database Connector node.
How to add and use the file into my Knime?
And What is meant by Database URL jdbc:mysql://host:port/database_name
Host and port?
Can anyone please briefly explain and help me out?
I'm assuming based on your database URL of jdbc:mysql:// that you are wanting to connect to a MySQL database? Based on that, then there is a thread on the KNIME forum which explains pretty much all of your question, but the process is the same for any other sort of database. The steps are as follows:
Download the jdbc driver (e.g. from https://dev.mysql.com/downloads/connector/j/ for MySQL) - NB KNIME now comes bundled with several drivers already installed - MySQL is one of those - in the Database Connector node the drivers installed are listed.
In the database URL, you need to change those parts in <> - i.e. the hostname, port number and database name. Hostname may be localhost if it is a local database. The port number you will need to find from your database administrator, or will be what you set it up to be if you are running a local database (3306 is the default for MySQL), so for a database called 'myDB' on the default port on your local machine, the url should be jdbc:mysql://localhost:3306/myDB
For some of the shipped drivers, there are also connector nodes, e.g. MySQL Connector, SQLite Connector, PostgreSQL Connector etc, which still require the server name/port and database name, but take them as individual inputs rather than requiring editing of the URL
Recent versions of KNIME are based on Java 8, which dropped support for ODBC, so you should first find an alternative driver for your database and only after you can connect to that with KNIME as described on the KNIME documentation page for DB connectors.
You have several nodes which allow you to connect to a DB (especially MySQL).
I remember there was a dedicated MySQL node for connecting with the DB.
Just remember this: you have to input the IP adress : port, then insert credentials and point to the DB you want to open by default.

Connecting to Pervasive 11 with Odbc

For a client I had developed years ago an application that uses an existing database on Pervasive 10. The database itself is used by a propriety application. After a full server re-install Pervasive 11 was installed and somebody did a migration. I am not sure what exactly was performed but I do observe that the propriety application actually is working, so the connection to the Pervasive DB works.
The objective is to get the ODBC connection working again.
My observations so far:
When I login in the control center I notice two main items, a Local Client with a MicroRouter and server instance containing three databases (DEFAULTDB, DEMODATA, TEMPBDB). I have the impression that the customer database is missing here.
When I open the Software Monitor I notice that the MicroRouter is active and points to local .btr files which look like the tables from the database .
How can I have a ODBC connection pointing to the database? Normally the DSN references the database name.
To connect through ODBC, you need the data files and DDFs (FILE.DDF,FIELD.DDF, and INDEX.DDF at a minimum). Once you have the DDFs that describe the data files, you can create a Database in the Pervasive Control Center. When creating the Database, you can select the option to create an ODBC DSN.
You should be able to right click on the "server" in the Control Center and select New Database. From there, you'll set the Database Name and set the Dictionary (points to the DDFs) and Data Path (points to the data files,usually the same directory where the DDFs are).

How to override or workaround compiled DB connection info

I've faced a bit strange problem. There is a site client would like to duplicate on another domain name. Site is built on ASP(yes, old v1 ASP :( ) with SQLServer. Problem is that all the database operations, including connection information is compiled into a DLL library.
Is there a way to some how intercept, override or workaround this?
Platform:
Windows 2000 Server
SQLServer 7
ASP v1 (VisualBasic)
What a nightmare...
If you have control over the new database server, and the connection string references the database server by name, you could add a line in the hosts file which points the name of the old server to a new ip address. Then you still have to create a user with the same password on the new database server.
Yes! However, your new database name MUST be smaller or equal to the length of your old one. Simply open up the vb6 .dll in any Hex Editor and search and replace. Make SURE you do not change the length of the DLL or shift any bytes around.
Failing that, add a hosts entry to windows to redirect the connection.
Could it be that the application uses a DSN definition for the connection?
In Control Panel -> Administrative Tools open ODBC Data Source Administrator. Have a look at the System DSN tab. Does there seem to be anything listed there that is related to the application?
Before you hack your DNS or rename the server, be aware that the SQL Server client supports aliases specifically for this scenario: How to: Create a Server Alias for Use by a Client.
The SQL 2000 tool for configuring an alias is the Client Network Utility.
Do you have any configuration options at all from asp? Even dbname or the such? If so you might be able to use two separate servers for IIS and use a single db server. I'm afraid you might need to find the source or the guy who wrote it.
If you could figure out the connection string or DNS you might be able to do something.
You could write your own passthrough ODBC provider.

Resources