I resolve the insert problem through define User like this:
t.setName("[User]");
IxDataMember * pData = t.id(&User::id, "id");
pData->setSqlAlias("User_id_0");
pData = t.data(&User::user_name, "user_name");
pData->setSqlAlias("User_user_name_0");
pData = t.data(&User::password, "password");
pData->setSqlAlias("User_password_0");
But the following define will still cause error when insert userPtr to table:
t.setName("[User]");
IxDataMember * pData = t.id(&User::id, "id");
pData->setSqlAlias("User_id_0");
pData = t.data(&User::user_name, "[user_name]");
pData->setSqlAlias("User_user_name_0");
pData = t.data(&User::password, "[password]");
pData->setSqlAlias("User_password_0");
I don't know if it's a bug, So I deleted my last post. You'd better test by yourself.