|
@@ -26,13 +26,14 @@ PRIMARY KEY (bid ASC));"
|
|
// KeyCopy表;
|
|
// KeyCopy表;
|
|
#define _CREATE_KEYS_TABLE_ \
|
|
#define _CREATE_KEYS_TABLE_ \
|
|
"CREATE TABLE keys \
|
|
"CREATE TABLE keys \
|
|
-(sn TEXT(32) PRIMARY KEY NOT NULL,\
|
|
|
|
|
|
+(bid TEXT(16) NOT NULL,\
|
|
|
|
+sn TEXT(32) PRIMARY KEY NOT NULL,\
|
|
keys TEXT NOT NULL,\
|
|
keys TEXT NOT NULL,\
|
|
copy_date DATETIME DEFAULT '',\
|
|
copy_date DATETIME DEFAULT '',\
|
|
report_date DATETIME DEFAULT '',\
|
|
report_date DATETIME DEFAULT '',\
|
|
copy_status INTEGER NOT NULL DEFAULT 0,\
|
|
copy_status INTEGER NOT NULL DEFAULT 0,\
|
|
report_status INTEGER NOT NULL DEFAULT 0);"
|
|
report_status INTEGER NOT NULL DEFAULT 0);"
|
|
-#define _SELECT_KEYS_TABLE_ "SELECT sn, keys, copy_date, report_date, copy_status, report_status FROM keys"
|
|
|
|
|
|
+#define _SELECT_KEYS_TABLE_ "SELECT bid, sn, keys, copy_date, report_date, copy_status, report_status FROM keys"
|
|
|
|
|
|
// Log表;
|
|
// Log表;
|
|
#define _CREATE_LOG_TABLE_ \
|
|
#define _CREATE_LOG_TABLE_ \
|
|
@@ -248,20 +249,22 @@ INT CDataImpl::QueryKeyInfo(std::string sn, STKeys &data)
|
|
if ( nRow == 1)
|
|
if ( nRow == 1)
|
|
{
|
|
{
|
|
#ifndef USE_UTF8
|
|
#ifndef USE_UTF8
|
|
- data.sn = pazResult[nCol+0];
|
|
|
|
- data.keys = pazResult[nCol+1];
|
|
|
|
- data.copy_date = pazResult[nCol+2];
|
|
|
|
- data.report_date = pazResult[nCol+3];
|
|
|
|
- data.copy_status = pazResult[nCol+4];
|
|
|
|
- data.report_status = pazResult[nCol+5];
|
|
|
|
|
|
+ data.order = pazResult[nCol+0];
|
|
|
|
+ data.sn = pazResult[nCol+1];
|
|
|
|
+ data.keys = pazResult[nCol+2];
|
|
|
|
+ data.copy_date = pazResult[nCol+3];
|
|
|
|
+ data.report_date = pazResult[nCol+4];
|
|
|
|
+ data.copy_status = pazResult[nCol+5];
|
|
|
|
+ data.report_status = pazResult[nCol+6];
|
|
#else
|
|
#else
|
|
// 由Native for SQLite3插入的数据,都是utf8格式;
|
|
// 由Native for SQLite3插入的数据,都是utf8格式;
|
|
- data.sn = CharEncoding::UTF82ASCII(pazResult[nCol+0]);
|
|
|
|
- data.keys = CharEncoding::UTF82ASCII(pazResult[nCol+1]);
|
|
|
|
- data.copy_date = CharEncoding::UTF82ASCII(pazResult[nCol+2]);
|
|
|
|
- data.report_date = CharEncoding::UTF82ASCII(pazResult[nCol+3]);
|
|
|
|
- data.copy_status = pazResult[nCol+4];
|
|
|
|
- data.report_status = pazResult[nCol+5];
|
|
|
|
|
|
+ data.order = pazResult[nCol+0];
|
|
|
|
+ data.sn = CharEncoding::UTF82ASCII(pazResult[nCol+1]);
|
|
|
|
+ data.keys = CharEncoding::UTF82ASCII(pazResult[nCol+2]);
|
|
|
|
+ data.copy_date = CharEncoding::UTF82ASCII(pazResult[nCol+3]);
|
|
|
|
+ data.report_date = CharEncoding::UTF82ASCII(pazResult[nCol+4]);
|
|
|
|
+ data.copy_status = pazResult[nCol+5];
|
|
|
|
+ data.report_status = pazResult[nCol+6];
|
|
#endif
|
|
#endif
|
|
}
|
|
}
|
|
|
|
|
|
@@ -417,7 +420,9 @@ INT CDataImpl::InsertKeyInfo(STKeys &data)
|
|
if(m_psqlite3 == NULL)
|
|
if(m_psqlite3 == NULL)
|
|
return -1;
|
|
return -1;
|
|
|
|
|
|
- std::string strInsert = "INSERT INTO keys(sn, keys) VALUES ('";
|
|
|
|
|
|
+ std::string strInsert = "INSERT INTO keys(bid, sn, keys) VALUES ('";
|
|
|
|
+ strInsert.append(data.order);
|
|
|
|
+ strInsert.append("','");
|
|
strInsert.append(data.sn);
|
|
strInsert.append(data.sn);
|
|
strInsert.append("','");
|
|
strInsert.append("','");
|
|
strInsert.append(data.keys);
|
|
strInsert.append(data.keys);
|
|
@@ -474,15 +479,16 @@ INT CDataImpl::BatchInsertKeyInfo(std::vector<STKeys> &vtdata)
|
|
}
|
|
}
|
|
|
|
|
|
sqlite3_stmt *stmt;
|
|
sqlite3_stmt *stmt;
|
|
- const char* sql = "INSERT INTO keys(sn, keys) VALUES (?,?)";
|
|
|
|
|
|
+ const char* sql = "INSERT INTO keys(bid, sn, keys) VALUES (?,?,?)";
|
|
sqlite3_prepare_v2(m_psqlite3, sql, strlen(sql), &stmt, 0);
|
|
sqlite3_prepare_v2(m_psqlite3, sql, strlen(sql), &stmt, 0);
|
|
|
|
|
|
std::vector<STKeys>::iterator it = vtdata.begin();
|
|
std::vector<STKeys>::iterator it = vtdata.begin();
|
|
for ( int i = 0; it != vtdata.end(); it++, i++ )
|
|
for ( int i = 0; it != vtdata.end(); it++, i++ )
|
|
{
|
|
{
|
|
sqlite3_reset(stmt);
|
|
sqlite3_reset(stmt);
|
|
- sqlite3_bind_text(stmt, 1, it->sn.c_str(), it->sn.size(), SQLITE_STATIC);
|
|
|
|
- sqlite3_bind_text(stmt, 2, it->keys.c_str(), it->keys.size(), SQLITE_STATIC);
|
|
|
|
|
|
+ sqlite3_bind_text(stmt, 1, it->order.c_str(), it->order.size(), SQLITE_STATIC);
|
|
|
|
+ sqlite3_bind_text(stmt, 2, it->sn.c_str(), it->sn.size(), SQLITE_STATIC);
|
|
|
|
+ sqlite3_bind_text(stmt, 3, it->keys.c_str(), it->keys.size(), SQLITE_STATIC);
|
|
sqlite3_step(stmt);
|
|
sqlite3_step(stmt);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -623,7 +629,7 @@ BOOL CDataImpl::UpdateKeyReportStatus(std::string sn, int status)
|
|
strInsert.append("', report_date=current_timestamp");
|
|
strInsert.append("', report_date=current_timestamp");
|
|
strInsert.append(" WHERE sn ='");
|
|
strInsert.append(" WHERE sn ='");
|
|
strInsert.append(sn);
|
|
strInsert.append(sn);
|
|
- strInsert.append("';");
|
|
|
|
|
|
+ strInsert.append("' and copy_date <> '';");
|
|
|
|
|
|
char* psqlite_error = NULL;
|
|
char* psqlite_error = NULL;
|
|
int sqlite_error = sqlite3_exec(m_psqlite3, strInsert.c_str(), NULL, 0, &psqlite_error);
|
|
int sqlite_error = sqlite3_exec(m_psqlite3, strInsert.c_str(), NULL, 0, &psqlite_error);
|