3,881
社区成员
发帖
与我相关
我的任务
分享int ret=-1;
CString strSQL=_T("CREATE TABLE ");
strSQL+=lpTableName;
strSQL+=_T("\
(AddressID INTEGER PRIMARY KEY,\
HostID INTEGER,\
HostName TEXT,\
Mac BLOB,\
Ip interger);\
");
ret=m_SQLiteDB.ExecuteSQL(strSQL);
if(SQLITE_OK==ret)
return TRUE;
else
return FALSE;
int ret;
BYTE szMac[7]={0x11,0x11,0x11,0x11,0x11,0x11};
DWORD dwIP=IpStrToDword("220.31.56.24");
CString strSQL;
strSQL.Format(_T("INSERT INTO Address_TBL VALUES(1,1,'HostName',?,%u);"),dwIP);
ret=m_SQLiteDB.WriteBlob(strSQL,szMac,6);
if(SQLITE_OK!=ret)
return FALSE;
strSQL.Empty();
strSQL=_T("SELECT Mac FROM Address_TBL WHERE HostName='HostName';");
BYTE *pMac=NULL;
int nLen=-1;
ret=m_SQLiteDB.ReadBlob(strSQL,&pMac,&nLen);
if(SQLITE_OK!=ret)
return FALSE;
if(6==nLen)
{
BYTE szMacRead[6]={0};
szMacRead[0]=pMac[0];
szMacRead[1]=pMac[1];
szMacRead[2]=pMac[2];
szMacRead[3]=pMac[3];
szMacRead[4]=pMac[4];
szMacRead[5]=pMac[5];
}
SQLite::TablePtr pResult=NULL;
pResult=m_SQLiteDB.QuerySQL2(strSQL);
CString strValue=pResult.m_pTable->GetValue(4);
DWORD dwIpRead=_wtoi(strValue);
如上,可插入可查询,2项操作结果一致。int ret;
BYTE szMac[6]={0x11,0x11,0x11,0x11,0x11,0x11};
//DWORD dwIP=0x12345678;
DWORD dwIP=IpStrToDword("220.31.56.24");
CString strSQL;
strSQL.Format(_T("INSERT INTO Address_TBL VALUES(1,1,'HostName','%s',%d);"),szMac,dwIP);
ret=m_SQLiteDB.ExecuteSQL(strSQL);
if(SQLITE_OK!=ret)
return FALSE;
这么存IP我之后取出来看了是没什么问题的,现在还是MAC的问题,试试jwj070524的方法。BYTE szMac[6]={0x21,0x21,0x21,0x21,0x31,0x11};
DWORD dwIP=0x12345678;
CString strSQL;
strSQL.Format(_T("INSERT INTO XX_TBL(1,1,'XX','%s');"),szMac);解决!