下面显示的代码显示显示器上的标签数据。我需要的是组合“t”中的所有字符并将其插入数据库。在下面的代码中发生的是每次循环时,它将字符打印到mysql中的不同条目。例如:如果十六进制标记长度为10个字节长,则它将在10个不同的条目中。我需要以某种方式组合字符并将其插入到1个条目中。
我试过将它变成字符串,但是sprintf()“Query [256]”的第一个参数需要是字符声明,因此它给了我一个错误。
以下代码显示正在从RFID阅读器读取的标签。
void CT1121Dlg::DisplayTagData(int cnt,int tag_len,int start_index)
{
MYSQL *pConnection;
MYSQL_RES *pResult=NULL;
MYSQL_ROW Row;
char Query[256];
int a;
int z = 25;
int fields;
pConnection = mysql_init(NULL);
mysql_real_connect(pConnection,"localhost","root","password","test",0,NULL,0);
CString s,s0;
int i,j;
unsigned char t;
for(i = 0; i < cnt; i++)
{
s.Format("NO.%d: ",start_index+i+1);
for(j = 0; j < tag_len; j++)
{
t = IdBuf[i].Ids[j];
if(t < 0x10)
{
s0.Format("0%X ",t); // if hexa is less than 10 print 0 infront of it
}
else
s0.Format("%X ",t); // else just print the 2 bit hexa decimal
s += s0;
**sprintf(Query, "INSERT into t(e) values (%x)",t);**
if ( mysql_query(pConnection,Query) == 0 )
{
pResult = mysql_store_result( pConnection );
}
}
AddOprationInfo(s); // print string s on the screen
}
}
答案 0 :(得分:1)
您正在使用MFC,我认为:只需将Query声明为CString,并使用Format,就像您在其他所有地方一样。
答案 1 :(得分:0)
我试过把它变成字符串,但第一个参数是 sprintf()“查询[256]”必须是字符声明 因此它给了我一个错误。
使用(char *)Query而不是Query。
将其强制转换为char *