无法插入空行.行必须至少有一个列值集

ADO写入数据库,一段老代码运行却报错——无法插入空行.行必须至少有一个列值集。搜索了下,有说关键字未赋值、Post()改UpdateBatch()等等。

改UpdateBatch()后,确实不报错了,但是查询数据库未发现写入记录。

换个结构类似表写入,却正常。无非是数据库字段定义问题了。

        AT->TableName = "TemHum";
        AT->Open();
        AT->Append();
        for (int i = 0; i < 16; i++)
            AT->Fields->Fields[i + 2]->Value = nTemH[i];
        AT->UpdateBatch();
        AT->Close();

数据类型区别:一个是bigint,一个int。

将写入数据类型由自动匹配改为强制int后则运行正常:

AT->Fields->Fields[i + 2]->AsInteger = nTemH[i];

而此时也不管是否Post()还是UpdateBatch()了。

你可能感兴趣的:(bcb,数据库)