亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問(wèn)板塊 發(fā)新帖
查看: 3169 | 回復(fù): 1
打印 上一主題 下一主題

新手求助postgresql 的C api [復(fù)制鏈接]

論壇徽章:
1
技術(shù)圖書徽章
日期:2013-09-09 13:47:26
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2010-09-08 15:49 |只看該作者 |倒序?yàn)g覽
本帖最后由 umyspl 于 2010-09-08 15:51 編輯

這是查詢
  1. bool CPqRecordset::Each(uint32_t nRows, uint32_t nCol, void *value, SQL_RET_TYPE _type)const
  2. {
  3.         if(status != IRS_ERR_OK)return false;
  4.         char * tmp = PQgetvalue(pPQrlt,nRows,nCol);
  5.         switch(_type)
  6.         {
  7.         case SQL_RET_INT8:
  8.         case SQL_RET_UINT8:
  9.                 memcpy(value,(void*)tmp,sizeof(uint8_t));
  10.                 return true;
  11.         case SQL_RET_UINT16:
  12.         case SQL_RET_INT16:
  13.                 memcpy(value,(void*)tmp,sizeof(uint16_t));
  14.                 return true;
  15.         case SQL_RET_INT32:
  16.         case SQL_RET_UINT32:
  17.                 memcpy(value,(void*)tmp,sizeof(uint32_t));
  18.                 return true;
  19.         case SQL_RET_INT64:
  20.         case SQL_RET_UINT64:
  21.                 memcpy(value,(void*)tmp,sizeof(uint64_t));
  22.                 return true;
  23.         case SQL_RET_DOUBLE:
  24.                 memcpy(value,(void*)tmp,sizeof(double));
  25.                 return true;
  26.         case SQL_RET_FLOAT:
  27.                 memcpy(value,(void*)tmp,sizeof(float));
  28.                 return true;
  29.         case SQL_RET_PPCHAR:
  30.                 *((void**)value) = (void*)tmp;
  31.                 return true;
  32.         default:return false;
  33.         }
  34. }
復(fù)制代碼
測(cè)試代碼
  1. uint64_t user_id;
  2.         char * user_name,*user_phone;

  3.         cpqrs.Each(0, 0, &user_id,           SQL_RET_UINT64);
  4.         cpqrs.Each(0, 1, (void*)&user_name,  SQL_RET_PPCHAR);
  5.         cpqrs.Each(0, 2, (void*)&user_phone, SQL_RET_PPCHAR);
  6.         std::cout<<"\n------------------------------------------------------\n";
  7.         std::cout<<"-----uid:"<<user_id<<std::endl;
  8.         std::cout<<"---uname:"<<user_name<<std::endl;
  9.         std::cout<<"userphone:"<<user_phone<<std::endl;

  10.         InitRowAr(line_0,3);
  11.         std::cout<<"userId:"<<GetRowInt64(line_0,0)<<std::endl;
復(fù)制代碼
結(jié)果
  1. /** CDatabase Test Begin -----------------------------------------------------------**/
  2. PgDB->Query

  3. ------------------------------------------------------
  4. -----uid:14133329480791089
  5. ---uname:Virus
  6. userphone:13813813838
  7. userId:3055692486422439423
  8. -------------------------------------
復(fù)制代碼
現(xiàn)在的問(wèn)題是字符串都讀對(duì)了。但是那個(gè)64位的bigint型的數(shù)值不對(duì)。什么地方有錯(cuò)么。
這邊沒(méi)經(jīng)過(guò)什么處理。只有指針和指針類型強(qiáng)轉(zhuǎn)。
memcpy之前我printf過(guò)了,結(jié)果跟那個(gè):14133329480791089一樣的。
  1. 1423062;"Virus";"13813813838    ";"123456                          ";0;9;0;1273644186;0;0;1;0;"''"
復(fù)制代碼
這個(gè)是原數(shù)據(jù)。
那個(gè)uid應(yīng)該==1423062

請(qǐng)熟悉的人指導(dǎo)下。謝謝。

論壇徽章:
1
技術(shù)圖書徽章
日期:2013-09-09 13:47:26
2 [報(bào)告]
發(fā)表于 2010-09-08 16:24 |只看該作者
好吧。知道了。原來(lái)是字符串形式的。不是二進(jìn)制整數(shù)。。
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP