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

📄 data.cpp

📁 利用VC编写的关于配料的动态库程序
💻 CPP
字号:
#include "stdafx.h"
#include <sqlext.h>

int SelectSQL1(char *SqlText, int n, char Ret[][200], int *RowCount)
{
SQLRETURN sr;
SQLHANDLE hOdbcEnv;
SQLHANDLE hDbConn;
SQLHSTMT hstmt;
char ss[10][50];
int k;
SQLINTEGER Len;

*RowCount=0;
	sr = SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&hOdbcEnv); //ODBC环境分配错误
	if(sr==SQL_SUCCESS) 
	{
		sr=SQLSetEnvAttr(hOdbcEnv, SQL_ATTR_ODBC_VERSION, 
			(SQLPOINTER)SQL_OV_ODBC3, SQL_IS_INTEGER);	//ODBC版本错误
		if(sr==SQL_SUCCESS)
		{
			sr = SQLAllocHandle(SQL_HANDLE_DBC,hOdbcEnv,&hDbConn);	//分配连接错误
			if(sr==SQL_SUCCESS) 
			{
				sr=SQLSetConnectAttr(hDbConn, SQL_ATTR_LOGIN_TIMEOUT,(void *)5,0); //设置连接等待时间错误

				if(sr==SQL_SUCCESS)
				{
					sr=SQLConnect(hDbConn,(UCHAR *)"zgpl",SQL_NTS,(UCHAR *)"admin",
						SQL_NTS,(UCHAR *)"",SQL_NTS);	//连接数据源
					if(sr==SQL_SUCCESS || sr == SQL_SUCCESS_WITH_INFO)
						{
//----------------------------------------------------------------
						sr=SQLAllocHandle(SQL_HANDLE_STMT, hDbConn, &hstmt);
						if(sr== SQL_SUCCESS)
						{
						sr=SQLExecDirect(hstmt,(SQLCHAR *)SqlText,SQL_NTS);
						if(sr== SQL_SUCCESS || sr == SQL_SUCCESS_WITH_INFO)
						{
						while(1)
							{
							for(k=1;k<=n;k++) sr=SQLBindCol(hstmt, k, SQL_C_CHAR, ss[k], 30, &Len);
							sr=SQLFetch(hstmt);
							if(sr==SQL_NO_DATA_FOUND) break;
							(*RowCount)++;
							strcpy(Ret[*RowCount], ss[1]);
							for(k=2;k<=n;k++) 
								{
								strcat(Ret[*RowCount], " ");
								strcat(Ret[*RowCount], ss[k]);
								}
							//MessageBox(NULL,Ret[*RowCount],"",MB_OK);
							}
						}
/*
char ss[30]="wer   123   yyy";
sscanf(ss,"%s%f%s",s1,&ybl,s2);
MessageBox(NULL,s1,s2,MB_OK);
*/
//-------------------------------------------------------------------
						SQLFreeHandle(SQL_HANDLE_STMT, hstmt);
						}
					}
				SQLDisconnect(hDbConn);
				}
	SQLFreeHandle(SQL_HANDLE_DBC, hDbConn);
	}
	}
  SQLFreeHandle(SQL_HANDLE_ENV, hOdbcEnv);
}
	if(sr== SQL_SUCCESS || sr == SQL_SUCCESS_WITH_INFO) return 0;
	else return 1;
}
/////////////////////////////////////////////////////////////////////////////
// CDdApp message handlers
int ExecSQL(char *SqlText)
{
SQLHENV  henv;
SQLHDBC  hdbc;
SQLHSTMT hstmt;
SQLRETURN  retcode;

/*Allocate environment handle */
retcode = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv);  
if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) {
   /* Set the ODBC version environment attribute */
   retcode = SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0); 

   if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) {
      /* Allocate connection handle */
      retcode = SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc); 

      if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) {
         /* Set login timeout to 5 seconds. */
         SQLSetConnectAttr(hdbc, SQL_LOGIN_TIMEOUT, (void*)5, 0);

         /* Connect to data source */
         retcode = SQLConnect(hdbc, (SQLCHAR*) "zgpl", SQL_NTS,
                (SQLCHAR*) "admin", SQL_NTS,
                (SQLCHAR*) "", SQL_NTS);

         if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO){
            /* Allocate statement handle */
            retcode = SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt); 

            if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) {
            //-------------------- Process data 
			retcode =SQLExecDirect(hstmt,(SQLCHAR *)SqlText,SQL_NTS);
			//----------------------------------
            SQLFreeHandle(SQL_HANDLE_STMT, hstmt);
            }
            SQLDisconnect(hdbc);
         }
         SQLFreeHandle(SQL_HANDLE_DBC, hdbc);
      }
   }
   SQLFreeHandle(SQL_HANDLE_ENV, henv);
}
	if(retcode == SQL_SUCCESS) return 0;
	else return 1;
}
/////////////////////////////////////////////////////////////////////////////
// 数据查询
int SelectSQL(char *SqlText, int n, char Ret[][200], int *RowCount)
{
SQLHENV  henv;
SQLHDBC  hdbc;
SQLHSTMT hstmt;
SQLRETURN  retcode;
char ss[10][50];
int k;
SQLINTEGER Len;

*RowCount=0;
/*Allocate environment handle */
retcode = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv);  
if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) {
   /* Set the ODBC version environment attribute */
   retcode = SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0); 

   if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) {
      /* Allocate connection handle */
      retcode = SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc); 

      if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) {
         /* Set login timeout to 5 seconds. */
         SQLSetConnectAttr(hdbc, SQL_LOGIN_TIMEOUT, (void*)5, 0);

         /* Connect to data source */
         retcode = SQLConnect(hdbc, (SQLCHAR*) "zgpl", SQL_NTS,
                (SQLCHAR*) "admin", SQL_NTS,
                (SQLCHAR*) "", SQL_NTS);

         if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO){
            /* Allocate statement handle */
            retcode = SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt); 

            if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) {
            //-------------------- Process data 
				retcode =SQLExecDirect(hstmt,(SQLCHAR *)SqlText,SQL_NTS);
				if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)
				while(1)
					{
					for(k=1;k<=n;k++) 
						retcode=SQLBindCol(hstmt, k, SQL_C_CHAR, ss[k], 30, &Len);
					retcode=SQLFetch(hstmt);
					if(retcode==SQL_NO_DATA_FOUND) break;
					(*RowCount)++;
					strcpy(Ret[*RowCount], ss[1]);
					for(k=2;k<=n;k++) 
						{
						strcat(Ret[*RowCount], " ");
						strcat(Ret[*RowCount], ss[k]);
						}
				//	MessageBox(NULL,Ret[*RowCount],"",MB_OK);
					}
			//----------------------------------
            SQLFreeHandle(SQL_HANDLE_STMT, hstmt);
            }
            SQLDisconnect(hdbc);
         }
         SQLFreeHandle(SQL_HANDLE_DBC, hdbc);
      }
   }
   SQLFreeHandle(SQL_HANDLE_ENV, henv);
}
	if(retcode == SQL_SUCCESS) return 0;
	else return 1;
}

⌨️ 快捷键说明

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