亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? database.cpp~

?? 電力系統Linux設備通訊程序 主要是為了各大電網通訊數據代碼
?? CPP~
?? 第 1 頁 / 共 2 頁
字號:
#include "database.h"#include <string.h>#include <qdatetime.h>#include <qstring.h>CDataBase :: CDataBase(){    m_pconnect=NULL;    m_pghost="";m_pgport="";m_pgoptions="";m_pgtty="";m_dbname="znl4";    m_dbuser="";m_dbpassword="";m_bconnect=0;}CDataBase :: ~CDataBase(){    return;}bool CDataBase :: ConnectDataBase(){    m_pconnect = PQsetdbLogin(m_pghost.data(),m_pgport.data(),m_pgoptions.data(),			      m_pgtty.data(),m_dbname.data(),m_dbuser.data(),m_dbpassword.data());   if (PQstatus(m_pconnect) == CONNECTION_BAD)   {       fprintf(stderr,"Connection to database '%s' failed!\\n",m_dbname.data());       PQfinish(m_pconnect);	   return 0;   }   return 1;}bool CDataBase :: ConnectDataBase(long &hdbc,QCString dbname,QCString dbuser,QCString dbpass){    m_pconnect = PQsetdbLogin(NULL,NULL,NULL,NULL,			      dbname.data(),dbuser.data(),dbpass.data());   if (PQstatus(m_pconnect) == CONNECTION_BAD)   {       //fprintf(stderr,"Connection to database '%s' failed!\n",m_dbname.data());       PQfinish(m_pconnect);       hdbc=0;	return 0;   }   hdbc=(long)m_pconnect;   return 1;}bool CDataBase :: DisConnectDataBase(long &hdbc){       PQfinish((PGconn*)hdbc);       hdbc=0;       return 1;}int CDataBase :: SqlExec(long hdbc,QCString SqlStr){    PGconn *conn=(PGconn*)hdbc;    if(!conn) return -1;    PGresult *res = PQexec(conn,SqlStr.data());   /**運行查詢命令*/   if(PQresultStatus(res)!=PGRES_COMMAND_OK)    {	fprintf(stderr,PQresultErrorMessage(res));       fprintf(stderr,"Exec Query Fauled!\\n"); PQclear(res);return -1;   }   PQclear(res);   return 0;}long CDataBase :: SqlSelect(long hdbc,QCString SqlStr,long &result){    PGconn *conn=(PGconn*)hdbc;    if(!conn) return -1;    PGresult *res = PQexec(conn,SqlStr.data());   /**運行查詢命令*/   if(  PQresultStatus(res)  !=  PGRES_TUPLES_OK)     {       fprintf(stderr,"Exec Query Fauled!\\n");       PQclear(res);       result=0;	return -1;   }   int i = PQntuples(res);   result=(long)res;   return (long)i;}int CDataBase :: GetRecordCount(long result){    PGresult* res=(PGresult*)result;    if(!res) return -1;    return PQntuples(res);}int CDataBase :: GetFieldCount(long result){    PGresult* res=(PGresult*)result;    if(!res) return -1;    return PQnfields(res);}QCString CDataBase :: GetFieldName(long result,unsigned int iField){    QCString strres="";    PGresult* res=(PGresult*)result;    if(!res) return strres;    strres.sprintf("%s",PQfname(res,(int)iField));    return strres;}int CDataBase :: GetFieldType(long result,unsigned int iField){    PGresult* res=(PGresult*)result;    if(!res) return 0;    return (int)PQftype(res,(int)iField);}QCString CDataBase :: GetFieldValue(long result,unsigned int iRow,unsigned int iField){    QCString strres="";    PGresult* res=(PGresult*)result;    if(!res) return strres;    strres.sprintf("%s",PQgetvalue(res,(int)iRow,(int)iField));    return strres;}void CDataBase :: ClearResult(long &result){    PGresult* res=(PGresult*)result;    if(!res) return;    PQclear(res);result=0;    return;}bool CDataBase :: OpenCursor(long hdbc,QCString SqlStr,long &pCursor){    PGresult *res = PQexec((PGconn*)hdbc, "BEGIN");    if (!res || PQresultStatus(res) != PGRES_COMMAND_OK)    {	fprintf(stderr, "BEGIN command failed\n");PQclear(res);pCursor=0;	return 0;    }    PQclear(res);    QDate sdate;QTime stime;QCString s1,s2;    s1.sprintf("cur%04d%02d%02d%02d%02d%02d%03d",sdate.year(),sdate.month(),sdate.day(),	       stime.hour(),stime.minute(),stime.second(),stime.msec());    s2="DECLARE "+s1+" CURSOR FOR "+SqlStr;    res = PQexec((PGconn*)hdbc, s2);    if (!res || PQresultStatus(res) != PGRES_COMMAND_OK)    {       fprintf(stderr, "DECLARE CURSOR command failed\n");PQclear(res);pCursor=0;	return 0;    }    PQclear(res);    char *sres=new char[s1.length()+1];    memset(sres,0x00,s1.length()+1);    memcpy(sres,s1.data(),s1.length()+1);    pCursor=(long)sres;    return 1;}bool CDataBase :: FetchPriorRow(long hdbc,long pCursor,long &result){    QCString s1;    s1.sprintf("FETCH PRIOR in %s",(char*)pCursor);    PGresult *res = PQexec((PGconn*)hdbc, s1.data());    if (!res || PQresultStatus(res) != PGRES_TUPLES_OK)    {        fprintf(stderr, "FETCH PRIOR command didn't return tuples properly\n");PQclear(res);        result=0;return 0;    }    result=(long)res;    return 1;}bool CDataBase :: FetchNextRow(long hdbc,long pCursor,long &result){    QCString s1;    s1.sprintf("FETCH NEXT in %s",(char*)pCursor);    PGresult *res = PQexec((PGconn*)hdbc, s1.data());    if (!res || PQresultStatus(res) != PGRES_TUPLES_OK)    {        fprintf(stderr, "FETCH NEXT command didn't return tuples properly\n");PQclear(res);        result=0;return 0;    }    result=(long)res;    return 1;}bool CDataBase :: FetchAllRow(long hdbc,long pCursor,long &result){    QCString s1;    s1.sprintf("FETCH ALL in %s",(char*)pCursor);    PGresult *res = PQexec((PGconn*)hdbc, s1.data());    if (!res || PQresultStatus(res) != PGRES_TUPLES_OK)    {        fprintf(stderr, "FETCH NEXT command didn't return tuples properly\n");PQclear(res);        result=0;return 0;    }    result=(long)res;    return 1;}void CDataBase :: CloseCursor(long hdbc,long &pCursor){    QCString s1;    s1.sprintf("CLOSE %s",(char*)pCursor);    PGresult *res = PQexec((PGconn*)hdbc, s1.data());    PQclear(res);    res = PQexec((PGconn*)hdbc, "COMMIT");    PQclear(res);    //釋放光標內存    delete [] (char*)pCursor;    return ;}//**********************填充參數************************************//QCString CDataBase :: FillParam(QCString SqlStr,int ParamIndex,int ParamType,QCString param){    QCString tmps,tmps1;    int istart=0,index=-1;    for(int i=0;i<ParamIndex;i++)    {	index=SqlStr.find("?",istart);	if(index==-1) return "";	istart=index+1;    }    switch(ParamType)    {    case 0:    //數字	tmps=SqlStr.replace(index,1,param.data());	break;    case 1:    //字符	tmps1.sprintf("'%s'",param.data());	tmps=SqlStr.replace(index,1,tmps1.data());	break;    default:	break;    }    return tmps;}void CDataBase :: GetTableFromSql(QCString SqlStr,QCString &Table,QCString &WhereStr,QStringList &FieldList){    //判定SQL語句類型    QCString tmps1,tmps2;QString qstmp;int iStart,i,j;    int index=SqlStr.find(" ",0);    if(index<0) return;    FieldList.clear();    tmps1=SqlStr.mid(0,index);tmps1=tmps1.upper();tmps1=tmps1.stripWhiteSpace();    if(tmps1=="SELECT")    {	index=SqlStr.find(" from ",0);if(index<0) index=SqlStr.find(" From ",0);	if(index<0) index=SqlStr.find(" FROM ",0);	if(index<0) return;	//字段	iStart=SqlStr.find(" ",0);	while((i=SqlStr.find(",",iStart+1)>=0)&&i<index)	{	    tmps2=SqlStr.mid(iStart+1,i-iStart-1);qstmp.sprintf("%s",tmps2.data());FieldList.append(qstmp);	    iStart=i;	}       tmps2=SqlStr.mid(iStart+1,index-iStart-1);qstmp.sprintf("%s",tmps2.data());FieldList.append(qstmp);	//表名       iStart=index;       index=SqlStr.find(" where ",iStart+1);if(index<0) index=SqlStr.find(" Where ",iStart+1);       if(index<0) index=SqlStr.find(" WHERE ",iStart+1);       if(index<0)       {	   Table=SqlStr.mid(iStart+6);	   WhereStr="";	   return;       }       Table=SqlStr.mid(iStart+6,index-iStart-6);       WhereStr=SqlStr.mid(index+1);       return;    }    else if(tmps1=="UPDATE")    {	index=SqlStr.find(" set ",0);if(index<0) index=SqlStr.find(" Set ",0);	if(index<0) index=SqlStr.find(" SET ",0);	if(index<0) return;	iStart=SqlStr.find(" ",0);	//表名	Table=SqlStr.mid(iStart+1,index-iStart-1);	//字段       iStart=index;       index=SqlStr.find(" where ",iStart+1);if(index<0) index=SqlStr.find(" Where ",iStart+1);       if(index<0) index=SqlStr.find(" WHERE ",iStart+1);       if(index<0) index=SqlStr.length();       iStart+=4;	while((i=SqlStr.find(",",iStart+1)>=0)&&i<index)	{	    tmps2=SqlStr.mid(iStart+1,i-iStart-1);	    j=tmps2.find("=",iStart+1);tmps2=tmps2.mid(iStart+1,j-iStart-1);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
视频一区二区三区入口| 亚洲一区二区四区蜜桃| 欧美疯狂性受xxxxx喷水图片| 成人小视频在线| 成人app网站| 91日韩在线专区| 欧美色视频一区| 日韩一卡二卡三卡四卡| 日韩精品一区二区三区视频在线观看 | 午夜视频在线观看一区二区三区 | 制服视频三区第一页精品| 欧美高清视频不卡网| 日韩免费一区二区| 国产人成一区二区三区影院| 国产日产欧美一区| 亚洲欧美欧美一区二区三区| 香蕉久久夜色精品国产使用方法 | 不卡的av在线播放| 99热99精品| 欧美日韩精品免费观看视频 | 国产精品白丝jk白祙喷水网站| 国产美女娇喘av呻吟久久| 成人黄色片在线观看| 色欧美片视频在线观看| 欧美精品三级在线观看| 欧美精品一区男女天堂| 中文字幕一区二区三区av| 亚洲香肠在线观看| 国产一区二区三区综合| 91欧美一区二区| 91精品午夜视频| 国产亲近乱来精品视频| 亚洲成av人片| 成人av片在线观看| 日韩一区二区中文字幕| 亚洲视频在线一区观看| 精品一区二区三区在线观看国产| 不卡的av中国片| 日韩精品综合一本久道在线视频| 国产精品久久777777| 麻豆精品久久精品色综合| 99久久精品费精品国产一区二区| 538在线一区二区精品国产| 国产欧美一区视频| 免费高清不卡av| 99久久久久久99| 日韩精品一区二区三区中文不卡 | 91小视频在线观看| 日韩欧美成人激情| 亚洲国产精品久久人人爱蜜臀| 国产一区二区毛片| 91精品国产91综合久久蜜臀| 亚洲欧美日韩国产综合在线| 国产91色综合久久免费分享| 日韩一级高清毛片| 午夜视频一区在线观看| 91久久精品日日躁夜夜躁欧美| 国产欧美精品一区二区三区四区 | 久久成人麻豆午夜电影| 精品视频123区在线观看| 亚洲色图清纯唯美| 不卡一区二区在线| 国产精品每日更新| 国产大陆亚洲精品国产| 久久久影院官网| 国产资源精品在线观看| 日韩一区二区在线观看视频播放| 午夜日韩在线电影| 欧美精品一二三四| 婷婷夜色潮精品综合在线| 欧美日韩中文精品| 石原莉奈在线亚洲三区| 91精品国产aⅴ一区二区| 免费人成在线不卡| 欧美电视剧免费全集观看| 久久精品二区亚洲w码| 日韩一级片网站| 国产一区啦啦啦在线观看| 久久品道一品道久久精品| 国产a视频精品免费观看| 国产亚洲欧美一区在线观看| 粉嫩av一区二区三区在线播放| 欧美激情在线观看视频免费| 国产一区亚洲一区| 国产精品久久三区| 欧美午夜一区二区三区| 婷婷激情综合网| 精品国产三级电影在线观看| 国产成人午夜视频| 亚洲欧美一区二区在线观看| 在线观看中文字幕不卡| 日韩影院免费视频| 久久久久久久综合| 99久久精品免费看| 日韩精品成人一区二区三区| 久久综合色一综合色88| 99久久精品国产精品久久| 亚洲成av人片www| 久久伊人蜜桃av一区二区| 91在线免费看| 日本不卡一区二区三区| 久久精品视频在线看| 日本二三区不卡| 久久精品国产精品亚洲红杏| 国产精品国产成人国产三级| 欧美日本国产一区| 风间由美中文字幕在线看视频国产欧美| 亚洲视频在线观看三级| 日韩精品一区二区三区老鸭窝 | 91精品在线观看入口| 成人污视频在线观看| 亚洲国产精品天堂| 日本一区二区三区四区在线视频| 欧美色视频在线观看| 成人毛片在线观看| 日韩成人免费电影| 亚洲麻豆国产自偷在线| 亚洲精品一区二区三区99| 欧洲一区在线观看| 懂色av中文一区二区三区| 免费久久精品视频| 亚洲精品国产视频| 久久久精品tv| 日韩你懂的在线播放| 欧美午夜一区二区三区免费大片| 风间由美性色一区二区三区| 秋霞午夜鲁丝一区二区老狼| 一级女性全黄久久生活片免费| 国产亚洲欧美激情| 欧美一区二区三区免费大片 | 国产精品传媒入口麻豆| 欧美一区二区私人影院日本| 在线日韩国产精品| www.色精品| 成人v精品蜜桃久久一区| 精东粉嫩av免费一区二区三区| 亚洲国产成人av网| 亚洲另类在线一区| 亚洲三级在线免费| 国产精品麻豆欧美日韩ww| 精品黑人一区二区三区久久 | 亚洲成a人片在线不卡一二三区 | 久久综合九色综合欧美就去吻| 欧美日韩视频专区在线播放| 在线精品视频小说1| 91在线视频免费观看| 99精品一区二区三区| 99久久婷婷国产综合精品电影| 大陆成人av片| 国产成人午夜99999| 国产激情一区二区三区四区| 国产一区二区成人久久免费影院| 精品一区中文字幕| 国产在线精品一区二区三区不卡| 麻豆精品在线观看| 狠狠色狠狠色综合日日91app| 久久成人久久爱| 国产在线播放一区| 成人一区二区视频| eeuss鲁片一区二区三区在线看| 成人综合婷婷国产精品久久蜜臀 | 欧美电视剧免费全集观看| 日韩一级高清毛片| 久久美女艺术照精彩视频福利播放| 久久亚洲一区二区三区明星换脸| 久久夜色精品国产噜噜av| 国产拍揄自揄精品视频麻豆| 国产精品久久久久影视| 亚洲综合在线观看视频| 日韩黄色免费电影| 狠狠色狠狠色综合日日91app| 国产精品羞羞答答xxdd| 91伊人久久大香线蕉| 欧美日韩高清在线播放| 久久免费美女视频| 亚洲欧美激情在线| 日本视频中文字幕一区二区三区| 国产一区二区三区久久悠悠色av| 成人精品国产福利| 欧美美女网站色| 国产视频一区二区三区在线观看 | 国产亚洲精品7777| 亚洲激情一二三区| 精品一区二区三区免费视频| 成人免费观看视频| 91.com在线观看| 国产精品免费久久| 首页欧美精品中文字幕| 粉嫩av一区二区三区在线播放| 欧美日韩国产片| 国产网红主播福利一区二区| 亚洲第四色夜色| 风流少妇一区二区| 日韩视频一区二区三区| 亚洲欧美成aⅴ人在线观看| 久久精品国产99| 欧美日韩激情一区| 国产精品私人影院| 久久超碰97人人做人人爱| 日本道在线观看一区二区|