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

📄 mydb.cpp

📁 电压监测后台管理程序,数据是通过GPRS传到因特网的
💻 CPP
📖 第 1 页 / 共 3 页
字号:

UINT myDb::SavePowerOff(unsigned char *rec)
{
	UCHAR szid[5];
	TIMESTAMP_STRUCT szOffTime,szOnTime;
	SYSTEMTIME loctime;

	strcpy((char *)SqlOrder,"INSERT INTO poweroff_record VALUES (?,?,?)");
	SQLFreeStmt(hstmt,SQL_RESET_PARAMS);
	rc = SQLPrepare(hstmt,SqlOrder,SQL_NTS);
	if (rc!=SQL_SUCCESS && rc!=SQL_SUCCESS_WITH_INFO) 
	{
		SQLFreeStmt(hstmt,SQL_CLOSE);
		return FALSE;
	}
	SQLBindParameter(hstmt,1,SQL_PARAM_INPUT,SQL_C_CHAR,
		SQL_CHAR,5,0,szid,0,NULL);
	SQLBindParameter(hstmt,2,SQL_PARAM_INPUT,SQL_C_TYPE_TIMESTAMP,
        SQL_TYPE_TIMESTAMP,0,0,&szOffTime,sizeof(szOffTime),NULL);
	SQLBindParameter(hstmt,3,SQL_PARAM_INPUT,SQL_C_TYPE_TIMESTAMP,
        SQL_TYPE_TIMESTAMP,0,0,&szOnTime,sizeof(szOnTime),NULL);
	
	szid[0] = ((rec[1]>>4)&0x0f) + '0';
	szid[1] = ((rec[1])&0x0f) + '0';
	szid[2] = ((rec[2]>>4)&0x0f) + '0';
	szid[3] = ((rec[2])&0x0f) + '0';
	szid[4] = 0;

	GetLocalTime(&loctime);
	szOffTime.year = loctime.wYear;
	szOffTime.month = ((rec[6]>>4)&0x0f)*10 + (rec[6]&0x0f);
	szOffTime.day = ((rec[7]>>4)&0x0f)*10 + (rec[7]&0x0f);
	szOffTime.hour = ((rec[8]>>4)&0x0f)*10 + (rec[8]&0x0f);
	szOffTime.minute = ((rec[9]>>4)&0x0f)*10 + (rec[9]&0x0f);
	szOffTime.second = 0;
	szOffTime.fraction = 0;

	szOnTime.year = loctime.wYear;
	szOnTime.month = ((rec[10]>>4)&0x0f)*10 + (rec[10]&0x0f);
	szOnTime.day = ((rec[11]>>4)&0x0f)*10 + (rec[11]&0x0f);
	szOnTime.hour = ((rec[12]>>4)&0x0f)*10 + (rec[12]&0x0f);
	szOnTime.minute = ((rec[13]>>4)&0x0f)*10 + (rec[13]&0x0f);
	szOnTime.second = 0;
	szOnTime.fraction = 0;

	rc=SQLExecute(hstmt);
	if (rc!=SQL_SUCCESS && rc!=SQL_SUCCESS_WITH_INFO) 
	{
		SQLFreeStmt(hstmt,SQL_CLOSE);
		return FALSE;
	}

	SQLFreeStmt(hstmt,SQL_CLOSE);
	rc = SQLTransact(henv,hdbc,SQL_COMMIT);   
	if (rc!=SQL_SUCCESS && rc!=SQL_SUCCESS_WITH_INFO) 
	{
		SQLFreeStmt(hstmt,SQL_CLOSE);
		return FALSE;
	}

	return true;
}

