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

📄 dlodbc.cpp

📁 用于处理证书请求,生成证书的CA服务器源码,
💻 CPP
📖 第 1 页 / 共 3 页
字号:
            re = SQLGetInfo(connection,infotype,(void*)(&value),sizeof(SQLUINTEGER),&str_len);
	        char* ft;
		    ft = (char*)buf;
			
		    ltoa(value,ft,10);
		} else {
		    re = SQLGetInfo(connection,infotype,(void*)buf,len,&str_len);    
		}
		if (re == SQL_SUCCESS || re == SQL_SUCCESS_WITH_INFO) {
			return 1;
		} else {
            SQLCHAR sql[255];
            SQLINTEGER err;
            SQLCHAR mes[255];
			memset (mes, '\0', 10);
			memset (sql, '\0', 10);
			SQLSMALLINT len;
			SQLGetDiagRec(SQL_HANDLE_STMT, connection, 1, sql, &err, mes, 255, &len);

		}
	} catch (...) {
	}
	return -1;
}

int getmetadata(SQLHSTMT statement,int option,
						SQLCHAR* param1, SQLSMALLINT par1_len,
						SQLCHAR* param2, SQLSMALLINT par2_len,
						SQLCHAR* param3, SQLSMALLINT par3_len,
						SQLCHAR* param4, SQLSMALLINT par4_len) {
	try {
		SQLRETURN re;
		switch(option){
			case 1:
				re = SQLProcedures(statement,
					(SQLCHAR*)param1,(SQLSMALLINT)par1_len,
					(SQLCHAR*)param2,(SQLSMALLINT)par2_len,
					(SQLCHAR*)param3,(SQLSMALLINT)par3_len
				);
				break;
			case 2:
				re = SQLTablePrivileges(statement,
					(SQLCHAR*)param1,(SQLSMALLINT)par1_len,
					(SQLCHAR*)param2,(SQLSMALLINT)par2_len,
					(SQLCHAR*)param3,(SQLSMALLINT)par3_len
				);
				break;
			case 3:
				re = SQLSpecialColumns(statement,
					SQL_ROWVER,
					(SQLCHAR*)param1,(SQLSMALLINT)par1_len,
					(SQLCHAR*)param2,(SQLSMALLINT)par2_len,
					(SQLCHAR*)param3,(SQLSMALLINT)par3_len,
					SQL_SCOPE_SESSION,SQL_NULLABLE
				);
				break;
			case 4:
				re = SQLPrimaryKeys(statement,
					(SQLCHAR*)param1,(SQLSMALLINT)par1_len,
					(SQLCHAR*)param2,(SQLSMALLINT)par2_len,
					(SQLCHAR*)param3,(SQLSMALLINT)par3_len
				);
				break;
			case 5:
				re = SQLForeignKeys(statement,
					NULL,0,NULL,0,NULL,0,
					(SQLCHAR*)param1,(SQLSMALLINT)par1_len,
					(SQLCHAR*)param2,(SQLSMALLINT)par2_len,
					(SQLCHAR*)param3,(SQLSMALLINT)par3_len
				);
				break;
			case 6:
				re = SQLForeignKeys(statement,
					(SQLCHAR*)param1,(SQLSMALLINT)par1_len,
					(SQLCHAR*)param2,(SQLSMALLINT)par2_len,
					(SQLCHAR*)param3,(SQLSMALLINT)par3_len,
					NULL,0,NULL,0,NULL,0
				);
				break;
			case 7:
				re = SQLProcedureColumns(statement,
					(SQLCHAR*)param1,(SQLSMALLINT)par1_len,
					(SQLCHAR*)param2,(SQLSMALLINT)par2_len,
					(SQLCHAR*)param3,(SQLSMALLINT)par3_len,
					(SQLCHAR*)param4,(SQLSMALLINT)par4_len
				);
				break;
			case 8:
				re = SQLColumns(statement,
					(SQLCHAR*)param1,(SQLSMALLINT)par1_len,
					(SQLCHAR*)param2,(SQLSMALLINT)par2_len,
					(SQLCHAR*)param3,(SQLSMALLINT)par3_len,
					(SQLCHAR*)param4,(SQLSMALLINT)par4_len
				);
				break;
			case 9:
				re = SQLColumnPrivileges(statement,
					(SQLCHAR*)param1,(SQLSMALLINT)par1_len,
					(SQLCHAR*)param2,(SQLSMALLINT)par2_len,
					(SQLCHAR*)param3,(SQLSMALLINT)par3_len,
					(SQLCHAR*)param4,(SQLSMALLINT)par4_len
				);
				break;
			case 10:
				re = SQLTables(statement,
					(SQLCHAR*)param1,(SQLSMALLINT)par1_len,
					(SQLCHAR*)param2,(SQLSMALLINT)par2_len,
					(SQLCHAR*)param3,(SQLSMALLINT)par3_len,
					(SQLCHAR*)param4,(SQLSMALLINT)par4_len
				);
				break;
			case 11:
				re = SQLGetTypeInfo(statement,SQL_ALL_TYPES);
		}
		if (re == SQL_SUCCESS || re == SQL_SUCCESS_WITH_INFO) {
			return 1;
		} else {
            SQLCHAR sql[255];
            SQLINTEGER err;
            SQLCHAR mes[255];
			memset (mes, '\0', 10);
			memset (sql, '\0', 10);
			SQLSMALLINT len;
			SQLGetDiagRec(SQL_HANDLE_STMT, statement, 1, sql, &err, mes, 255, &len);

		}
	} catch (...) {
	}
	return -1;
}

