数据库动态添加字段

数据库动态添加字段,第1张

用SQL语句添加删除修改字段、一些表与字段的基本 *** 作、数据库备份等。

在数据库表中,我们可以在表设计中添加字段并设置数据类型也可以通过代码,在程序中添加自动编号字段。

部分选择型字段的选项,来自于数据库这里得考虑如何更简单的对接,和处理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!


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/6640998.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存