On 11/10/2016 06:45 AM, Nathan Kendall wrote:
> We are having a problem with psqlODBC versions 09.05.0100 through
> 09.05.0400. With the database table schema listed below, the sample
> C# test app below that fails with a violation of the primary key.
> However, the same C# code works without issue when using psqlODBC
> version 09.03.0400 or older. It would seem as though psqlODBC
> versions from 09.05.0100 onward are applying daylight saving time
> rules to DateTimes that are specified as not being associated with a
> timezone.
What is the error you are getting back or the value you are seeing that
is different?
>
> Nathan
>
>
> CREATE TABLE time_test
> (
> stationid character varying(8) NOT NULL,
> date_time timestamp without time zone NOT NULL,
> temperature double precision,
> CONSTRAINT time_test_pk PRIMARY KEY (stationid, date_time)
> );
>
>
> C# Test App Source Code:
>
> using System;
> using System.Data.Odbc;
>
> namespace TimeTestApp1
> {
> class Program
> {
> static void Main(string[] args)
> {
> using (var conn = new OdbcConnection("Driver={PostgreSQL
> ANSI(x64)};Server=localhost;Database=weather;Uid=userGoesHere;Pwd=passGoesHere;"))
> {
> conn.Open();
> using (var command = new OdbcCommand("", conn))
> {
> command.Parameters.Add(new OdbcParameter("stationid",
> OdbcType.VarChar));
> command.Parameters.Add(new OdbcParameter("date_time",
> OdbcType.DateTime));
> command.Parameters.Add(new OdbcParameter("temperature",
> OdbcType.Double));
> command.CommandText = "INSERT INTO time_test (stationid,
> date_time, temperature) VALUES (?, ?, ?)";
> command.CommandTimeout = 60;
> command.Prepare();
>
> DateTime[] testTimes = new DateTime[] {
> new DateTime(2016, 3, 13, 1, 0, 0, DateTimeKind.Unspecified),
> new DateTime(2016, 3, 13, 2, 0, 0, DateTimeKind.Unspecified),
> new DateTime(2016, 3, 13, 3, 0, 0, DateTimeKind.Unspecified)
> };
>
> int i = 0;
> foreach (var dt in testTimes)
> {
> i++;
> command.Parameters[0].Value = "Place";
> command.Parameters[1].Value = dt;
> command.Parameters[2].Value = 60 - i;
> command.ExecuteNonQuery();
> }
> }
> }
> }
> }
> }
>
>
--
Adrian Klaver
adrian.klaver@aklaver.com