How to set up ODBC 10.1b for Progress DB - odbc

I'm trying to set up an ODBC client driver for Progress 10.1b. I was able to install the client software that is required, but there is apparently also an ODBC.reg script file that needs to be run to correctly set up the registry in order for me to use the ODBC drivers.
Can anyone point me to where I would find this script? Or tell me the set of registry entries that would have to be made?

That's not a standard part of the install process.
Are these the steps that you followed to get the client installed?
If, as you say, the client was properly installed you just need to setup the DSN. The following should work (stolen and lightly edited from the Progress Knowledge Center):
Start up the ODBC Data Source Administrator(found in Control Panel within the Administrative Tools folder)
Example:
1. Select the System DSN tab
2. Select the Add button to the right
3. Select the MERANT 32-BIT Progress SQL-92 driver for your version of Progress.
4. Select Finish
That brings up the configuration screen for a new DSN.
Fill-in the following information:
1. Data Source Name..... (whatever you choose)
2. Description.......(optional and whatever you think is appropriate)
3. Host Name......(the server where the database is located)
4. Port Number.... (the port your database broker was started with...if multiple
brokers..the SQL broker port)
5. Database Name....(database name you wish to connect to)
6. User ID...(the user you logged in with or if security is turned on..a user
that can connect to the database)
7. Leave all other tab settings at the defaults for the initial configuration.
8. Select the Apply button.
9. Select the Test Connect button.
10. Screen requesting a password pops up. (enter one only if the database
normally requires a user name and password from the 4GL side to enter the database)

Related

Excel ODBC Connection Issues and HY000 CURLError

I am trying to connect Excel to our Snowflake instance so that users can pull data into Snowflake. I've installed the latest ODBC driver and set the User and Server as required. The authenticator is set to externalbrowser. When we attempt to use that connection within Excel, one of two things occurs:
A bunch of browser tabs open but the user is able to connect and bring in data. Not sure why we have multiple tabs but at least they get what they need.
The connection just spins, and ultimately we end up with a HY000 error saying that the REST Request for our URL failed; code=52 msg=Server returned nothing (no headers, no data), oS code=2, osMsg='No such file or directory'.
We have tried multiple options and all of our other connections (JDBC for example) works just fine with the external browser setting. There doesn't seem to be much of a difference between users that can connect and those that can't.
There is a good Knowledge Base article written about connecting to Snowflake from Excel.
Skip Step 1: Configure SSO with Azure AD if you are not using SSO. Go on to Step 2 onward.
This is the article: https://community.snowflake.com/s/article/HOW-TO-connect-to-Snowflake-authenticating-with-Azure-AD-SSO-from-MS-Excel-ODBC-driver

ODBC 18 vs ODBC 17 in Windows Data Source Manager

