一次操作Access数据库,插入一条数据,总是失败,如下:
通过赋值,一个字段一个字段的排查,最终确定是UserAge字段处有问题。
最初,UserAge字段是 %d 类型的,赋值20,可成功插入数据库,赋值199插入失败,仔细查看sql语句和数据库中这个字段设计的类型等,均未发现问题。
后来,怀疑数据库对数值字段的支持不好,UserAge字段改用字符串(%s),但是测试发现效果跟%d是一样的,赋值"20",可成功插入数据库,赋值"199"插入失败。发现20比199少一个字节就能成功,所以怀疑是sprintf格式化后的字符串超过了128个字节,将数组长度128改为512,向Access数据库插入199成功,又插入其他值也成功。
最终结论: 数组长度太短,即,sprintf格式化后的字符串超过了128个字节,导致执行SQL语句失败。
时间: 2024-10-21 19:54:47