Re: How to create an ODBC datasource in CI - Mailing list pgsql-odbc

From Dave Cramer
Subject Re: How to create an ODBC datasource in CI
Date
Msg-id CADK3HHLy-h_dGx-DjmWkOaFL_ginc=38D1VgvYUkURJg4aFAqA@mail.gmail.com
Whole thread Raw
In response to Re: How to create an ODBC datasource in CI  (Adrian Grucza <adrian.grucza@iress.com>)
Responses Re: How to create an ODBC datasource in CI  (Adrian Grucza <adrian.grucza@iress.com>)
List pgsql-odbc



On Sat, 30 Mar 2024 at 06:17, Adrian Grucza <adrian.grucza@iress.com> wrote:
If your aim is to run the regression tests then winbuild/regress.ps1 does everything for you: installs a dev version of the driver, creates a DSN for it and runs the tests against a PostgreSQL server (which you could run in Docker).
Well the problem is that it waits for input which we can't do on github actions 

But if you want to use the MSI installer, running that will install the driver for you:

Start-Process 'C:\\psqlodbc_x64.msi' '/quiet /passive' -PassThru | Wait-Process;

You then just need to create the DSN:

Add-OdbcDsn -Name "MyPostgresDsn" -DsnType 'User' -Platform '64-bit' -DriverName 'PostgreSQL Unicode(x64)'

Set-OdbcDsn -Name "MyPostgresDsn" `
 -DsnType "User" `
 -SetPropertyValue @("Servername=${env:DB_HOST}" `
 ,'Port=5432' `
 ,"SSLMode=${env:SSL_MODE}" `
 ,'BoolsAsChar=0' `
 ,'FetchRefcursors=1' `
 ,'MaxVarcharSize=4094' `
 )

Thanks,

Will try this

Dave 

Adrian Grucza
Technical Lead
Office: +61390185800
The contents of this email originated from Iress. For this purpose Iress includes Iress Limited and/or any of its subsidiaries, holding companies and trading entities.
If you have received this email in error please notify the sender immediately and delete this email. 

On Sat, 30 Mar 2024 at 6:53 pm, Dave Cramer <davecramer@gmail.com> wrote:


CAUTION: This Email is from an EXTERNAL source. Ensure you trust this sender before clicking on any links or attachments.




On Fri, 29 Mar 2024 at 18:49, Adrian Grucza <adrian.grucza@iress.com> wrote:
winbuild/regress.ps1 uses RegisterRegdsn.exe (built from test/RegisterRegdsn.c) to install the driver and register a data source. You could use that, or you may find it easier to use the Wdac cmdlets in PowerShell, specifically Add-OdbcDsn and Set-OdbcDsn.


Yes, I saw those, was going to try them. I think the challenge is registering the driver first though.

Dave 

iress.com
Adrian Grucza  
Technical Lead
Office: +61390185800
adrian.grucza@iress.com
www.iress.com
Level 16 385 Bourke St
 MelbourneVictoria, 3000
The contents of this email originated from Iress. For this purpose Iress includes Iress Limited and/or any of its subsidiaries, holding companies and trading entities. If you have received this email in error please notify the sender immediately and delete this email. 
nosig
On Sat, 30 Mar 2024 at 2:12 am, Dave Cramer <davecramer@gmail.com> wrote:


CAUTION: This Email is from an EXTERNAL source. Ensure you trust this sender before clicking on any links or attachments.




On Fri, 29 Mar 2024 at 08:41, Jon Raiford <raiford@labware.com> wrote:

I’m not familiar with GitHub Actions, but I know you can create data sources from the command line. This is all stored in the registry, which you can update using the reg command.

 

https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/reg

 

The easiest thing to do may be to create a data source manually and export it into a .reg file. You can then either import the data source using the reg file or just use it as a template to add the entries as you like.


Just run Regedit and locate the data source you would like to export.

 

64-bit System Data Sources: \\HKLM\SOFTWARE\ODBC\

32-bit System Data Sources: \\HKLM\SOFTWARE\WOW6432Node\ODBC\

64-bit User Data Sources: \\HKCU\SOFTWARE\ODBC\

32-bit User Data Sources: \\HKCU\SOFTWARE\ODBC\     <- This is mixed in with the 64-bit entries and the driver referenced determines if 32/64

 

Drivers are defined under the system keys under the section ODBCINST.INI. Data sources are defined under the section ODBC.INI, both as a folder containing the details of the data source as well as an entry under “ODBC.INI\ODBC Data Sources”, which associates the data source with the driver to use with it.

 

I think if you view these entries in Regedit you will see the relationships between everything. It may help to create a data source for each type.

 

The above describes how to create a static ODBC data source. Alternatively you can use a file DSN or simply make a connection string from your test case and avoid the data source completely. Although I suppose you may want to do each in order to test each possibility.

 

Let me know if you have any questions or need assistance.

 

Jon


Hey Jon,

Thanks, that will help immensely.

It's been a while since I've done anything with Windows.

Dave 

 

 

From: Dave Cramer <davecramer@gmail.com>
Date: Friday, March 29, 2024 at 7:25
AM
To: PostgreSQL mailing lists <pgsql-odbc@postgresql.org>
Subject: How to create an ODBC datasource in CI

Greetings,

 

In order to test the driver using github actions we need to be able to create a windows datasource. Usually this requires some kind of user interaction.

 

Has anyone done this on GH actions ?

 


Dave Cramer

pgsql-odbc by date:

Previous
From: Adrian Grucza
Date:
Subject: Re: How to create an ODBC datasource in CI
Next
From: Adrian Grucza
Date:
Subject: Re: How to create an ODBC datasource in CI