UINT myDb::SaveDayData(unsigned char *rec)
{
	UCHAR szid[5];
	UINT szRunTime,szOverTime,szLowTime;
	float szMaxVot,szMinVot;
	DATE_STRUCT szTJdate;
	TIMESTAMP_STRUCT szMAXVdate,szMINVdate;

	strcpy((char *)SqlOrder,"INSERT INTO Day_Statistics (Meter_number,TJDate,Runtime,\
Over_upperlimit_time,Down_lowerlimit_time,Max_voltage,Max_voltage_date_time,Min_voltage,\
Min_voltage_date_time) VALUES (?,?,?,?,?,?,?,?,?)");
	SQLFreeStmt(hstmt,SQL_RESET_PARAMS);
	rc = SQLPrepare(hstmt,SqlOrder,SQL_NTS);
	if (rc!=SQL_SUCCESS && rc!=SQL_SUCCESS_WITH_INFO) 
	{
		SQLFreeStmt(hstmt,SQL_CLOSE);
		return FALSE;
	}
	SQLBindParameter(hstmt,1,SQL_PARAM_INPUT,SQL_C_CHAR,
		SQL_CHAR,5,0,szid,0,NULL);
	SQLBindParameter(hstmt,2,SQL_PARAM_INPUT,SQL_C_TYPE_DATE,
        SQL_TYPE_DATE,0,0,&szTJdate,sizeof(szTJdate),NULL);
	SQLBindParameter(hstmt,3,SQL_PARAM_INPUT,SQL_C_ULONG,
        SQL_INTEGER,0,0,&szRunTime,0,NULL);
	SQLBindParameter(hstmt,4,SQL_PARAM_INPUT,SQL_C_ULONG,
        SQL_INTEGER,0,0,&szOverTime,0,NULL);
	SQLBindParameter(hstmt,5,SQL_PARAM_INPUT,SQL_C_ULONG,
        SQL_INTEGER,0,0,&szLowTime,0,NULL);
	SQLBindParameter(hstmt,6,SQL_PARAM_INPUT,SQL_C_FLOAT,
        SQL_REAL,0,0,&szMaxVot,sizeof(szMaxVot),NULL);
	SQLBindParameter(hstmt,7,SQL_PARAM_INPUT,SQL_C_TYPE_TIMESTAMP,
        SQL_TYPE_TIMESTAMP,0,0,&szMAXVdate,sizeof(szMAXVdate),NULL);
	SQLBindParameter(hstmt,8,SQL_PARAM_INPUT,SQL_C_FLOAT,
        SQL_REAL,0,0,&szMinVot,sizeof(szMaxVot),NULL);
	SQLBindParameter(hstmt,9,SQL_PARAM_INPUT,SQL_C_TYPE_TIMESTAMP,
        SQL_TYPE_TIMESTAMP,0,0,&szMINVdate,sizeof(szMINVdate),NULL);
	//SQL_NUMERIC SQL_FLOAT SQL_DECIMAL
	szid[0] = ((rec[1]>>4)&0x0f) + '0';
	szid[1] = ((rec[1])&0x0f) + '0';
	szid[2] = ((rec[2]>>4)&0x0f) + '0';
	szid[3] = ((rec[2])&0x0f) + '0';
	szid[4] = 0;

	szTJdate.year = ((rec[7]>>4)&0x0f)*10 + (rec[7]&0x0f);
	if (szTJdate.year>50) szTJdate.year+=1900;
	else szTJdate.year+=2000;
	szTJdate.month = ((rec[8]>>4)&0x0f)*10 + (rec[8]&0x0f);
	szTJdate.day = ((rec[9]>>4)&0x0f)*10 + (rec[9]&0x0f);

	szRunTime = (rec[10]<<8) + rec[11];
	szOverTime = (rec[12]<<8) + rec[13];
	szLowTime = (rec[14]<<8) + rec[15];

	szMaxVot = ((rec[16]>>4)&0x0f)*100 + (rec[16]&0x0f)*10 + ((rec[17]>>4)&0x0f) + (float)(rec[17]&0x0f)/10;
	szMAXVdate.year = szTJdate.year;
	szMAXVdate.month = ((rec[18]>>4)&0x0f)*10 + (rec[18]&0x0f);
	szMAXVdate.day = ((rec[19]>>4)&0x0f)*10 + (rec[19]&0x0f);
	szMAXVdate.hour = ((rec[20]>>4)&0x0f)*10 + (rec[20]&0x0f);
	szMAXVdate.minute = ((rec[21]>>4)&0x0f)*10 + (rec[21]&0x0f);
	szMAXVdate.second = 0;
	szMAXVdate.fraction = 0;

	szMinVot = ((rec[22]>>4)&0x0f)*100 + (rec[22]&0x0f)*10 + ((rec[23]>>4)&0x0f) + (float)(rec[23]&0x0f)/10;
	szMINVdate.year = szTJdate.year;
	szMINVdate.month = ((rec[24]>>4)&0x0f)*10 + (rec[24]&0x0f);
	szMINVdate.day = ((rec[25]>>4)&0x0f)*10 + (rec[25]&0x0f);
	szMINVdate.hour = ((rec[26]>>4)&0x0f)*10 + (rec[26]&0x0f);
	szMINVdate.minute = ((rec[27]>>4)&0x0f)*10 + (rec[27]&0x0f);
	szMINVdate.second = 0;
	szMINVdate.fraction = 0;
	
	rc=SQLExecute(hstmt);
	if (rc!=SQL_SUCCESS && rc!=SQL_SUCCESS_WITH_INFO) 
	{
		SQLFreeStmt(hstmt,SQL_CLOSE);
		return FALSE;
	}

	SQLFreeStmt(hstmt,SQL_CLOSE);
	rc = SQLTransact(henv,hdbc,SQL_COMMIT);   
	if (rc!=SQL_SUCCESS && rc!=SQL_SUCCESS_WITH_INFO) 
	{
		SQLFreeStmt(hstmt,SQL_CLOSE);
		return FALSE;
	}

	return true;
}

