Re: SQL Error- SQLBindColumn and TimeStamp Field - Mailing list pgsql-odbc

From Ed Brown
Subject Re: SQL Error- SQLBindColumn and TimeStamp Field
Date
Msg-id 08d001c4ccf3$527ba290$fb04a8c0@arcHead.arcompanies.net
Whole thread Raw
In response to SQL Error- SQLBindColumn and TimeStamp Field  ("Ed Brown" <ebrown@arcompanies.net>)
List pgsql-odbc
Specifically I am trying to execute a query like
        Insert into Table(field1, field2, field3) values(?,?,?)
Where field3 is Postgres type 11, or Timestamp.  The application I have
written queries the database to determine field types in an attempt to
properly insert the record. Yes, I could execute the query you describe
below, except that means I would have to rewrite my application to not use
query parameters, which has it own issues.

And my apologies- I dropped a zero somewhere. The year is actually 2000, not
200.

I did find a reference online at
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odbc/htm/odbcdatetime_data_type_changes.asp
that talks about datetime-type variable changes between ODBC versions 1 and
2.  I need to do some experimenting- I think I may need to change data type.




Ed
----- Original Message -----
From: "Greg Campbell" <greg.campbell@us.michelin.com>
To: "Ed Brown" <ebrown@arcompanies.net>
Cc: <pgsql-odbc@postgresql.org>
Sent: Wednesday, November 17, 2004 12:17 PM
Subject: Re: [ODBC] SQL Error- SQLBindColumn and TimeStamp Field


> Please clarify "trying to insert a Timestamp field"
> Are you doing Data Definition -- creating a timestamp field
> or
> Data Manipulation -- populating data into an existing timestamp field.
>
> If data manipulation:
> I do not know Delphi, but couldn't you execute as query string against a
> connection -- a string like
> "INSERT INTO my_table (my_time) VALUES ('2004-11-17 12:10:35')"?
>
> and did you mean for the year value to be 200?
>
>
>
> Ed Brown wrote:
>
> > I have been trying to do an insert into a TimeStamp field in
> > Postgresql 7.34 (running on Suse 9.0, if it matters).  The application
> > is in Delphi 7.0, but the code is similar enough that you C gurus
> > should be able to see what's happening.  I get the text as a string,
> > parse it into the various elements, and populate the
> > SQL_TimeStamp_Structure. When I execute the SQLBindColumn function I
> > get the following message:
> >
> >     Unable to Bind Parameter- State: S1003, Error # 0,
> > [Microsoft][ODBC Driver Manager] Program type out of range
> >
> > The values in the structure are reasonable, and other elements work
> > properly. Can anyone either tell me what I'm doing wrong, or show me
> > an example of setting a Timestamp value that works?
> >
> > Thanks very much. Code Follows
> >
> > Ed Brown
> > ------------------------------------------------------------------------
> >
> >  New(pTimeStamp);
> >  DecodeDate(dtThis, i1,i2,i3);
> >  pTimeStamp^.year := i1;
> >  pTimeStamp^.Month := i2;
> >  pTimeStamp^.Day := i3;
> >  DecodeTime(dtThis, i1,i2,i3,i4);
> >  pTimeStamp^.Hour := i1;
> >  pTimeStamp^.minute := i2;
> >  pTimeStamp^.second := i3;
> >  pTimeStamp^.fraction := i4;
> >
> >  New(piTemp);
> >  lIntegers.Add(piTemp);
> >
> > // Fails on next call
> >  retcode := SQLBindParameter(hSTMT, i + 1, SQL_PARAM_INPUT,
> >   SQL_C_TYPE_TIMESTAMP,
> >   SQL_TYPE_TIMESTAMP,
> >   SizeOf(SQL_TIMESTAMP_STRUCT), 0 ,
> >   pTimeStamp,
> >   SizeOf(SQL_TIMESTAMP_STRUCT), piTemp) ;
> > ------------------------------------------------------------------------
> > The values are:
> >
> >     pTimeStamp^.year = 200
> >     pTimeStamp^.Month =  7
> >     pTimeStamp^.Day = 15
> >     pTimeStamp^.Hour := 11
> >     pTimeStamp^.minute := 15
> >     pTimeStamp^.second := 0
> >     pTimeStamp^.fraction := 0
> >
>
>


----------------------------------------------------------------------------
----



---------------------------(end of broadcast)---------------------------
TIP 9: the planner will ignore your desire to choose an index scan if your
      joining column's datatypes do not match


pgsql-odbc by date:

Previous
From: "Greg Campbell"
Date:
Subject: Re: SQL Error- SQLBindColumn and TimeStamp Field
Next
From: "Ed Brown"
Date:
Subject: Re: SQL Error- SQLBindColumn and TimeStamp Field