主题:  今天发现一条不成文的东西,拿出来探讨一下

沉默是金

职务:普通成员
等级:6
金币:11.2
发贴:4357
#12004/11/10 1:26:01
ASP中,一条INSERT语句,经过半个多小时的反复测试,重与,最后经逐个的排查,最终得出这样的一个结论:

变量名如果以h打头,那么h后面的一个字母不可以为a,b,c,d,e,f其中任何一个,否则报错,即ha...,hb..,hc..,hd...,he...,hf....

报错出下:
Microsoft VBScript 编译器错误 错误 '800a03ee'

缺少 ')'

/guilin/backstep/add_plane.asp,行44

conn.execute("insert into plane (hb,jx,qd,qfsj,zd,ddsj,lx,cw,username) values ('"&hb&"','"&jx&"','"&qd&"','"&qfsj&"','"&zd&"','"&ddsn&"','"&lx&"','"&cw&"','"&session("username")&"')")
---------------------------------------------------------------------------------^


从g以后好象就正常了,因为没有逐一测试,不知道有谁遇到过这样的情况,SQL SERVER数据库,ACCESS还没试过,真是鸟都气歪了,害我查了半天的错,有兴趣的朋友也可以试一试,不知道会不会也出现同样的事情。


难人一个……

老刀把子

职务:普通成员
等级:1
金币:0.0
发贴:207
#22004/11/10 8:31:59
这都能被你试出来
pfpf
unicode编码的问题吧



蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
#32004/11/10 8:58:20
好象没这么折腾吧,我觉得就考虑数据库的设计稍规范一些,这样命名太难懂了。


非常大鱼

沉默是金

职务:普通成员
等级:6
金币:11.2
发贴:4357
#42004/11/10 10:29:02
呵呵,个人习惯,以汉语拼音的头字母作为字段名,英文单词量不够用,只好出此下策了。


难人一个……

蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
#52004/11/10 10:48:07
一定要习惯用英文,我的英文忘得肯定比你多,不过这些年强迫自己用英文,数据库命名不懂就用金山词霸,人就这样惰性。浅见了。


非常大鱼

沉默是金

职务:普通成员
等级:6
金币:11.2
发贴:4357
#62004/11/10 11:04:52
哈哈,谢谢忠告


难人一个……

缺缺

职务:管理员
等级:8
金币:41.0
发贴:9620
#72004/11/10 11:09:37
我也习惯用英文有时还要为选用哪个单词更专业更正规费一下脑筋



蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
#82004/11/10 11:13:07
好好,提倡用英文,没时间学英文,这个多少也算学了一点


非常大鱼

缺缺

职务:管理员
等级:8
金币:41.0
发贴:9620
#92004/11/10 11:23:23
不仅仅是英文,适当的大小写和有意义的前缀后缀也是应该的:第一,让你自己能明白你目前所用的变量,表,字段是什么类型的.第二,避免的sql中的保留字



沉默是金

职务:普通成员
等级:6
金币:11.2
发贴:4357
#102004/11/10 11:38:45
哎,惭愧呀,偶从来就不会注意这此个东西,特别是英文的大小写,保留字倒是可以避免使用,文件名是以英文定义的,只是在程序的时候注重格式的缩进问题,看来以后要有所改正了。


难人一个……

老刀把子

职务:普通成员
等级:1
金币:0.0
发贴:207
#112004/11/10 11:42:56
借鉴下匈牙利命名法把,不错的东东



蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
#122004/11/10 14:06:28
开发一个有连续性的系统,特别是数据库系统,数据库的设计是最重要的了。程序以后可以反复的改,但数据库可不能想改就改的。有一个很多用户的数据库产品,程序的升级,首先要考虑的是数据库的兼容和升级,所以数据库是基础,最重要的一个设计环节。
有时,常会忽略一些小的细节,比如用字段ID、Name,如果很多表都这样命名,多表查询中常要吃些亏,并且出错了都很难查出来。比如.Net里的DateSet中字段,DateSet1.Tables[0].Rows[1]["Product.Name"]有时是正确的,但有时是错误的,只有在查询中出现二个以上的Name时才会正确,这就很讨厌了。所以干脆命名为ProductID、ProductName就不容易出现错误。数据库命名很有学问的。


非常大鱼

布鲁斯狼

职务:普通成员
等级:2
金币:11.0
发贴:377
#132004/11/14 19:50:23
gourd在上个帖子中说
引用:
借鉴下匈牙利命名法把,不错的东东


顺便说下

.net中已经不推荐使用匈牙利命名法

类就以c开头,等等等