Re: How to create an ODBC datasource in CI

From: Dave Cramer <davecramer(at)gmail(dot)com>
To: Adrian Grucza <adrian(dot)grucza(at)iress(dot)com>
Cc: Jon Raiford <raiford(at)labware(dot)com>, PostgreSQL mailing lists <pgsql-odbc(at)postgresql(dot)org>
Subject: Re: How to create an ODBC datasource in CI
Date: 2024-04-01 20:20:18
Message-ID: CADK3HHKv1t-qGWct3FQvU3STPoMG0dEbAFDMtTtL1Qxp0ZOyWw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-odbc

On Sat, 30 Mar 2024 at 07:45, Adrian Grucza <adrian(dot)grucza(at)iress(dot)com> wrote:

> You might consider adding an optional "DsnProperties" string parameter to
> regress.ps1. When provided, the script could use that property string to
> create the DSN instead of calling input-dsninfo to prompt for the
> properties. In general I think it's preferable for CI to run tests using
> the same script that people use when developing psqlODBC locally. That way
> if the script ever breaks, then the break will be detected in CI. But I
> think it's also useful to test the MSI installer, which regress.ps1 doesn't
> do.
>
>
Did that, and it works, have one test failing because libxml2 isn't
installed.

create database and dsn · davecramer/psqlodbc(at)982bd55 (github.com)
<https://github.com/davecramer/psqlodbc/commit/982bd5525af1b0cc6b3c8c47000b6916a61ed388>

Anyone know how to install it on windows?

Dave

> On Sat, 30 Mar 2024 at 22:09, Dave Cramer <davecramer(at)gmail(dot)com> wrote:
>
>>
>>
>> *CAUTION: *This Email is from an EXTERNAL source. Ensure you trust this
>> sender before clicking on any links or attachments.
>>
>>
>>
>>
>>
>> On Sat, 30 Mar 2024 at 06:17, Adrian Grucza <adrian(dot)grucza(at)iress(dot)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(at)gmail(dot)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(dot)grucza(at)iress(dot)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
>>>>> <https://urldefense.com/v3/__https://learn.microsoft.com/en-us/powershell/module/wdac/?view=windowsserver2022-ps__;!!OSkwEA!gCqZhyHagy3EZmgiOmuwocdpV-3R-QcgE_7CIaErQdc74VCne94pcDCufFPcWI0H77tfxQMSrAT1qmFl__3d$> 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
>>>>
>>>>>
>>>>> [image: iress.com] <https://www.iress.com/>
>>>>> Adrian Grucza
>>>>> Technical Lead
>>>>> Office: +61390185800
>>>>> adrian(dot)grucza(at)iress(dot)com
>>>>> www.iress.com
>>>>> Level 16 385 Bourke St
>>>>> <https://urldefense.com/v3/__https://www.google.com/maps/search/385**ABourke**ASt**BMelbourne?entry=gmail&source=g__;wqDCoCvCoA!!OSkwEA!ixmz3KnCk7FeCEOER7k0VgQOdst-3hQ6tig2QotRG6tNQcHE8SCkKucYb2jeSPoJmsDSAHQ6AWUj-A7Sx2OU$>
>>>>> Melbourne
>>>>> <https://urldefense.com/v3/__https://www.google.com/maps/search/385**ABourke**ASt**BMelbourne?entry=gmail&source=g__;wqDCoCvCoA!!OSkwEA!ixmz3KnCk7FeCEOER7k0VgQOdst-3hQ6tig2QotRG6tNQcHE8SCkKucYb2jeSPoJmsDSAHQ6AWUj-A7Sx2OU$>
>>>>> , Victoria, 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(at)gmail(dot)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(at)labware(dot)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
>>>>>>> <https://urldefense.com/v3/__https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/reg__;!!OSkwEA!kxnwxUJLKxa3Oc4LrkTTgAXa9D0wwxO8NOTXoz4JjxveQ82EajBPe0J1twXNrVystZJlxhAOFAQi5AyABfRE$>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> 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\
>>>>>>> <https://urldefense.com/v3/__http://HKLM/SOFTWARE/ODBC/__;!!OSkwEA!kxnwxUJLKxa3Oc4LrkTTgAXa9D0wwxO8NOTXoz4JjxveQ82EajBPe0J1twXNrVystZJlxhAOFAQi5K4hxQRA$>
>>>>>>>
>>>>>>> 32-bit System Data Sources: \\HKLM\SOFTWARE\WOW6432Node\ODBC\
>>>>>>> <https://urldefense.com/v3/__http://HKLM/SOFTWARE/WOW6432Node/ODBC/__;!!OSkwEA!kxnwxUJLKxa3Oc4LrkTTgAXa9D0wwxO8NOTXoz4JjxveQ82EajBPe0J1twXNrVystZJlxhAOFAQi5EngC-Q_$>
>>>>>>>
>>>>>>> 64-bit User Data Sources: \\HKCU\SOFTWARE\ODBC\
>>>>>>>
>>>>>>> 32-bit User Data Sources: \\HKCU\SOFTWARE\ODBC\
>>>>>>> <https://urldefense.com/v3/__http://HKCU/SOFTWARE/ODBC/__;!!OSkwEA!kxnwxUJLKxa3Oc4LrkTTgAXa9D0wwxO8NOTXoz4JjxveQ82EajBPe0J1twXNrVystZJlxhAOFAQi5CXxcTt4$>
>>>>>>> <- 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(at)gmail(dot)com>
>>>>>>> *Date: *Friday, March 29, 2024 at 7:25 AM
>>>>>>> *To: *PostgreSQL mailing lists <pgsql-odbc(at)postgresql(dot)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
>>>>>>>
>>>>>>

In response to

Browse pgsql-odbc by date

  From Date Subject
Next Message Monique Nascimento da Silva - PrestServ 2024-04-12 12:51:44 RE: Instalação do Postgresql ODBC 8.3.4.0 Driver.
Previous Message 2024-04-01 06:04:04 Confirmation of Issue with PostgreSQL ODBC Driver for Windows