㈠ 如何更新sql Server里的CLR程序集
这样大大增强了Sql Server的功能,为编程开发带来了方便。怎样创建CLR存储过程网上的介绍文章已经很多了,本文不讨论了。 作者在使用过程中遇到了这样的问题,就是程序集assembly的更新问题。在Sql Server中程序集不能修改,只能删了重建。见下图: 接下来如果想用drop命令把它删掉,就会出现这个:
由于对象 'IsLegalDate' 引用了 'ZSqlExtend',DROP ASSEMBLY 失败。原来基于这个程序集肯定要建很多存储过程和函数,这些对象引用了这个程序集,DROP ASSEMBLY 失败。可以单击上图中“查看依赖关系”。怎么办呢?那只能把引用这个程序集的所有对象都删掉,这样一来工作量可就大了,而且重建程序集后还要建这些存储过程和函数。这些存储过程和函数也有可能被引用,也删不掉。这样我们更新程序集岂不是太麻烦了?笔者想出一个变通的办法,与广大网友交流。首先ZSqlExtend的代码如下,里面有一个IsLegalDate函数。用VS2008编译后的文件是ZSqlExtend.dll。using System.Data.SqlTypes;
using System.Data.SqlClient;
using System.Text.RegularExpressions; namespace ZSqlExtend_NS{public class ZSqlExtend_cls{[SqlFunction(DataAccess = DataAccessKind.Read)]
public static bool IsLegalDate(int iyear, int imonth, int iday){bool ild = false;try{DateTime newdate = new DateTime(iyear, imonth, iday);
DateTime dMin = new DateTime(1900, 1, 1);
DateTime dMax = new DateTime(2079, 6, 7);
ild = newdate >= dMin && newdate < dMax;}catch{ild = false;}return ild;
}} //END CLASS }根据这个dll文件在Sql Server中创建程序集和函数:create assembly ZSqlExtend
from 'E:\hs1\ZSqlExtend\bin\ZSqlExtend.dll' with permission_set = Safe;
go CREATE FUNCTION IsLegalDate
(@y int,@m int,@d int)
RETURNS bit
AS EXTERNAL NAME ZSqlExtend.[ZSqlExtend_NS.ZSqlExtend_cls].IsLegalDate;
go 然后再建一个类库项目,比如我再做一个ZSqlExtend_mmy的类库项目,用VS2008编译后的文件是ZSqlExtend_mmy.dll,这个是ZSqlExtend.dll的代替品。把ZSqlExtend.dll的内容在这个再写一遍,不过这个是假的,所以可以写成这样:using System.Data.SqlTypes;
using System.Data.SqlClient;
using System.Text.RegularExpressions; namespace ZSqlExtend_NS{public class ZSqlExtend_cls{[SqlFunction(DataAccess = DataAccessKind.Read)]
public static bool IsLegalDate(int iyear, int imonth, int iday){return true;
} } //END CLASS }把这个“假的”ZSqlExtend_mmy.dll也注册进Sql Server。create assembly ZSqlExtend_mmy
from 'E:\hs1\ZSqlExtend_mmy\bin\ZSqlExtend_mmy.dll' with permission_set = Safe;go我们的第一步工作就做完了。现在我在项目ZSqlExtend里修改了IsLegalDate,需要重建程序集,就出现了本文一开始的情况。当然你可以先把IsLegalDate删掉,但是我不能这么做,因为很多表的计算字段和视图引用了IsLegalDate。所以我只能让IsLegalDate和程序集ZSqlExtend脱钩,然后将程序集ZSqlExtend删除重建。要想脱钩就得用那个ZSqlExtend_mmy了,因为它其中的函数签名和ZSqlExtend完全一样。函数IsLegalDate是不能删了,但我们可以修改它,把它改在别的程序集上。Sql Server中执行:alter FUNCTION IsLegalDate
(@y int,@m int,@d int)
RETURNS bit
AS EXTERNAL NAME ZSqlExtend_mmy.[ZSqlExtend_NS.ZSqlExtend_cls].IsLegalDate;goOK,此时程序集ZSqlExtend已经可以删除重建了,在Sql Server中运行:drop assembly ZSqlExtend;create assembly ZSqlExtend
from 'E:\hs1\ZSqlExtend\bin\ZSqlExtend.dll' with permission_set = Safe;
go当然还要把函数IsLegalDate再改回来alter FUNCTION IsLegalDate
(@y int,@m int,@d int)
RETURNS bit
AS EXTERNAL NAME ZSqlExtend.[ZSqlExtend_NS.ZSqlExtend_cls].IsLegalDate;go这里需要注意2个问题:1、也许你会问,既然要把函数IsLegalDate改掉,让它和程序集ZSqlExtend无关,何不直接用语句:ALTER FUNCTION [dbo].[IsLegalDate](@y [int], @m [int], @d [int])
RETURNS [bit]beginreturn 1;end哈哈,你会得到如下提示: 无法对 'dbo.IsLegalDate' 进行更改,因为它是不兼容的对象类型。2、为什么要再编译个DLL呢?把编译好的ZSqlExtend.dll改个名那个“假的”不就有了吗。
㈡ 在网站的框架中,有些提供了在页面进行数据库表的列添加功能,那程序是如何完成相应的SQL语句的动态生成
这个似乎不难
添加表的sql语句:alter table 表名 add 列名 数据类型
列名使用参数如@col即可动态生成,至于数据类型可以设置成固定的,如果需要动态生成也可以设置成参数,在页面用下拉列表形式选择为参数赋值
㈢ 安装SQL,microsoft .net framework 出错,急求!!!!!!!!!!!!
提示信息里面不是告诉你了,要清楚注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog]吗,去注册表里面删除掉,另外,安装SQL之前也要清理注册表防止被挂起导致安装失败。具体方法是:
在运行窗口输入regedit,打开注册表编辑器,在HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager中找到PendingFileRenameOperations,删除该键值,关闭注册表编辑器。重新安装SQL Server 2000,此时,就可以正常进入期待的安装界面了。 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager存放的是当前系统会话的快照,而PendingFileRenameOperations记录的是一个未成功进行的文件更名操作,SQL Server2000在安装时可能会使用。
如果你还不放心,可以在注册表里面搜索一下SQL相关的值,一并删除掉再安装。
㈣ SQL安装中出现.net2框架损坏问题
首先说明一下.net framework 2.0及后面的3.0,3.5,核心组件都是2.0的内容,3.0及3.5只是在框架2.0的基础上加了几个程序集,而.net framework 4.0就不同了。由2.0/3.0/3.5这三个框架产生的中间代码均面向CLR 2.0。而且.net 框架不同版本间能进行共存。你装SQL Server 2005时,出现了上面的错误提示,只需要上微软官方下载一个donetfx2.0.exe即可。
㈤ SQL Server 安装程序遇到以下错误:未能加载文件或程序集。
1、你的原始安装盘有问题,貌似你安装的是SQL2008或者是SQL2008R2,我以前在网上下载的版本就遇到过类似问题。最后下载正确的就没问题
2、也可能是你的.Net框架装的有问题。可以先卸载,再安装SQL试试
㈥ java程序,SQL语句的问题
根据错误提示信息,可以明显知道是 “学号=getUser”有问题,若你有使用数据层框架的话,则是为对getUser占位符进行赋值,若没用框架,则可能是sql语句单引号的缘故(参数为字符类型时,使用单引号进行包围)。应该可以解决掉bug。
对于不同用户显示不同功能的需求,如果要做的完善点的话,可以添加一个权限控制模块,网上有很多这类的参考材料,而简单的解决办法就是直接写死在代码里,验证是否管理员帐号再决定是否显示功能
㈦ 在SQL中什么是程序集
程序集是 .NET Framework 应用程序的主要构造块。所有托管类型和资源都包含在某个程序集内,并被标记为只能在该程序集的内部访问,或者被标记为可以从其他程序集中的代码访问。程序集在安全方面也起着重要作用。代码访问安全系统使用程序集信息来确定为程序集中的代码授予的权限集。
㈧ 安装sql 2005时,安装程序正在安装.NET Framework程序集期间遇到错误,错误为没有注册类
没有碰到这这种错误.但感觉应该是注册表的问题、