UINT myDb::SaveMonthData(unsigned char *rec)
{
	UCHAR szid[5];
	UINT szRunTime,szOverTime,szLowTime;
	float szMaxVot,szMinVot;
	DATE_STRUCT szTJdate;
	TIMESTAMP_STRUCT szMAXVdate,szMINVdate;

	strcpy((char *)SqlOrder,"INSERT INTO Month_Statistics (Meter_number,YearMonth,Runtime,\
Over_upperlimit_time,Down_lowerlimit_time,Max_voltage,Max_voltage_date_time,Min_voltage,\
Min_voltage_date_time) VALUES (?,?,?,?,?,?,?,?,?)");
	SQLFreeStmt(hstmt,SQL_RESET_PARAMS);
	rc = SQLPrepare(hstmt,SqlOrder,SQL_NTS);
	if (rc!=SQL_SUCCESS && rc!=SQL_SUCCESS_WITH_INFO) 
	{
		SQLFreeStmt(hstmt,SQL_CLOSE);
		return FALSE;
	}
	SQLBindParameter(hstmt,1,SQL_PARAM_INPUT,SQL_C_CHAR,
		SQL_CHAR,5,0,szid,0,NULL);
	SQLBindParameter(hstmt,2,SQL_PARAM_INPUT,SQL_C_TYPE_DATE,
        SQL_TYPE_DATE,0,0,&szTJdate,sizeof(szTJdate),NULL);
	SQLBindParameter(hstmt,3,SQL_PARAM_INPUT,SQL_C_ULONG,
        SQL_INTEGER,0,0,&szRunTime,0,NULL);
	SQLBindParameter(hstmt,4,SQL_PARAM_INPUT,SQL_C_ULONG,
        SQL_INTEGER,0,0,&szOverTime,0,NULL);
	SQLBindParameter(hstmt,5,SQL_PARAM_INPUT,SQL_C_ULONG,
        SQL_INTEGER,0,0,&szLowTime,0,NULL);
	SQLBindParameter(hstmt,6,SQL_PARAM_INPUT,SQL_C_FLOAT,
        SQL_REAL,0,0,&szMaxVot,sizeof(szMaxVot),NULL);
	SQLBindParameter(hstmt,7,SQL_PARAM_INPUT,SQL_C_TYPE_TIMESTAMP,
        SQL_TYPE_TIMESTAMP,0,0,&szMAXVdate,sizeof(szMAXVdate),NULL);
	SQLBindParameter(hstmt,8,SQL_PARAM_INPUT,SQL_C_FLOAT,
        SQL_REAL,0,0,&szMinVot,sizeof(szMinVot),NULL);
	SQLBindParameter(hstmt,9,SQL_PARAM_INPUT,SQL_C_TYPE_TIMESTAMP,
        SQL_TYPE_TIMESTAMP,0,0,&szMINVdate,sizeof(szMINVdate),NULL);
	
	szid[0] = ((rec[1]>>4)&0x0f) + '0';
	szid[1] = ((rec[1])&0x0f) + '0';
	szid[2] = ((rec[2]>>4)&0x0f) + '0';
	szid[3] = ((rec[2])&0x0f) + '0';
	szid[4] = 0;

	szTJdate.year = ((rec[7]>>4)&0x0f)*10 + (rec[7]&0x0f);
	if (szTJdate.year>50) szTJdate.year+=1900;
	else szTJdate.year+=2000;
	szTJdate.month = ((rec[8]>>4)&0x0f)*10 + (rec[8]&0x0f);
	szTJdate.day = ((rec[9]>>4)&0x0f)*10 + (rec[9]&0x0f);

	szRunTime = (rec[10]<<8) + rec[11];
	szOverTime = (rec[12]<<8) + rec[13];
	szLowTime = (rec[14]<<8) + rec[15];

	szMaxVot = ((rec[16]>>4)&0x0f)*100 + (rec[16]&0x0f)*10 + ((rec[17]>>4)&0x0f) + (float)(rec[17]&0x0f)/10;
	szMAXVdate.year = szTJdate.year;
	szMAXVdate.month = ((rec[18]>>4)&0x0f)*10 + (rec[18]&0x0f);
	szMAXVdate.day = ((rec[19]>>4)&0x0f)*10 + (rec[19]&0x0f);
	szMAXVdate.hour = ((rec[20]>>4)&0x0f)*10 + (rec[20]&0x0f);
	szMAXVdate.minute = ((rec[21]>>4)&0x0f)*10 + (rec[21]&0x0f);
	szMAXVdate.second = 0;
	szMAXVdate.fraction = 0;

	szMinVot = ((rec[22]>>4)&0x0f)*100 + (rec[22]&0x0f)*10 + ((rec[23]>>4)&0x0f) + (float)(rec[23]&0x0f)/10;
	szMINVdate.year = szTJdate.year;
	szMINVdate.month = ((rec[24]>>4)&0x0f)*10 + (rec[24]&0x0f);
	szMINVdate.day = ((rec[25]>>4)&0x0f)*10 + (rec[25]&0x0f);
	szMINVdate.hour = ((rec[26]>>4)&0x0f)*10 + (rec[26]&0x0f);
	szMINVdate.minute = ((rec[27]>>4)&0x0f)*10 + (rec[27]&0x0f);
	szMINVdate.second = 0;
	szMINVdate.fraction = 0;

	rc=SQLExecute(hstmt);
	if (rc!=SQL_SUCCESS && rc!=SQL_SUCCESS_WITH_INFO) 
	{
		SQLFreeStmt(hstmt,SQL_CLOSE);
		return FALSE;
	}

	SQLFreeStmt(hstmt,SQL_CLOSE);
	rc = SQLTransact(henv,hdbc,SQL_COMMIT);   
	if (rc!=SQL_SUCCESS && rc!=SQL_SUCCESS_WITH_INFO) 
	{
		SQLFreeStmt(hstmt,SQL_CLOSE);
		return FALSE;
	}

	return true;
}

