📄 data.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 + -