X-Original-To: pgsql-interfaces-postgresql.org@localhost.postgresql.org Received: from localhost (unknown [200.46.204.144]) by svr1.postgresql.org (Postfix) with ESMTP id 5C01553541 for ; Thu, 31 Mar 2005 23:28:45 +0100 (BST) Received: from svr1.postgresql.org ([200.46.204.71]) by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024) with ESMTP id 97296-01 for ; Thu, 31 Mar 2005 22:28:36 +0000 (GMT) Received: from firewall.innovision.com (64-126-22-242.biztype2.everestkc.net [64.126.22.242]) by svr1.postgresql.org (Postfix) with ESMTP id 254C453535 for ; Thu, 31 Mar 2005 23:28:35 +0100 (BST) Received: from [10.10.10.189] (unverified [10.10.10.189]) by innovision.com (SurgeMail 2.2g3) with ESMTP id 583 for ; Thu, 31 Mar 2005 16:28:36 -0600 Message-ID: <424C7925.9060002@innovision.com> Date: Thu, 31 Mar 2005 16:26:45 -0600 From: Marvin Bellamy User-Agent: Mozilla Thunderbird 0.8 (Windows/20040913) X-Accept-Language: en-us, en MIME-Version: 1.0 Cc: pgsql-interfaces@postgresql.org Subject: Re: libpq: Newbie help w/ data type conversions on References: <424ADDC0.8070603@innovision.com> <24826.202.47.227.25.1112239744.squirrel@202.47.227.25> In-Reply-To: <24826.202.47.227.25.1112239744.squirrel@202.47.227.25> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Server: High Performance Mail Server - http://surgemail.com X-Authenticated-User: mbellamy@innovision.com X-Virus-Scanned: by amavisd-new at hub.org X-Spam-Status: No, hits=0.05 tagged_above=0 required=5 tests=AWL, FORGED_RCVD_HELO X-Spam-Level: X-Archive-Number: 200503/87 X-Sequence-Number: 5416 jtv@xs4all.nl wrote: >>I'm coming from a Java background, so I'm relatively new to C/C++ in >>general. I want to convert the data retrieved from a field to an >>"external" data type I can use; specifically a datetime or a timestamp. >>It looks like the only option for retrieving field data is as raw bytes, >>but I haven't found any information on mapping those byte streams to >>structures. >> >> > >Actually, values are delivered as C-style strings by default. So it may >help get a feel for things if you print a few of them out to the console. > > > I think I figured this out. What I wanted was a way to read binary representations of field data and know the format. I found the "Base Types In C-Language Functions" section that lists the formats and where they're defined in the header files. I also found the PQexecParams method which lets you query for binary data instead of text data. Your comment about default string format is what triggered my comprehension. >>I had zero luck following the build instructions for libpqxx on Windows, >>so it looks like libpq is my only option for now. >> >> > >Perhaps that can be fixed. What problems did you run into, and using >which compiler exactly? > > >Jeroen > > > I'm building for MSVC 7.1.3088, VS .NET 2003 on Win XP. I copied the compiler headers and pointed the common file attributes to my PostgreSQL install and I get this error: [snip] ..\src\util.cxx(60) : warning C4244: 'initializing' : conversion from 'double' to 'const float', possible loss of data ..\src\util.cxx(60) : error C2124: divide or mod by zero NMAKE : fatal error U1077: 'cl.exe' : return code '0x2' Stop. NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\BIN\nmake.exe"' : return code '0x2' Stop. I was able to build libpqxx with cygwin (which probably uses gcc), but it produced libpqxx.la and libpqxx.a. Since my IDE is Visual Studio .NET 2003, I'm not sure if I can use them in a MSVC app (mind you I'm still learning about native development as a Java developer). This was a very manual process and I had to move a lot of files around to accomodate the default locations the build process expected to find files (not knowing how to reset them with parameters). -- Marvin Keith Bellamy Software Engineer Innovision Corporation 913.438.3200