UINT myDb::SaveTypeData(unsigned char *rec)
{
	UCHAR szid[5];
	DATE_STRUCT szTypeDate;
	float szVot0,szVot1,szVot2,szVot3,szVot4,szVot5,szVot6,szVot7,szVot8,szVot9;
	float szVot10,szVot11,szVot12,szVot13,szVot14,szVot15,szVot16,szVot17,szVot18,szVot19;
	float szVot20,szVot21,szVot22,szVot23;

	strcpy((char *)SqlOrder,"INSERT INTO Typical_Day_Voltage VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
	SQLFreeStmt(hstmt,SQL_RESET_PARAMS);
	rc = SQLPrepare(hstmt,SqlOrder,SQL_NTS);
	if (rc!=SQL_SUCCESS && rc!=SQL_SUCCESS_WITH_INFO) 
	{
		SQLFreeStmt(hstmt,SQL_CLOSE);
		return FALSE;
	}
	SQLBindParameter(hstmt,1,SQL_PARAM_INPUT,SQL_C_CHAR,
		SQL_CHAR,5,0,szid,0,NULL);
	SQLBindParameter(hstmt,2,SQL_PARAM_INPUT,SQL_C_TYPE_DATE,
        SQL_TYPE_DATE,0,0,&szTypeDate,sizeof(szTypeDate),NULL);
	SQLBindParameter(hstmt,3,SQL_PARAM_INPUT,SQL_C_FLOAT,
        SQL_REAL,0,0,&szVot0,0,NULL);
	SQLBindParameter(hstmt,4,SQL_PARAM_INPUT,SQL_C_FLOAT,
        SQL_REAL,0,0,&szVot1,0,NULL);
	SQLBindParameter(hstmt,5,SQL_PARAM_INPUT,SQL_C_FLOAT,
        SQL_REAL,0,0,&szVot2,0,NULL);
	SQLBindParameter(hstmt,6,SQL_PARAM_INPUT,SQL_C_FLOAT,
        SQL_REAL,0,0,&szVot3,0,NULL);
	SQLBindParameter(hstmt,7,SQL_PARAM_INPUT,SQL_C_FLOAT,
        SQL_REAL,0,0,&szVot4,0,NULL);
	SQLBindParameter(hstmt,8,SQL_PARAM_INPUT,SQL_C_FLOAT,
        SQL_REAL,0,0,&szVot5,0,NULL);
	SQLBindParameter(hstmt,9,SQL_PARAM_INPUT,SQL_C_FLOAT,
        SQL_REAL,0,0,&szVot6,0,NULL);
	SQLBindParameter(hstmt,10,SQL_PARAM_INPUT,SQL_C_FLOAT,
        SQL_REAL,0,0,&szVot7,0,NULL);
	SQLBindParameter(hstmt,11,SQL_PARAM_INPUT,SQL_C_FLOAT,
        SQL_REAL,0,0,&szVot8,0,NULL);
	SQLBindParameter(hstmt,12,SQL_PARAM_INPUT,SQL_C_FLOAT,
        SQL_REAL,0,0,&szVot9,0,NULL);
	SQLBindParameter(hstmt,13,SQL_PARAM_INPUT,SQL_C_FLOAT,
        SQL_REAL,0,0,&szVot10,0,NULL);
	SQLBindParameter(hstmt,14,SQL_PARAM_INPUT,SQL_C_FLOAT,
        SQL_REAL,0,0,&szVot11,0,NULL);
	SQLBindParameter(hstmt,15,SQL_PARAM_INPUT,SQL_C_FLOAT,
        SQL_REAL,0,0,&szVot12,0,NULL);
	SQLBindParameter(hstmt,16,SQL_PARAM_INPUT,SQL_C_FLOAT,
        SQL_REAL,0,0,&szVot13,0,NULL);
	SQLBindParameter(hstmt,17,SQL_PARAM_INPUT,SQL_C_FLOAT,
        SQL_REAL,0,0,&szVot14,0,NULL);
	SQLBindParameter(hstmt,18,SQL_PARAM_INPUT,SQL_C_FLOAT,
        SQL_REAL,0,0,&szVot15,0,NULL);
	SQLBindParameter(hstmt,19,SQL_PARAM_INPUT,SQL_C_FLOAT,
        SQL_REAL,0,0,&szVot16,0,NULL);
	SQLBindParameter(hstmt,20,SQL_PARAM_INPUT,SQL_C_FLOAT,
        SQL_REAL,0,0,&szVot17,0,NULL);
	SQLBindParameter(hstmt,21,SQL_PARAM_INPUT,SQL_C_FLOAT,
        SQL_REAL,0,0,&szVot18,0,NULL);
	SQLBindParameter(hstmt,22,SQL_PARAM_INPUT,SQL_C_FLOAT,
        SQL_REAL,0,0,&szVot19,0,NULL);
	SQLBindParameter(hstmt,23,SQL_PARAM_INPUT,SQL_C_FLOAT,
        SQL_REAL,0,0,&szVot20,0,NULL);
	SQLBindParameter(hstmt,24,SQL_PARAM_INPUT,SQL_C_FLOAT,
        SQL_REAL,0,0,&szVot21,0,NULL);
	SQLBindParameter(hstmt,25,SQL_PARAM_INPUT,SQL_C_FLOAT,
        SQL_REAL,0,0,&szVot22,0,NULL);
	SQLBindParameter(hstmt,26,SQL_PARAM_INPUT,SQL_C_FLOAT,
        SQL_REAL,0,0,&szVot23,0,NULL);
	
	szid[0] = ((rec[1]>>4)&0x0f) + '0';
	szid[1] = ((rec[1])&0x0f) + '0';
	szid[2] = ((rec[2]>>4)&0x0f) + '0';
	szid[3] = ((rec[2])&0x0f) + '0';
	szid[4] = 0;

	szTypeDate.year = ((rec[7]>>4)&0x0f)*10 + rec[7]&0x0f;
	if (szTypeDate.year>50) szTypeDate.year+=1900;
	else szTypeDate.year+=2000;
	szTypeDate.month = ((rec[8]>>4)&0x0f)*10 + rec[8]&0x0f;
	szTypeDate.day = ((rec[9]>>4)&0x0f)*10 + rec[9]&0x0f;

	szVot0 = ((rec[10]>>4)&0x0f)*100 + (rec[10]&0x0f)*10 + ((rec[11]>>4)&0x0f) + (float)(rec[11]&0x0f)/10;
	szVot1 = ((rec[12]>>4)&0x0f)*100 + (rec[12]&0x0f)*10 + ((rec[13]>>4)&0x0f) + (float)(rec[13]&0x0f)/10;
	szVot2 = ((rec[14]>>4)&0x0f)*100 + (rec[14]&0x0f)*10 + ((rec[15]>>4)&0x0f) + (float)(rec[15]&0x0f)/10;
	szVot3 = ((rec[16]>>4)&0x0f)*100 + (rec[16]&0x0f)*10 + ((rec[17]>>4)&0x0f) + (float)(rec[17]&0x0f)/10;
	szVot4 = ((rec[18]>>4)&0x0f)*100 + (rec[18]&0x0f)*10 + ((rec[19]>>4)&0x0f) + (float)(rec[19]&0x0f)/10;
	szVot5 = ((rec[20]>>4)&0x0f)*100 + (rec[20]&0x0f)*10 + ((rec[21]>>4)&0x0f) + (float)(rec[21]&0x0f)/10;
	szVot6 = ((rec[22]>>4)&0x0f)*100 + (rec[22]&0x0f)*10 + ((rec[23]>>4)&0x0f) + (float)(rec[23]&0x0f)/10;
	szVot7 = ((rec[24]>>4)&0x0f)*100 + (rec[24]&0x0f)*10 + ((rec[25]>>4)&0x0f) + (float)(rec[25]&0x0f)/10;
	szVot8 = ((rec[26]>>4)&0x0f)*100 + (rec[26]&0x0f)*10 + ((rec[27]>>4)&0x0f) + (float)(rec[27]&0x0f)/10;
	szVot9 = ((rec[28]>>4)&0x0f)*100 + (rec[28]&0x0f)*10 + ((rec[29]>>4)&0x0f) + (float)(rec[29]&0x0f)/10;
	szVot10 = ((rec[30]>>4)&0x0f)*100 + (rec[30]&0x0f)*10 + ((rec[31]>>4)&0x0f) + (float)(rec[31]&0x0f)/10;
	szVot11 = ((rec[32]>>4)&0x0f)*100 + (rec[32]&0x0f)*10 + ((rec[33]>>4)&0x0f) + (float)(rec[33]&0x0f)/10;
	szVot12 = ((rec[34]>>4)&0x0f)*100 + (rec[34]&0x0f)*10 + ((rec[35]>>4)&0x0f) + (float)(rec[35]&0x0f)/10;
	szVot13 = ((rec[36]>>4)&0x0f)*100 + (rec[36]&0x0f)*10 + ((rec[37]>>4)&0x0f) + (float)(rec[37]&0x0f)/10;
	szVot14 = ((rec[38]>>4)&0x0f)*100 + (rec[38]&0x0f)*10 + ((rec[39]>>4)&0x0f) + (float)(rec[39]&0x0f)/10;
	szVot15 = ((rec[40]>>4)&0x0f)*100 + (rec[40]&0x0f)*10 + ((rec[41]>>4)&0x0f) + (float)(rec[41]&0x0f)/10;
	szVot16 = ((rec[42]>>4)&0x0f)*100 + (rec[42]&0x0f)*10 + ((rec[43]>>4)&0x0f) + (float)(rec[43]&0x0f)/10;
	szVot17 = ((rec[44]>>4)&0x0f)*100 + (rec[44]&0x0f)*10 + ((rec[45]>>4)&0x0f) + (float)(rec[45]&0x0f)/10;
	szVot18 = ((rec[46]>>4)&0x0f)*100 + (rec[46]&0x0f)*10 + ((rec[47]>>4)&0x0f) + (float)(rec[47]&0x0f)/10;
	szVot19 = ((rec[48]>>4)&0x0f)*100 + (rec[48]&0x0f)*10 + ((rec[49]>>4)&0x0f) + (float)(rec[49]&0x0f)/10;
	szVot20 = ((rec[50]>>4)&0x0f)*100 + (rec[50]&0x0f)*10 + ((rec[51]>>4)&0x0f) + (float)(rec[51]&0x0f)/10;
	szVot21 = ((rec[52]>>4)&0x0f)*100 + (rec[52]&0x0f)*10 + ((rec[53]>>4)&0x0f) + (float)(rec[53]&0x0f)/10;
	szVot22 = ((rec[54]>>4)&0x0f)*100 + (rec[54]&0x0f)*10 + ((rec[55]>>4)&0x0f) + (float)(rec[55]&0x0f)/10;
	szVot23 = ((rec[56]>>4)&0x0f)*100 + (rec[56]&0x0f)*10 + ((rec[57]>>4)&0x0f) + (float)(rec[57]&0x0f)/10;

	rc=SQLExecute(hstmt);
	if (rc!=SQL_SUCCESS && rc!=SQL_SUCCESS_WITH_INFO) 
	{
		SQLFreeStmt(hstmt,SQL_CLOSE);
		return FALSE;
	}

	SQLFreeStmt(hstmt,SQL_CLOSE);
	rc = SQLTransact(henv,hdbc,SQL_COMMIT);   
	if (rc!=SQL_SUCCESS && rc!=SQL_SUCCESS_WITH_INFO) 
	{
		SQLFreeStmt(hstmt,SQL_CLOSE);
		return FALSE;
	}

	return true;
}

UINT myDb::SaveCurrentVoltage(unsigned char *rec)
{
	UCHAR szid[5];
	TIMESTAMP_STRUCT szCommTime;
	float szVot;
	SYSTEMTIME loctime;

	strcpy((char *)SqlOrder,"INSERT INTO Current_Voltage VALUES (?,?,?)");
	SQLFreeStmt(hstmt,SQL_RESET_PARAMS);
	rc = SQLPrepare(hstmt,SqlOrder,SQL_NTS);
	if (rc!=SQL_SUCCESS && rc!=SQL_SUCCESS_WITH_INFO) 
	{
		SQLFreeStmt(hstmt,SQL_CLOSE);
		return FALSE;
	}
	SQLBindParameter(hstmt,1,SQL_PARAM_INPUT,SQL_C_CHAR,
		SQL_CHAR,5,0,szid,0,NULL);
	SQLBindParameter(hstmt,2,SQL_PARAM_INPUT,SQL_C_TYPE_TIMESTAMP,
        SQL_TYPE_TIMESTAMP,0,0,&szCommTime,sizeof(szCommTime),NULL);

⌨️ 快捷键说明

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