int getIndexInfo(SQLHSTMT statement,
						 SQLCHAR* param1, SQLSMALLINT par1_len,
						 SQLCHAR* param2, SQLSMALLINT par2_len,
					     SQLCHAR* param3, SQLSMALLINT par3_len,
						 int param4, SQLUSMALLINT param5) {

	try {
		SQLRETURN re;
		SQLUSMALLINT uni;
		if (param4) uni = SQL_INDEX_UNIQUE;
		else uni = SQL_INDEX_ALL;
		re = SQLStatistics(statement,
			               param1,par1_len,
			               param2,par2_len,
			               param3,par3_len,
			               uni,param5);
		if (re == SQL_SUCCESS || re == SQL_SUCCESS_WITH_INFO) {
			return 1;
		} else {
            SQLCHAR sql[255];
            SQLINTEGER err;
            SQLCHAR mes[255];
			memset (mes, '\0', 10);
			memset (sql, '\0', 10);
			SQLSMALLINT len;
			SQLGetDiagRec(SQL_HANDLE_STMT, statement, 1, sql, &err, mes, 255, &len);

		}
	} catch (...) {
	}
	return -1;
}


int getCrossReference(SQLHSTMT statement,
						      SQLCHAR* param1, SQLSMALLINT par1_len,
						      SQLCHAR* param2, SQLSMALLINT par2_len,
					          SQLCHAR* param3, SQLSMALLINT par3_len,
						      SQLCHAR* param4, SQLSMALLINT par4_len,
							  SQLCHAR* param5, SQLSMALLINT par5_len,
							  SQLCHAR* param6, SQLSMALLINT par6_len) {

	try {
		SQLRETURN re;
		re = SQLForeignKeys( statement,
			                 param1,par1_len,
			                 param2,par2_len,
							 param3,par3_len,
			                 param4,par4_len,
			                 param5,par5_len,
			                 param6,par6_len
		                    );
		if (re == SQL_SUCCESS || re == SQL_SUCCESS_WITH_INFO) {
			return 1;
		} else {
            SQLCHAR sql[255];
            SQLINTEGER err;
            SQLCHAR mes[255];
			memset (mes, '\0', 10);
			memset (sql, '\0', 10);
			SQLSMALLINT len;
			SQLGetDiagRec(SQL_HANDLE_STMT, statement, 1, sql, &err, mes, 255, &len);


		}
	} catch (...) {
	}
	return -1;
}

int FindColumn(SQLHSTMT statement, char* srcp) {
	try {
		SQLRETURN re;
		SQLSMALLINT no;
		SQLSMALLINT cols ;
		re = SQLNumResultCols (statement, &cols);
		
		SQLCHAR name_s[512];
		memset(name_s, '\0', 512);
		SQLSMALLINT nlen,dtype,d_digits,nullable;
		SQLUINTEGER colsize;
		for (no=1; no<=cols; no++) {
			re = SQLDescribeCol(statement, no, name_s, 512, &nlen, &dtype, &colsize, &d_digits, &nullable);	
			if (strcmp(srcp, (char*)name_s) == 0) return no;
		}
	} catch (...) {
	}

	return -1;
}

SQLUINTEGER GetRow(SQLHSTMT statement) {
	try {
		SQLRETURN re;
		SQLINTEGER attr = SQL_ATTR_ROW_NUMBER, strlen;
		SQLUINTEGER no;
		char pk[10];
		memset(pk, '\0', 10);
		re = SQLGetStmtAttr (statement, attr, (void*)(&no), 0, &strlen);
		if (re==SQL_SUCCESS||re==SQL_SUCCESS_WITH_INFO) {
			return no;
		} else {
            SQLCHAR sql[255];
            SQLINTEGER err;
            SQLCHAR mes[255];
			memset (mes, '\0', 10);
			memset (sql, '\0', 10);
			SQLSMALLINT len;
			SQLGetDiagRec(SQL_HANDLE_STMT, statement, 1, sql, &err, mes, 255, &len);

		}
	} catch (...) {
	}
	return 0;
}

