Re: - pgaql binary data date time fornats
От | Neeraj Rai |
---|---|
Тема | Re: - pgaql binary data date time fornats |
Дата | |
Msg-id | 1369241530.69063.YahooMailAndroidMobile@web164901.mail.bf1.yahoo.com обсуждение исходный текст |
Ответ на | ... (Neeraj Rai <rneeraj@yahoo.com>) |
Ответы |
- pgaql long value corrupted using htons
|
Список | pgsql-interfaces |
Hi, I forgot to mention that I'm trying to use binary data format. I can bypass bitwise fueld issue by assigning to int. Thanks |
From: Neeraj Rai <rneeraj@yahoo.com>;
To: pgsql-interfaces@postgresql.org <pgsql-interfaces@postgresql.org>;
Subject: [INTERFACES]
Sent: Wed, May 22, 2013 1:26:08 AM
Hi, I'm trying a simple pgsql program with PQexecPrepared and have a few questions. I have seen the example but didn't find the answer there. googled too. Q1. what format is date set in ? what is the length ? Q2.Q2.what is the type and length of bit wise fields Q3. how to convert seconds since epoch to date Q4. is int passable as time? Q5. the paramValsVec_ is char* const char[] . Can we type cast int to char* and pass in ? and set type to INT4OID? Below is some pseudo code to put above questions in perspective. >>. table CREATE TABLE t1 (curdate date, str1 varchar(19), tm_new timestamptz, count int); >>> c++ code PGconn* pgconn; // connectedchar * UpsertStmt_= "INSERT INTO t1 values( $1, $2, $3, $4)"; int result=0; PGresult* pgres = PQprepare (pgconn, "stmtname", UpsertStmt_, 4, NULL); int result = PQresultStatus(pgres); PQclear(pgres_); struct mydata { int curtime; char str1[32]; int mycount; int mybitfield : 3; }, mydata myvar; myvar.curtime = time(NULL) strcpy(myvar.str1, hello); myvar.mycount = 2; myvar.mybitfield = 2; // set helper vars paramLenVec_[0] = 8; // Q1. what format is date set in ? what is the length paramLenVec_[1] = strlen(str1); paramLenVec_[2] = sizeof(int); // type = INT4OID, sizeof (int) paramLenVec_[3] = sizeof(int); // Q2.what is the type and length of bit wise fields paramValsVec_[0] = (char*)&myvar.curtime; // Q3. how to convert to date paramValsVec_[1] = myvar.str1; paramValsVec_[2] = &myvar.curtime; // Q4. is int passable as time paramValsVec_[3] = (char*)&myvar.mycount; // Q5. PQexecPrepared (pgconn, "stmtname", 4, paramValsVec_, paramLenVec_, NULL, 0 ); |
В списке pgsql-interfaces по дате отправления: