2012-03-11 11 views
0

以下のコードは、タグデータをモニタに表示します。私が必要とするのは、 "t"のすべての文字を組み合わせてデータベースに挿入することです。以下のコードでは、ループするたびに文字をmysqlに別のエントリに出力します。たとえば、16進タグの長さが10バイトの場合、10個の異なるエントリになります。私は何とか文字を組み合わせて1つのエントリに挿入する必要があります。文字を組み合わせてデータベースに挿入する

私は文字列にしようとしましたが、sprintf() "Query [256]"の最初の引数は文字宣言である必要がありますのでエラーになります。

Btw以下のコードは、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 


    } 

} 
+2

パスワードを変更することをお勧めします。これで、インターネットに一般公開されるようになりました。特に、他の場所で同じパスワードを使用している場合。 – bdonlan

答えて

0

私は、文字列にそれを作ってみましたが、 はsprintfの最初の引数()「クエリ[256]は、」文字宣言 であることが要求されているので、それは私にエラーを与えます。

ちょうどクエリの代わりに(char *)Queryを使用してchar *にキャストします。

1

MFCを使用していると思います.QueryをCStringとして宣言し、既に使用している他の場所と同様にFormatを使用してください。

関連する問題