1.
//表单:Record(USN+有线MAC地址+无线MAC地址)
//查询
#define QUERY_SQL_SN "SELECT * FROM Record WHERE USN = '%s'"
#define QUERY_SQL_MAC "SELECT * FROM Record WHERE MAC = '%s'"
#define QUERY_SQL_WMAC "SELECT * FROM Record WHERE W_MAC = '%s'"
//插入
//#define INSERT_SQL_SN_MAC "INSERT INTO Record (USN, MAC, W_MAC, TIME) VALUES ('%s','%s','%s','%s');"
#define INSERT_SQL_SN_MAC "INSERT OR REPLACE INTO Record (USN, MAC, W_MAC, TIME) VALUES ('%s','%s','%s','%s');"
#define INSERT_SQL_SN_MAC_OLD "INSERT INTO RepeatRecord (USN, MAC, W_MAC, TIME) VALUES ('%s','%s','%s','%s');"
//insert or replace:如果不存在就插入,存在就更新
//insert or ignore:如果不存在就插入,存在就忽略
2.
//NOT NULL - 非空
//UNIQUE - 唯一
//PRIMARY KEY - 主键
//FOREIGN KEY - 外键
//CHECK - 条件检查
//DEFAULT - 默认
static const char* create_sql = "CREATE TABLE Record("\
"USN CHAR(20) PRIMARY KEY UNIQUE NOT NULL,"\
"MAC CHAR(20) UNIQUE,"\
"W_MAC CHAR(20) UNIQUE,"\
"TIME CHAR(20)) ;";
static const char* create_EntrySql = "CREATE TABLE RepeatRecord("\
"USN CHAR(20) ,"\
"MAC CHAR(20) ,"\
"W_MAC CHAR(20) ,"\
"TIME CHAR(20)) ;";
DB::DB(void):m_pDB(NULL)
{
}
DB::~DB(void)
{
if (m_pDB)
{
sqlite3_close(m_pDB);
m_pDB = NULL;
}
}
bool DB::OpenDB(const char* name, sqlite3 **ppDB)
{
int ret = sqlite3_open(name, &m_pDB);
if (SQLITE_OK != ret)
{
AfxMessageBox(_T("打开数据库失败"));
return false;
}
return true;
}
bool DB::CreateTable(const char* sql)
{
if (!m_pDB || !sql) return false;
char *errMsg = NULL