_RecordsetPtr MySet;
MySet.CreateInstance(__uuidof(Recordset));
SOpen.Format("UPDATE test_data SET data='00000'");
MySet->Open(_bstr_t(SOpen),_variant_t((IDispatch *)m_pConnection,true),adOpenDynamic,adLockOptimistic,adCmdText);这样更新data倒是可以的,data是blob字段类型。如果我想把data字段更新为程序中获得的数组
BYTE Mydata[5]={0,0,0,0,0},那句UPDATE的命令应该怎么写啊?

解决方案 »

  1.   

    update test_data set data= '\cc\dd\0\cc\dd' ;SOpen.Format("UPDATE test_data SET data='\0\0\0\0\0'");
      

  2.   

    不是啦,我只是用“00000”打个比方,其实我要存的是一个BYTE的数组,不知可否用数组名作为参数?C#的代码那个MySQL参考手册上就有MySql.Data.MySqlClient.MySqlConnection conn;
    MySql.Data.MySqlClient.MySqlCommand cmd;conn = new MySql.Data.MySqlClient.MySqlConnection();
    cmd = new MySql.Data.MySqlClient.MySqlCommand();string SQL;
    UInt32 FileSize;
    byte[] rawData;
    FileStream fs;conn.ConnectionString = "server=127.0.0.1;uid=root;" +
        "pwd=12345;database=test;";try
    {
        fs = new FileStream(@"c:\image.png", FileMode.Open, FileAccess.Read);
        FileSize = fs.Length;    rawData = new byte[FileSize];
        fs.Read(rawData, 0, FileSize);
        fs.Close();    conn.Open();    SQL = "INSERT INTO file VALUES(NULL, ?FileName, ?FileSize, ?File)";    cmd.Connection = conn;
        cmd.CommandText = SQL;
        cmd.Parameters.Add("?FileName", strFileName);
        cmd.Parameters.Add("?FileSize", FileSize);
        cmd.Parameters.Add("?File", rawData);    cmd.ExecuteNonQuery();
    }
    但是放到VC我就不会了,谁知道啊???