int MoveCursor(SQLHSTMT statement, SQLSMALLINT opera_type, SQLINTEGER value) {
	try {
		SQLRETURN re;
		re = SQLFetchScroll(statement, opera_type, value);

		if (re==SQL_SUCCESS||re==SQL_SUCCESS_WITH_INFO) {
			return 1;
		}
	} catch (...) {
	}
	return -1;
}

int GetBoolAttribute(SQLHSTMT statement, SQLUSMALLINT type, SQLUSMALLINT index) {
	try {
    	SQLRETURN re;
		SQLINTEGER result;
		re = SQLColAttribute(statement, index, type, NULL, 0, NULL, (void*)(&result));
		if (re==SQL_SUCCESS || re==SQL_SUCCESS_WITH_INFO) {
			return result;
		} else {
            SQLCHAR sql[255];
            SQLINTEGER err;
            SQLCHAR mes[255];
			memset (mes, '\0', 10);
			memset (sql, '\0', 10);
			SQLSMALLINT len;
			SQLGetDiagRec(SQL_HANDLE_STMT, statement, 1, sql, &err, mes, 255, &len);

		}
	} catch (...) {
	}
    return 0;
}

int GetStringAttribute(SQLHSTMT statement, SQLUSMALLINT type, SQLUSMALLINT index, char buf[], SQLSMALLINT &str_len) {
	try {
		SQLRETURN re;
		SQLSMALLINT buf_len=512;
		SQLINTEGER iresult;
		re = SQLColAttribute(statement, index, type, (void*)buf, buf_len, &str_len, (void*)(&iresult));
		if (re==SQL_SUCCESS || re==SQL_SUCCESS_WITH_INFO) {
			return 1;
		} else {
            SQLCHAR sql[255];
            SQLINTEGER err;
            SQLCHAR mes[255];
			memset (mes, '\0', 10);
			memset (sql, '\0', 10);
			SQLSMALLINT len;
			SQLGetDiagRec(SQL_HANDLE_STMT, statement, 1, sql, &err, mes, 255, &len);

		}
	} catch (...) {
	}
	return -1;
}

int CloseCursor(SQLHSTMT statement) {
	try {
        SQLRETURN re;
		re = SQLCloseCursor(statement);
		if (re==SQL_SUCCESS || re==SQL_SUCCESS_WITH_INFO) {
			return 1;
		} else {
            SQLCHAR sql[255];
            SQLINTEGER err;
            SQLCHAR mes[255];
			memset (mes, '\0', 10);
			memset (sql, '\0', 10);
			SQLSMALLINT len;
			SQLGetDiagRec(SQL_HANDLE_STMT, statement, 1, sql, &err, mes, 255, &len);

		}
	} catch (...) {
	}
	return -1;
}

int setAutoCommit(SQLHDBC connect, char r) {

	SQLINTEGER attr = SQL_ATTR_AUTOCOMMIT;
	SQLRETURN re;
	try {
		if (r == 0) re = SQLSetConnectAttr(connect, attr, (void*)SQL_AUTOCOMMIT_OFF, 0);
    		else re = SQLSetConnectAttr(connect, attr, (void*)SQL_AUTOCOMMIT_ON, 0);
		if (re == SQL_SUCCESS || re == SQL_SUCCESS_WITH_INFO) {
	    	return 0;  
		} else {
            SQLCHAR sql[255];
            SQLINTEGER err;
            SQLCHAR mes[255];
			memset (mes, '\0', 10);
			memset (sql, '\0', 10);
			SQLSMALLINT len;
			SQLGetDiagRec(SQL_HANDLE_STMT, connect, 1, sql, &err, mes, 255, &len);

		}
	} catch (...) {
	}
	return -1;
}

int isAutoCommit (SQLHDBC connect) {

	SQLINTEGER attr = SQL_ATTR_AUTOCOMMIT;
	SQLINTEGER strlen;
	SQLUINTEGER value = 0;
	SQLRETURN re;

	try {
		re = SQLGetConnectAttr(connect, attr, (void*)(&value), 0, &strlen);
        if (re == SQL_SUCCESS || re == SQL_SUCCESS_WITH_INFO) {
            return value;
		} else {
            SQLCHAR sql[255];
            SQLINTEGER err;
            SQLCHAR mes[255];
			memset (mes, '\0', 10);
			memset (sql, '\0', 10);
			SQLSMALLINT len;
			SQLGetDiagRec(SQL_HANDLE_STMT, connect, 1, sql, &err, mes, 255, &len);

		}
	} catch (...) {
	}
	return 0;
}

⌨️ 快捷键说明

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