亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
一区二区三区日韩精品视频| 欧美一区日韩一区| 国产电影精品久久禁18| 美女网站色91| 久久成人精品无人区| 久久99久久99小草精品免视看| 蜜臀久久久99精品久久久久久| 亚洲www啪成人一区二区麻豆| 亚洲va国产va欧美va观看| 亚洲福利一二三区| 日韩av高清在线观看| 日本三级亚洲精品| 加勒比av一区二区| 国产精品伊人色| a在线播放不卡| 欧美系列在线观看| 91精品国产综合久久久久久漫画| 制服.丝袜.亚洲.中文.综合| 精品捆绑美女sm三区| 国产婷婷一区二区| 亚洲乱码国产乱码精品精可以看| 亚洲综合无码一区二区| 麻豆专区一区二区三区四区五区| 国产一区二区免费看| 91色综合久久久久婷婷| 7777精品伊人久久久大香线蕉 | 国产成人自拍在线| 一本到三区不卡视频| 欧美精品777| 中日韩免费视频中文字幕| 亚洲国产毛片aaaaa无费看 | 亚洲电影视频在线| 精油按摩中文字幕久久| 色狠狠色噜噜噜综合网| 日韩三级精品电影久久久| 国产精品女上位| 亚洲va欧美va人人爽| 不卡的电影网站| 欧美videos中文字幕| 亚洲精品美国一| 国产毛片精品一区| 欧美日韩国产天堂| 亚洲精品一卡二卡| 国产乱人伦偷精品视频不卡| 欧美影院一区二区| 中文字幕欧美激情一区| 久久国产视频网| 欧美性大战久久久久久久蜜臀 | 亚洲二区在线视频| 高清不卡一区二区在线| 日韩三级在线观看| 亚洲综合在线免费观看| 成人精品视频一区| 精品美女一区二区三区| 天天做天天摸天天爽国产一区| 成人一区二区三区视频| 精品99一区二区| 精品久久久久久无| 极品少妇一区二区三区精品视频| 91国产丝袜在线播放| 国产精品久久久久久妇女6080| 久久99精品国产.久久久久| 欧美日韩一区二区欧美激情| 一区在线观看视频| 国产毛片精品视频| 久久这里只有精品6| 免费高清视频精品| 日韩免费电影一区| 伦理电影国产精品| 精品国产一区二区在线观看| 日本欧美久久久久免费播放网| 欧美丰满嫩嫩电影| 天堂精品中文字幕在线| 欧美精品日韩一区| 日本系列欧美系列| 欧美精品一区二区三区在线 | 粉嫩蜜臀av国产精品网站| 久久久精品黄色| 成人综合在线网站| 日韩美女视频一区二区 | 久久欧美中文字幕| 国产中文一区二区三区| 国产欧美一区二区精品性色超碰 | 亚洲一区电影777| 欧美性淫爽ww久久久久无| 一区二区三区高清不卡| 欧美日本在线观看| 久久精品国产一区二区三 | 欧美a一区二区| xnxx国产精品| 成人小视频在线| 亚洲激情自拍偷拍| 日韩欧美色综合| 高清成人在线观看| 亚洲一区二区三区小说| 欧美丰满嫩嫩电影| 成人黄色小视频在线观看| 亚洲黄色尤物视频| 91精品国产一区二区三区香蕉| 青青草原综合久久大伊人精品| 久久在线免费观看| 日本精品视频一区二区| 久久成人免费电影| 最新国产成人在线观看| 欧美日韩国产123区| 激情综合网最新| 亚洲激情一二三区| 精品国内片67194| 91麻豆蜜桃一区二区三区| 美女一区二区三区在线观看| 国产精品女主播av| 91精品国产综合久久久蜜臀粉嫩 | 一区二区三区产品免费精品久久75 | 免费观看久久久4p| 国产精品成人免费| 日韩欧美资源站| 91丝袜国产在线播放| 美女脱光内衣内裤视频久久影院| 亚洲人吸女人奶水| 久久亚洲一区二区三区四区| 欧美色图激情小说| av电影天堂一区二区在线 | 亚洲国产精品久久一线不卡| 26uuu久久综合| 制服丝袜日韩国产| 欧美视频一区二| av不卡在线观看| 狠狠色狠狠色综合| 日产精品久久久久久久性色| 国产精品麻豆99久久久久久| 欧美一区二区三区影视| 91久久国产最好的精华液| 成人黄色777网| 国产精一区二区三区| 久久爱另类一区二区小说| 日韩精品欧美精品| 午夜精品久久久| 一区二区三区在线视频观看58 | 欧美亚洲综合网| 91蝌蚪porny| 91视频在线观看| av一二三不卡影片| 972aa.com艺术欧美| 91免费版pro下载短视频| av在线免费不卡| 色综合激情久久| 欧美色图12p| 欧美一区二区视频在线观看2020 | 91精品欧美久久久久久动漫| 精品视频在线视频| 欧美老女人第四色| 69av一区二区三区| 91精品视频网| 26uuu国产在线精品一区二区| 日韩精品一区二区在线观看| 日韩色在线观看| 久久久久久久综合日本| 国产女人aaa级久久久级| 国产精品成人免费在线| 亚洲欧美二区三区| 午夜精品一区二区三区免费视频 | 国产精品亚洲专一区二区三区| 狠狠色伊人亚洲综合成人| 国产在线视频精品一区| 国产98色在线|日韩| 91亚洲精品乱码久久久久久蜜桃| 一本一道久久a久久精品综合蜜臀| 色综合中文字幕国产| 欧美日韩高清不卡| 欧美tk—视频vk| 中文字幕亚洲精品在线观看 | 久久精品99国产国产精| 国产精品中文有码| 日本久久精品电影| 欧美高清性hdvideosex| 欧美成人综合网站| 亚洲欧美日韩中文播放| 日本vs亚洲vs韩国一区三区| 国产精品911| 欧美三级一区二区| 久久一区二区视频| 亚洲国产精品影院| 国产麻豆9l精品三级站| 91福利国产精品| 久久久久久久久一| 亚洲激情在线激情| 国产成人午夜精品5599| 欧洲精品中文字幕| 国产欧美精品一区二区色综合 | 欧美日韩一级大片网址| 久久日一线二线三线suv| 亚洲综合小说图片| 国产电影一区二区三区| 欧美视频一区在线| 中文字幕乱码久久午夜不卡| 日韩精品午夜视频| 91美女在线观看| 中文一区二区完整视频在线观看| 日韩高清欧美激情| 91视频国产观看|