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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? dbclient.cxx

?? oracle oci 輕量級(jí)封裝庫,很方便和實(shí)用!適合于簡(jiǎn)單的數(shù)據(jù)庫操作.絕對(duì)精品.垃圾就不上傳了.
?? CXX
字號(hào):

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>

#include "dbclient.h"
#include "oracle.h"


/*
** Global data and structures.
*/
connection conn;
cursor crsr;

DBCLIENT_API int Connect()
{

/* 
*  Connect to ORACLE and open a cursor.
*  Exit on any error.
*/
    if (conn.connect((text*)username, (text*)password,(text*)servicename))
    {
      conn.display_error(stderr);
      return(EXIT_FAILURE);
    }

    if (crsr.open(&conn))
    {
      crsr.display_error(stderr);
      return(EXIT_FAILURE);
    }
	return (EXIT_SUCCESS);
}
DBCLIENT_API int Connect(char *user,
	char *pass,
	char *service)
{
    if (conn.connect((text*)user, (text*)pass,(text*)service))
    {
      conn.display_error(stderr);
      return(EXIT_FAILURE);
    }

    if (crsr.open(&conn))
    {
      crsr.display_error(stderr);
      return(EXIT_FAILURE);
    }
	return (EXIT_SUCCESS);
}
DBCLIENT_API void DisConnect()
{
	crsr.close();
	conn.disconnect();
}

DBCLIENT_API int ExecCommand(char* cmdbuf)
{
	return execute_cmd(conn,crsr,cmdbuf);
}


Record::Record(void)
{ 
	column_num=0;
	columndata=NULL;
}

Record::~Record()
{
	for(int n=0;n<column_num;n++)
		free(columndata[n].value);
	free(columndata);
}

char* Record::GetFieldValue(int nIndex)
{
	assert(nIndex<column_num);
	assert(columndata);

	return (char*)(columndata[nIndex].value);
}
int Record::SetFieldValue(int nIndex,COLUMN_DATA data)
{
	if(nIndex<column_num)
	{
		assert(columndata[nIndex].value);
		strcpy((char*)(columndata[nIndex].value),(char*)(data.value));
		columndata[nIndex].valuelen=data.valuelen;
		return 	EXIT_SUCCESS;
	}
	return EXIT_FAILURE;
}
void Record::AllocRecord(int colnum)
{ 
	columndata=(COLUMN_DATA*)malloc(colnum*sizeof(COLUMN_DATA));
}
void Record::AllocField(int nIndex,int length)
{
	assert(nIndex<column_num);
	assert(columndata);
	columndata[nIndex].value=(text *)malloc(length*sizeof(text));
}

RecordSet::RecordSet(void)
{
	datafmt=NULL;
	m_szSql=NULL;
	m_nColNum=0;
}
RecordSet::~RecordSet()
{
	if(datafmt)free(datafmt);
}

Record* RecordSet::GetRecord(int nIndex)
{
	assert(nIndex<GetCount());
	Node* pNode=GetAt(nIndex);
	return (Record*)(pNode->data);
}
void RecordSet::SetRecord(int nIndex,Record* pRecord)
{
	if(nIndex>=GetCount() || nIndex<0)return;
	SetAt(nIndex,pRecord);
}
void RecordSet::AddRecord(COLUMN_DATA* data)
{
	Record *pRec=new Record;
	pRec->SetFieldsCount(m_nColNum);

	pRec->AllocRecord(m_nColNum);

	for(int k=0;k<pRec->GetFieldsCount();k++)
	{
		pRec->AllocField(k,data[k].valuelen);
		pRec->SetFieldValue(k,data[k]);
	}

	AddTail((DBObject*)pRec);
}
int RecordSet::Open(char* sql/*=NULL*/)
{
	ResetRecords();

	if((m_szSql==NULL) && (sql==NULL))
		return 0;
	if(sql)m_szSql=sql;

	int          ret;
	ret=execute_cmd(conn,crsr,m_szSql,this);
	return ret;
}
void RecordSet::ResetRecords()
{
	RemoveAll();
	if(datafmt)
		free(datafmt);
	
	m_nColNum	=0;
}

int	RecordSet::GetFieldID(char* szField)
{
	for(int n=0;n<m_nColNum;n++)
	{
		if(strcmp(szField,(char*)datafmt[n].name))continue;
		return n;
	}
	return -1;
}
char* RecordSet::GetFieldName(int nField)
{
	if(nField>=m_nColNum || nField<0)return NULL;
	return (char*)datafmt[nField].name;
}

char* RecordSet::GetValue(int nRecord,int nField)
{
	if(nRecord>=GetRecordsCount())return NULL;
	if(nField>=m_nColNum || nField<0)return NULL;

	Record *pRec=GetRecord(nRecord);
	if(pRec==NULL)return NULL;
	
	return 	pRec->GetFieldValue(nField);
}
char* RecordSet::GetValueEx(int nRecord,char* szField)
{
	return GetValue(nRecord,GetFieldID(szField));
}

int RecordSet::SetValue(int nRecord,int nField,char* szValue)
{
	COLUMN_DATA columndata;
	if(nRecord>=GetRecordsCount())return EXIT_FAILURE;
	if(nField>=m_nColNum || nField<0)return EXIT_FAILURE;

	Record *pRec=GetRecord(nRecord);
	if(pRec==NULL)return EXIT_FAILURE;


	columndata.value	= (text *)malloc(datafmt[nField].maxlength);
	columndata.valuelen	= strlen(szValue);

	strcpy((char*)columndata.value,szValue);
	if(pRec->SetFieldValue(nField,columndata)==EXIT_FAILURE)return EXIT_FAILURE;
	SetRecord(nRecord,pRec);
	return  EXIT_SUCCESS;
}
int RecordSet::SetValueEx(int nRecord,char* szField,char* szValue)
{
	return SetValue(nRecord,GetFieldID(szField),szValue);
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
激情综合色播五月| 午夜不卡在线视频| 成人天堂资源www在线| 中文字幕国产一区二区| 99精品视频一区| 亚洲激情成人在线| 91麻豆精品国产91久久久久久| 日本va欧美va欧美va精品| 日韩亚洲欧美中文三级| 国产一区二区三区| 中文字幕日韩av资源站| 在线看一区二区| 免费高清视频精品| 国产婷婷精品av在线| 成人免费毛片a| 亚洲国产美女搞黄色| 日韩一区二区不卡| 国产成人免费高清| 亚洲手机成人高清视频| 欧美浪妇xxxx高跟鞋交| 久草热8精品视频在线观看| 中文一区二区完整视频在线观看| 91色综合久久久久婷婷| 日本 国产 欧美色综合| 中文字幕av一区二区三区高| 欧洲一区在线观看| 久久不见久久见中文字幕免费| 日本一区二区不卡视频| 欧美主播一区二区三区| 老司机精品视频在线| 中文字幕欧美激情| 678五月天丁香亚洲综合网| 国产毛片精品一区| 一区二区三区中文字幕| 亚洲精品一区二区三区精华液| 99久久精品99国产精品| 日本强好片久久久久久aaa| 久久免费午夜影院| 欧美三级电影在线观看| 国产黄色成人av| 亚洲成人tv网| 亚洲国产经典视频| 欧美成人女星排名| 欧美午夜精品一区二区蜜桃 | 欧美一级高清大全免费观看| 粉嫩av一区二区三区粉嫩| 婷婷丁香激情综合| 亚洲欧美一区二区三区国产精品| 91精品国产91久久久久久最新毛片| aaa欧美日韩| 国产福利视频一区二区三区| 日韩av一区二区在线影视| 亚洲欧洲av色图| 久久久99久久| 欧美一级精品大片| 欧美三级中文字| 一本一本久久a久久精品综合麻豆| 国内精品国产成人国产三级粉色 | 亚洲一区二区三区四区的| 欧美激情自拍偷拍| 久久久影视传媒| 精品欧美一区二区在线观看| 欧美高清一级片在线| 色菇凉天天综合网| 99久久免费视频.com| 国产精品一区不卡| 极品美女销魂一区二区三区免费| 香蕉成人啪国产精品视频综合网| 成人欧美一区二区三区黑人麻豆| 久久色在线观看| 欧美精品一区二区三| 欧美一区二区三区免费在线看| 欧美日韩一区不卡| 欧美手机在线视频| 欧美三级电影在线看| 91福利国产成人精品照片| 91麻豆精东视频| 色婷婷综合在线| 色婷婷av一区二区三区软件| 成人黄色777网| 99视频有精品| 一本到高清视频免费精品| 91蜜桃在线免费视频| 99re8在线精品视频免费播放| heyzo一本久久综合| k8久久久一区二区三区 | 91蝌蚪porny| 久久精品欧美日韩精品| 精品国产123| 国产日产欧美一区二区三区| 国产日本一区二区| 亚洲欧洲日韩在线| 亚洲精品成人少妇| 图片区小说区国产精品视频 | 久久精品国产网站| 狠狠色丁香婷婷综合久久片| 国产大陆精品国产| 91麻豆123| 欧美一区三区二区| 久久久精品综合| 中文字幕制服丝袜一区二区三区| 亚洲精品国产成人久久av盗摄| 亚瑟在线精品视频| 国产主播一区二区三区| 高清不卡在线观看av| 色婷婷亚洲综合| 欧美一二三四区在线| 国产欧美一区在线| 一区二区理论电影在线观看| 日韩激情在线观看| 岛国一区二区在线观看| 91久久精品日日躁夜夜躁欧美| 欧美精品高清视频| 国产天堂亚洲国产碰碰| 亚洲成年人网站在线观看| 看电视剧不卡顿的网站| 91亚洲大成网污www| 欧美一区二区三区色| 国产精品欧美精品| 日韩av二区在线播放| 岛国av在线一区| 67194成人在线观看| 欧美韩国一区二区| 日韩电影在线观看一区| 暴力调教一区二区三区| 欧美人狂配大交3d怪物一区| 国产亚洲一区字幕| 亚洲mv大片欧洲mv大片精品| 国产寡妇亲子伦一区二区| 欧美三片在线视频观看| 国产精品网站在线观看| 日韩二区三区四区| 日本韩国视频一区二区| 久久天堂av综合合色蜜桃网| 视频精品一区二区| 91同城在线观看| 久久久精品国产免费观看同学| 亚洲在线视频网站| 成人av免费在线播放| 日韩美女在线视频| 午夜不卡av免费| 色婷婷狠狠综合| 中文字幕在线不卡视频| www.亚洲免费av| 久久日韩粉嫩一区二区三区| 久久不见久久见免费视频1| 欧美日韩激情一区| 亚洲一区二区视频在线观看| 成人中文字幕在线| 国产精品妹子av| 91国偷自产一区二区开放时间| 欧美伦理电影网| 日韩一区欧美二区| 欧美日韩日日骚| 久久国产三级精品| 中文字幕中文字幕在线一区 | 天天操天天综合网| 99在线精品视频| 国产精品美女久久久久久2018| 狠狠v欧美v日韩v亚洲ⅴ| 91精品国产日韩91久久久久久| 亚洲永久精品大片| 欧美在线不卡一区| 一区二区三区 在线观看视频| 91在线视频播放| 亚洲图片你懂的| 91香蕉视频在线| 一区二区在线免费| 一本一道久久a久久精品| 亚洲欧美日韩国产综合| 色婷婷av一区二区三区之一色屋| 亚洲日本一区二区| 色呦呦网站一区| 亚洲综合丁香婷婷六月香| 欧美三级在线视频| 日韩av不卡在线观看| 制服视频三区第一页精品| 奇米综合一区二区三区精品视频| 91麻豆精品国产91久久久久久久久| 日本成人超碰在线观看| 日韩三级.com| 国产精品资源在线看| 亚洲欧洲精品天堂一级| 色国产综合视频| 日本vs亚洲vs韩国一区三区| 日韩午夜av一区| 国产成人午夜高潮毛片| 国内久久精品视频| 国产精品视频第一区| 色综合久久88色综合天天6| 亚洲成人一区在线| 欧美tk—视频vk| 成人动漫在线一区| 亚洲高清久久久| 精品国产麻豆免费人成网站| 国产成人免费网站| 一区二区免费视频| 日韩免费看的电影| 本田岬高潮一区二区三区| 一区二区三区免费看视频|