⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sqlprog.h

📁 用于数据流压缩的huffman算法源代码
💻 H
📖 第 1 页 / 共 2 页
字号:
UCHAR rootDir[]="C:\\DBSERVER\\";
UCHAR HTMLHead[]="00000000";
HENV henv;
typedef struct
  {
    UDWORD  pcbColDef;
    SWORD  pfSqlType;
    SWORD  SqlType;
    SWORD  pibScale;
    UDWORD len;}ColumnInfo;
ColumnInfo ColInfo[256];
typedef struct
  {
    short  ID;
    UCHAR  connString[200];}connIDInfo;
connIDInfo ConIDStru[MAXCONNECTID];
typedef struct
  {
    UCHAR  userName[20];
    UCHAR  passWord[20];
    UCHAR  winName[20];
    UCHAR  pathName[80];}userstru;
userstru userInfoStru[MAXUSER];
long userCount=0;
char far author[]="\\AUTHOR.SAV";
short connectCount=0;
typedef struct
{
	//UCHAR dataDir[50];
	UCHAR sqlselectstring[300];
	short usermark;
	short ID;
	UCHAR connstring[200];
    HDBC hdbc;
    HSTMT phstmt;
    //UDWORD ulpos;
    UWORD iCol;
	UWORD i;
    UCHAR FAR * descptr;
	UCHAR FAR * sourceptr;
	unsigned char *returnstring;
	unsigned char *retstr;
	RETCODE retcode;
	ColumnInfo ColInfo[256];
    UCHAR DSN[80];
    UCHAR UID[30];
    UCHAR PASSWORD[30];
	unsigned long ii;
	unsigned long jj;
    unsigned char dwLib[30];
    unsigned char dwName[30];
	EXTENSION_CONTROL_BLOCK *pECB;
	BOOL errorUpdate;
} ConnStruDef;
ConnStruDef	connectStru[MAXCONNECT];
//char far author[]="\\AUTHOR.SAV";
//char far id_section[]="@_ID_section";
//short connectCount=0;
void WriteHtml(EXTENSION_CONTROL_BLOCK *pECB,LPSTR lpsz);
void makeConnectString(UCHAR FAR *,short ID);
void sendsqlresult(int connectID);
UCHAR FAR * changerequest(UCHAR FAR * requeststring);
UCHAR sqlerror[300],stateerror[300];
SDWORD dwerror;
SWORD dwerror1;
BOOL oneUpdate(int ConnctID,UCHAR FAR * requeststring);
//--------------------------------------------
void makeDisconnect(connectID) 
int connectID;
  {
  if(connectStru[connectID].phstmt==SQL_NULL_HSTMT)
    SQLFreeStmt(connectStru[connectID].phstmt,SQL_DROP);
  if(connectStru[connectID].hdbc==SQL_NULL_HDBC)
    SQLDisconnect(connectStru[connectID].hdbc);
  //if(henv==SQL_NULL_HENV)
  //  SQLFreeEnv(henv);
  connectStru[connectID].ID=0;}
//----------------------------------------------------------
BOOL makeConnect(connectID,ID)
int connectID;
short ID;
 {
    UCHAR FAR tmp[200];
	SWORD MAXStringLen;
//    UCHAR szSqlState[6],szErrorMsg[300];
//    SDWORD dwNativeError;
 //   SWORD wErrorMsg;
  RETCODE retcode;
  makeConnectString(connectStru[connectID].connstring,ID);
  if(connectStru[connectID].connstring==NULL) return(FALSE);
  connectStru[connectID].ID=ID;
  retcode=SQLAllocConnect(henv,&(connectStru[connectID].hdbc));
  if(retcode!=SQL_SUCCESS) {
  	makeDisconnect(connectID);return(FALSE);}
  //  SQLSetConnectOption(connectStru[connectID].hdbc,SQL_LOGIN_TIMEOUT,10);
    SQLSetConnectOption(connectStru[connectID].hdbc,SQL_AUTOCOMMIT,SQL_AUTOCOMMIT_OFF);
    //SQLSetConnectOption(connectStru[connectID].hdbc,SQL_ACCESS_MODE,SQL_MODE_READ_WRITE);
	retcode=SQLDriverConnect(connectStru[connectID].hdbc,
	  NULL,
	  connectStru[connectID].connstring,SQL_NTS,
	  tmp,200,&MAXStringLen,SQL_DRIVER_NOPROMPT);
    //retcode=SQLConnect(connectStru[connectID].hdbc,
	//  connectStru[connectID].DSN,SQL_NTS,
	//  connectStru[connectID].UID,SQL_NTS,
	//  connectStru[connectID].PASSWORD,SQL_NTS);
	//itoa(retcode,tmp,10);
	//strcat(tmp,connectStru[connectID].DSN);
	//strcat(tmp,connectStru[connectID].UID);
	//strcat(tmp,connectStru[connectID].PASSWORD);
  //WriteHtml(connectStru[connectID].pECB,tmp);
  //WriteHtml(connectStru[connectID].pECB,connectStru[connectID].connstring);
 // SQLError(henv,
//	  connectStru[connectID].hdbc,SQL_NULL_HSTMT,
//	  szSqlState,&dwNativeError,szErrorMsg,300,&wErrorMsg);
 // WriteHtml(connectStru[connectID].pECB,szErrorMsg);
    if((retcode==SQL_SUCCESS) || (retcode==SQL_SUCCESS_WITH_INFO)) {
      retcode=SQLAllocStmt(connectStru[connectID].hdbc,
		&(connectStru[connectID].phstmt));
      if(retcode!=SQL_SUCCESS) {makeDisconnect(connectID);return(FALSE);}
      return(TRUE);}
    else {   
      makeDisconnect(connectID);return(FALSE);}}
