在数据库表中,我们可以在表设计中添加字段并设置数据类型也可以通过代码,在程序中添加自动编号字段。
部分选择型字段的选项,来自于数据库这里得考虑如何更简单的对接,和处理token或者cookie。
CREATE TABLE Sample(name varchar(12),
field0 varchar(1),
field1 varchar(1),
fieldN varchar(1)
}
然后看实际运行时候的需要,动态分配字段给系统使用,也许需要一个这样的结构来描述分配情况:
public class Available
{
public int CurrentUnusedFieldNumber
public Hashtable FieldToRealName
}
也许某一时刻的数据状况是这样的: CurrentUnusedFieldNumber=3, 哈西表FieldToRealName包含内容是("field0"="SomeId", "field1"="AnyName", "field2=IsOk")
现在的问题是如果要配合Hibernate,如何来处理?以上段的数据使用状况为例子,如果我们的类定义是这样:
public class Entity01
{
public string Name
public string SomeId
public string AnyName
public bool IsOk
}
也许只需要修改一下xxx.hbm.xml,把 SomeId 和 field0 做成对应就ok了。但是在运行时我们怎么知道会有这样的类定义?除非我们做动态代码生成,自动编译也许可以,但是问题也许就到其他方面去了;如果我们不用动态定义,那么类就只能是这样:
public class Entity01
{
public string Name
public Hashtable ExtraFieldAndValues
}
使用的时候,用 entity01.ExtraFieldAndValues.setValue("AnyName", "boss") 的方式来引用,也许这样是修改最少的了,但是问题是Hibernate不支持这样的方法。
在做动态建表时,遇到了一个很棘手的问题:如何判断一个表在数据库中是否存在?开始,想到的是:先去执行创建表的SQL语句,如果此语句错误,则该表可能存在于数据库当中(为什么?)后来,感觉此法大大不妥,上网查了半天,才知道这个问题可通过系统表圆满的解决。
Access当中系统表中有一个叫Msysobjects的,Access2003中可能把几个表都隐藏了,并且默认状态下是不能对这几个表进行 *** 作的,如果需要 *** 作这几个表,需要对相关的权限进行相应的设置:具体如下:
1、把系统表显示出来:工具---------->选项 在显示标签中选中 “系统对象”
2、设置权限: 工具----------〉安全-----------〉用户与组的权限 在“对象名称”里面选中MsysObjects,在“权限"标 签 当中设置权限。
ACCESS2000文件格式
第一步:显示系统表
菜单:【工具】>【选项】
选项卡:试图
显示:系统对象
第二步:设置系统表的 *** 作权限
菜单:【工具】>【安全】>【用户与组权限】
对象名称:选择需要设置权限的系统表名称(MSysObjects)
权限:复选择“查询数据”,“更新数据”,“插入数据”,“删除数据”
第三步:确定按钮,OK!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)