I have a microsoft access front end connecting to a SQL database for the backend. I have been using this setup for the last 4 years and I have recently run into issues with new associates not being able to use the tool due to our company retiring ODBC driver 17 from our internal systems. I don't understand what is the difference between ODBC Driver 17 and 18 that would cause version 18 to fail.
How the driver is used:
in ODBC Data source manager a manual link to our database is created. The associate enters a specific name for the link "Our_link" and in the Driver name it states "ODBC Driver 17 for SQL Server"
Then inside of our access front end we link to that driver like so:
Const ConStrSQL As String = "DRIVER={ODBC Driver 17 for SQLServer};Server=OurServer;Database=Our_DB;UID=User();Trusted_Connection=Yes;"
The issue I am having is when I try to create the ODBC connection in the data source administrator using ODBC driver 18 I get an error that states:
[![`"Connection Failed: The certificate chain was issued by an authority that is not trusted"`]
Not sure if this extra information would help but I also see the following:
SQLState: 08001
SQL Server Error -2146893019
Client unable to establish connection
Is this something I need to reach out to our database admin group and ask if they installed driver 18 on the server side?
I'm guessing it has to do with the changes to the encryption behavior with version 18, specifically that encryption is required by default. The recommended fix is to install a trusted certificate on your server[1], but if you don't want to deal with the DB Admins you might be able to still connect by specifying No (or optional) to Encrypt in your connection string.[2]
There is a chance that won't work the server is set to Force Encryption, but it sounds like the change is all on the client end. Ideally you would want the encryption working all the time, so if you are using a self-signed certificate add the public key from the SQL server to trusted certificates on the client machines.
[1]: https://techcommunity.microsoft.com/t5/sql-server-blog/odbc-driver-18-0-for-sql-server-released/ba-p/3169228)
[2]: https://learn.microsoft.com/en-us/sql/connect/odbc/dsn-connection-string-attribute?view=sql-server-ver16#encrypt
The 'fix' that was found with the help of one of my database admins is as follows:
In the data source manager there is an option to select that states "Trust Server Certificate"
Once that option is selected I was able to complete the rest of my DSM connection. One thing to note is I was receiving the previous error when trying to change the DEFAULT DATABASE option. The checkbox to "trust server certificate" is on the screen after that.. so I had to skip choosing my default database, check the box, then go back and select my default database for everything to work.
I haven't completed all my testing in Access to make sure everything works 100%, but my quick testing is very promising.

nsis nsODBC plugin not accepting all parameters

I am using the NSIS nsODBC plugin to create an systemdsn entry.
When I call the command as shown below it works and creates my system dsn odbc.
nsODBC::AddSysDSN "ODBC Driver 11 for SQL Server" "DSN=test" "server=localhost" "DATABASE=test" "Trusted_Connection=Yes"
Pop $0
Pop $0 Returns "Successful" and in my ODBC Data Source Administrator I see my connection and it works.
But I need to create my system dsn with a username and password, on the forums and site I have seen they say it should look like the following:
nsODBC::AddSysDSN "ODBC Driver 11 for SQL Server" "DSN=test" "server=test" "DATABASE=test" "UID=test" "PWD=test"
Pop $0
When I run this command Pop $0 returns the text "error" and no system dsn is created.
I have checked the SQL server instance it has the test database, a login account called test which is a system admin account, it is in mixed mode authentication.
Any suggestions as to what I am doing wrong as to why it will not create a system dsn with a username and password?
Thanks in advance
Andy
That plug-in is badly designed because it uses everything on the stack as its parameters. It is also a very thin wrapper around the database API so as long as your stack is empty before calling then the problem is most likely a missing/wrong parameter and not a bug in the plug-in.
Calling the plugin with parameters like "foo=1" "bar=baz" is "translated" to foo=1\0bar=baz\0\0 which is what you see on MSDN and that is the C/C++ syntax for a double null terminated key-pair string.
Why is Server set to test and not localhost?
The code listed on the MSDN page for ConfigDSN says:
For example, to configure a data source that requires a user ID, password, and database name, a setup application might pass the following keyword-value pairs:
DSN=Personnel Data\0UID=Smith\0PWD=Sesame\0DATABASE=Personnel\0\0
Maybe the pair order matters, I don't know.

How to connect to Sage 100

I am developing a Windows Forms application which is required to connect to Sage 100 and get order information. I am using ASP.NET and SQL Server 2008.
Is there a way to connect to the sage 100 database?
If you've installed the ODBC driver that came with Sage 100, you can get a provider string by adding a System DSN in your ODBC Data Source Administrator (Start Menu -> Administrative Tools -> Data Sources (ODBC)).
Click the System DSN tab, then Add... On the Basic tab, Give the DS a name and description, then enter the database directory. Just as the dialog box says, it should be the directory that contains your PROVIDEX.DDF file in your Sage 100 installation.
On the Logon tab, enter the company code, user ID and password for the company you want to access.
On the Options tab, enter the following in the Prefix for data files box:
<Sage 100 ERP directory>\SY\, <Sage 100 ERP directory>\==\
Enter the following in the Path to Views DLL box:
<Sage 100 ERP directory>\Home
Obviously on both of those, you want to use your actual Sage 100 ERP directory.
Check Dirty Read, Burst mode and Strip trailing spaces.
Then, on the Debug tab, test your connection. If it works, click Connection String and copy the connection string.
Next, in SSMS, add a new Linked Server. Enter a Linked server name, choose Microsoft OLE DB Provider for ODBC Drivers from the dropdown list, enter a Product name (doesn't matter what you put there) and paste the connection string in the Provider String box. Hit OK and the new Linked Server should appear. Now, you can create Views in your app database to access the Linked Server and use those views just like data tables.

Windows Mobile: "My network card connects to" registry settings

Can anybody please tell me the registry setting(s) that are affected in Windows Mobile 6.1 when a user selects Start -> Settings -> Connections -> Wi-Fi and then changes the value of the "My network card connects to" drop down list on the "Network Adapters" tab?
I have a device that seems to default this to "The Internet" when in fact the Wi-Fi connects to the corporate network and I would like to be able to change this programatically rather than expecting 250+ users to have to do it manually every time they reboot their devices.
Thanks.
I'm not certain that it is a registry change, but if it is, it's easy to determine.
Use the remote registry editor and attach to the device
Save the entire registry to a file
Change the network settings
Save the registry again
Use your favorite diff program to compare the two files
I think you should be able to change this setting using provisioning xml, either via DMProcessConfigXML api, or by making a setup cpf with the xml in it and running it on the device. This post details how to build the xml into a cpf.
The CSP you would be interested in is the Wifi CSP
The 'Work Network' and 'The Internet' are metanetworks that are specified in the xml by guid, usually in the DestId parm. My answer to this question details the xml you can use to pass to DMProcessConfigXML to read the settings on the device to see what they are. Then you can build some xml to just set the right setting. I suspect that you would just need to set the DestId parm of the appropriate wifi entry to the 'Work Network' guid.
According to my registry comparison on WM5 (HTC Touch HD), corroborated by values in http://msdn.microsoft.com/en-us/library/bb737539%28v=MSDN.10%29.aspx, this setting is specified in the registry key:
HKEY_LOCAL_MACHINE\ControlPanel\WiFi\Ethernet\DestID.
"{436EF144-B4FB-4863-A041-8F905A62C572}" (default) The Internet
"{A1182988-0D73-439e-87AD-2A5B369F808B}" Work
I also tried a CE2003 device (Motorola MC50), but couldn’t detect any registry changes. The key above does not exist in the registry on this device.

Resources