//----------------------------------------------------------
UCHAR szcolName[80];
SWORD cbColNameMax=80,pcbColName;
SWORD pibScale,pfNullable;
BOOL sqlSelectFun(connectID,sqlselectstring)
int connectID;
UCHAR FAR * sqlselectstring;
  {
	RETCODE retcode;
    sqlselectstring=changerequest(sqlselectstring);
	//connectStru[connectID].ulpos=0;
    retcode=SQLExecDirect(connectStru[connectID].phstmt,
	  sqlselectstring,SQL_NTS);
    if(retcode!=SQL_SUCCESS) {
      WriteHtml(connectStru[connectID].pECB,"ERROR004");
	  return(FALSE);} 
    connectStru[connectID].iCol=1;
    while(TRUE) {
      retcode=SQLDescribeCol(
		connectStru[connectID].phstmt,
		connectStru[connectID].iCol,
	    szcolName,
		cbColNameMax,
		&pcbColName,
	    &(connectStru[connectID].ColInfo[connectStru[connectID].iCol].pfSqlType),
		&(connectStru[connectID].ColInfo[connectStru[connectID].iCol].pcbColDef),
	    &(connectStru[connectID].ColInfo[connectStru[connectID].iCol].pibScale),
		&pfNullable);
       connectStru[connectID].ColInfo[connectStru
         [connectID].iCol].SqlType=SQL_C_CHAR;
  	   switch(connectStru[connectID].ColInfo[connectStru[connectID].iCol].pfSqlType) {
		  case SQL_BIGINT:
		    connectStru[connectID].ColInfo[connectStru
		      [connectID].iCol].pcbColDef=80;
		    connectStru[connectID].ColInfo[connectStru
		      [connectID].iCol].pfSqlType=0;break;
		  case SQL_BINARY:
		    connectStru[connectID].ColInfo[connectStru
		      [connectID].iCol].pfSqlType=0;break;
		  case SQL_BIT:
		    connectStru[connectID].ColInfo[connectStru
		      [connectID].iCol].pcbColDef=80;
		    connectStru[connectID].ColInfo[connectStru
		      [connectID].iCol].pfSqlType=0;break;
		  case SQL_CHAR:
		    connectStru[connectID].ColInfo[connectStru
		      [connectID].iCol].pfSqlType=0;break;
		  case SQL_DATE:
		    connectStru[connectID].ColInfo[connectStru
		      [connectID].iCol].pcbColDef=80;
		    connectStru[connectID].ColInfo[connectStru
		      [connectID].iCol].pfSqlType=0;break;
		  case SQL_DECIMAL:
		    connectStru[connectID].ColInfo[connectStru
		      [connectID].iCol].pcbColDef=80;
		    connectStru[connectID].ColInfo[connectStru
		      [connectID].iCol].pfSqlType=1;break;
		  case SQL_DOUBLE:
		    connectStru[connectID].ColInfo[connectStru
		      [connectID].iCol].pcbColDef=80;
		    connectStru[connectID].ColInfo[connectStru
		      [connectID].iCol].pfSqlType=1;break;
		  case SQL_FLOAT:
		    connectStru[connectID].ColInfo[connectStru
		      [connectID].iCol].pcbColDef=80;
		    connectStru[connectID].ColInfo[connectStru
		      [connectID].iCol].pfSqlType=1;break;
		  case SQL_INTEGER:
		    connectStru[connectID].ColInfo[connectStru
		      [connectID].iCol].pcbColDef=80;
		    connectStru[connectID].ColInfo[connectStru
		      [connectID].iCol].pfSqlType=0;break;
		  case SQL_LONGVARCHAR:
		    connectStru[connectID].ColInfo[connectStru
		      [connectID].iCol].pfSqlType=0;break;
		  case SQL_LONGVARBINARY:
		    connectStru[connectID].ColInfo[connectStru
		      [connectID].iCol].pfSqlType=0;break;
		  case SQL_NUMERIC:
		    connectStru[connectID].ColInfo[connectStru
		      [connectID].iCol].pcbColDef=80;
		    connectStru[connectID].ColInfo[connectStru
		      [connectID].iCol].pfSqlType=1;break;
		  case SQL_REAL:

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -