GWA2更新:SQL语句写入数字型字符串(2)

关于在MySQL的使用中,插入数字型字符串时,在贴文:
“GWA2更新:SQL语句写入数字型字符串” (  -R/gwa2-update  )
做过分析,遇到这样的情况,需要特殊对待,避开 $obj->setBy , 而是使用 $obj->execBy 来自行拼凑SQL语句。

然而在 -gMIS 这样的使用情景中,却不能自行拆解 $obj->setBy , 所以需要进一步的分析寻找解决方法,思路如下:
1. -gMIS 环境中,有 tblconf.inc 通过他能够读取到字段的默认值,这也是在
“-gMIS更新兼容Strict SQL Mode” (  -R/e2TX  )
讨论过,设想如果知道一个字段的默认值,可以据此判断它的值的表现形式;这是下面的基础;
2. 在 webapp.class 中增加 $hmfieldinfo 用于保存当前操作表的结构信息,主要包括字段默认值等信息;从这里也可以读取到字段类型,比如int,char等;后续可以继续利用这些属性;
3. 进一步地,在 gtbl.class extends webapp.class 中,在设置 setFieldList 时,填充 $hmfieldinfo ;
4. 在dba.class 中,进一步的透传 $hmfieldinfo 到 mysql.class 中,然后在 query执行过程中,根据 $hmfieldinfo 中的相关属性进行判断:当field是char或者默认值是 ” 时,即便是 0102 这样的值,也当作字符串进行处理。

如此即可。

此条目发表在-gMIS, -GWA2, 编程技术, 计算机技术分类目录,贴了, 标签。将固定链接加入收藏夹。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

Captcha Code