深爱那片海 发表于 2015-1-16 22:39:45

ASP.NET网页编程之存储过程当中挪用C#写的DLL

也不知道,我同学昨天说数据挖掘很好。存储历程比来一个项目中碰到一个转换FileTime的成绩.工夫是在C#顶用DateTime.ToFileTime写进数据库中,这在存储过程当中判别年和季度成了成绩,怎样才干把工夫转换为一般的工夫格局呢?Sqlserver中又没有FromFileTime对应的办法?实在很复杂用C#写一个转换工夫的Dll然后在存储过程当中挪用就能够了.
转换工夫的类以下:

publicclassFileTimeConvert
{
publicFileTimeConvert()
{
}

publicstringConvertTime(longfileTime)
{
stringretVal=string.Empty;
if(fileTime>0)
{
DateTimedt=DateTime.FromFileTime(fileTime);
retVal=dt.ToString();
}
returnretVal;
}
}
注重这个Guid我们在存储过程当中援用要用到这个Guid.
为便利大概在多处必要挪用,我们专门写一个存储历程
以下:
CREATEPROCEDUREspu_ConvertFileTimeToNormal
@ticksBIGINT,
@returnvalvarchar(40)output
AS
DECLARE@srcvarchar(255)
DECLARE@descvarchar(255)

DECLARE@objectint
DECLARE@hrint
EXEC@hr=sp_OACreate{729ba6af-3eff-4b75-b43b-d951a190dbe6},@objectOUT
IF@hr=0--假如创立工具乐成
BEGIN
EXEC@hr=sp_OAMethod@object,ConvertTime,@returnvalOUT,@ticks
print@returnval
print@hr
if(@hr0)
BEGIN
EXECsp_OAGetErrorInfo@object,@srcOUT,@descOUT
SELECThr=convert(varbinary(4),@hr),Source=@src,Description=@desc
END

END
ELSE
BEGIN
--print@hr
printCreateObjectConvertTimefailed

EXECsp_OAGetErrorInfo@object,@srcOUT,@descOUT
SELECThr=convert(varbinary(4),@hr),Source=@src,Description=@desc
RETURN
END
EXEC@hr=sp_OADestroy@object
IF@hr0
BEGIN
EXECsp_OAGetErrorInfo@object
RETURN
END
GO
这个时分我们还差最初一步注册DLL了
在.net命令行下输出regasm-codebasepath
好了,如今我们就能够在其他存储过程当中挪用这个存储历程前往一般的工夫了.
给个小例子:
EXECspu_ConvertFileTimeToNormal@CreateTime,@NormalTimeOUT
@CreateTime:FileTime格局
@NormalTime:一般的工夫格局字符串(spu_ConvertFileTimeToNormal存储历程前往值)
这个复杂的小例子申明了我们怎样在存储过程当中挪用DLL
是否是你办理成绩又多了一个选择了呢?
不过你如果学.net的话,你就不要选os了,这课比较底层的。你可以旁听数据库加上软件构件和中间件。(webservices和面向服务的课也应该听一听)

小女巫 发表于 2015-1-19 20:53:49

关于ASP.NET功能上,ASP.NET比微软以前的ASP(96年出现)有更强大的library,更好的稳定性。ASP.NET可以使用.NETFramework中所有组件(也就是说.NET能实现的,ASP.NET一样能实现)。

金色的骷髅 发表于 2015-1-28 07:45:54

由于CGI程序每响应一个客户就会打开一个新的进程,所以,当有多个用户同时进行CGI请求的时候,服务器就会打开多个进程,这样就加重了服务器的负担,使服务器的执行效率变得越来越低下。

柔情似水 发表于 2015-2-5 14:07:56

我的意思是.net好用,从功能上来说比JAVA强还是很明显的。

谁可相欹 发表于 2015-2-12 03:27:12

ASP.NET:ASP.net是Microsoft.net的一部分,作为战略产品,不仅仅是ActiveServerPage(ASP)的下一个版本;它还提供了一个统一的Web开发模型,其中包括开发人员生成企业级Web应用程序所需的各种服务。ASP.NET的语法在很大程度上与ASP兼容,同时它还提供一种新的编程模型和结构,可生成伸缩性和稳定性更好的应用程序,并提供更好的安全保护。

admin 发表于 2015-3-2 21:48:05

可以通过在现有ASP应用程序中逐渐添加ASP.NET功能,随时增强ASP应用程序的功能。ASP.NET是一个已编译的、基于.NET的环境,可以用任何与.NET兼容的语言(包括VisualBasic.NET、C#和JScript.NET.)创作应用程序。另外,任何ASP.NET应用程序都可以使用整个.NETFramework。开发人员可以方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等。

小妖女 发表于 2015-3-11 06:40:30

是目前ASP在UNIX/Linux上的应用可以说几乎为0)。所以平台的局限性和ASP自身的安全性限制了ASP的广泛应用。

海妖 发表于 2015-3-17 22:50:04

有一丝可惜的是,这个系列太强了,Java阵营的朋友根本就是哑口无言...争论之火瞬间被浇灭,这不是我想这么早就看到的,但是值了。

变相怪杰 发表于 2015-3-25 04:49:22

平台无关性是PHP的最大优点,但是在优点的背后,还是有一些小小的缺点的。如果在PHP中不使用ODBC,而用其自带的数据库函数(这样的效率要比使用ODBC高)来连接数据库的话,使用不同的数据库,PHP的函数名不能统一。这样,使得程序的移植变得有些麻烦。不过,作为目前应用最为广泛的一种后台语言,PHP的优点还是异常明显的。
页: [1]
查看完整版本: ASP.NET网页编程之存储过程当中挪用C#写的DLL