自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

棂誉雅筑

【改变一个人的人生看其每天晚间的8点-10点】

  • 博客(25)
  • 资源 (44)
  • 收藏
  • 关注

原创 SQL去重排序分组

ROW_NUMBER() OVER (PARTITION BY batchno,txndate ORDER BY qty DESC) AS rn

2024-05-21 16:20:58 57

原创 VS2013 社区版,30天试用期到了进不去,并且登陆不上的解决办法

然后打开vs2013 登录/更新认证,就可以登录上去了。

2024-02-19 11:26:46 697

原创 SQL Mail 如何重新发送所有失败的电子邮件,把重新发送了的都删除,因为重新发送一次了会有新ID产生,如果新的还是发送不成功就需要检查具体原因了。

SQL Mail 如何重新发送所有失败的电子邮件, 查找全部发送失败的邮件并重新发送。把重新发送了的都标记为发送'sent',因为重新发送一次了会有新ID产生,如果新的还是发送不成功就需要检查具体原因了。

2023-11-16 09:51:54 160

原创 VB6 MsgBox 函数

在对话框中显示消息,等待用户单击按钮,并返回一个值指示用户单击的按钮。VB6 MsgBox 函数

2023-10-31 15:49:09 418

原创 SQL触发器如何判断当前UPDATE字段

UPDATE 触发器捕捉当前UPDATE字段,并将记录插入到另外一个表

2023-10-23 19:05:32 206

原创 Exec msdb.dbo.sp_send_dbmail 参数及实例详解(SQL存储过程发邮件)

如果此参数的值为 1,则数据库邮件会发送电子邮件,并电子邮件的正文中显示查询错误消息。@query_result_no_padding = 1, --是否复写@query_result_width。@append_query_error = 1, --@query发现错误也发送邮件,错误信息显示在邮件正文。当该值为 1 时,不截断查询中的列。@attach_query_result_as_file = 1, --带上附件。@query_result_separator = ',', --逗号隔开。

2023-09-28 17:02:32 393

原创 SQL DATABASE SEND MAIL EXAMPLE SQL发送邮件实例

EXEC msdb.dbo.sp_send_dbmail datediff(MINUTE,LastUpdateTime, getdate()) > 15

2023-09-12 19:34:26 68

原创 99个Excel VBA经典函数源码大全

99个Excel VBA经典函数源码大全

2023-09-06 10:09:27 1845 1

原创 SQL Database Mail

常规数据库邮件故障排除步骤

2023-08-28 14:07:47 131 1

原创 SQL触发器按年分表存

SQL触发器按年分表存。

2023-07-03 15:23:07 86 1

原创 SQL数据表记录按年分割

-循环创建年备份表。

2023-07-03 15:15:15 216 1

原创 SQL存储过程创建修改及包含字符查找

SQL存储过程创建修改及包含字符查找

2023-06-30 19:16:57 251

原创 重新编译所有存储过程语法 SQL

重新编译所有存储过程语法 SQL

2023-06-30 19:07:48 148

原创 SQL pivot函数横向统计

SQL pivot函数 打横统计

2023-06-23 14:36:56 124 1

原创 SQL全面的数据库修复整理

'sysdiagrams'restore LOG 数据库名from事务日志备份设备名with FILE=3,NORECOVERY --倒数第二个备份日志。A.查看事务日志点:RESTORE HEADERONLY from disk='事务日志的备份的文件完全路径或备份设备名'restore LOG 数据库名from事务日志备份设备名with FILE=4,RECOVERY --最后一个备份日志。如果无法创建数据库日志,i步骤将失败,这时候如果能看到数据库表,和进行Select操作,转第7步。

2023-06-23 14:25:07 621 1

原创 SQL史上最全的日期实例

SQL史上最全的日期实例

2023-06-23 14:14:36 105

原创 【无标题】VB6 文件操作 打开Excel文件

VB6 文件操作 打开Excel文件 在小小的VB6里面挖呀挖呀挖

2023-06-16 14:48:43 473 1

原创 VB6 AfterUpdate validation vb6数值单元格检查

老掉牙的VB6 AfterUpdate validation vb6数值单元格检查

2023-06-14 17:04:54 45

原创 SQL 视图用IIF = 居然不可以,CASE WHEN居然可以

SQL 视图用IIF = 居然不可以,CASE WHEN居然可以

2023-02-21 11:10:09 149 2

原创 Object cannot be cast from DBNull to other types

Object cannot be cast from DBNull to other types

2022-11-22 14:12:11 972

转载 Oracle_Database_11g_标准版_企业版__下载地址_详细列表

Oracle Database 11g Release 2 Standard Edition and Enterprise Edition Software DownloadsOracle 数据库 11g 第 2 版 标准版、企业版 软件下载 Microsoft Windows(32 位) 光盘 1、光盘 2 (2GB) 1 Microsoft Windows (x64) 光盘

2011-11-20 16:59:16 3877 2

转载 使用sql server2005非常慢的解决方案

经过分析和实战总结出方法如下:打开SQL Server2005的SQL Server 配置管理器SQL Server 2005 网络配置->MSSQLSERVER的协议->TCP/IP ,发现TCP/IP竟然是禁用的,协议里只开启了Shared Memory 。将TCP/IP启用。重启了SQL Server服务后打开网站速度就很快了。

2011-11-20 15:23:14 860 1

转载 WF从入门到精通(第一章)

【翻译】WF从入门到精通(第一章):WF简介     学习完本章,你将掌握:    1.了解工作流的概念和理论    2.把WF和BizTalk与WCF做比较    3.开始使用WF进行编程    4.知道怎样使用Visual Studio工作流支持     以下是一小段进行邮政编码验证的代码string USCode = @"^(/d{5}$)|(/d{5}$/-/d{4}$

2010-01-18 11:59:00 399 1

原创 TOP GP Genero架构

TOP GP Genero架构   易拓ERP的开发工具-Genero ,是一个以「Write Once, Deploy Anywhere」为核心概念的开发工具。   Genero的核心架构如右图所示:      一、在后端执行的操作系统平台上,无论选择UNIX、Linux、 Windows或Mac OS等,都可以在这些平台上部署及执行开发出来的应用程序。   二、在数据库存取的部分,透过ODI(

2010-01-18 11:37:00 1883

原创 安装SQLServer2000

2009-06-10 17:10:00 317 1

SQL Mail 如何重新发送所有失败的电子邮件

SQL Mail 如何重新发送所有失败的电子邮件,把重新发送了的都标记为发送'sent',因为重新发送一次了会有新ID产生,如果新的还是发送不成功就需要检查具体原因了

2023-11-16

tables in Oracle EBS

List of standard tables in Oracle all Customer Order table; Purchase order tables; Requisitions table; PO interface tables; Blanket Table; Quotes Tables; Delivery Tables; Item Tables; Organization Tables; Price list Tables; HR Tables; Salesrep Table; Supplier Table; TCA Tables; FND Tables; OTM Tables;

2022-08-05

syncbackprov8_111307.rar

是一个专业的、先进的备份、恢复和同步工具,具有许多先进的特性。使用此备份工具,无论是锁定还是打开,都可以复制任何文件,这些文件通常无法在这些条件下复制。但是这个特性只在WindowsXP或更高版本的窗口上工作。用软件进行备份是一个非常快的过程,它可以处理无限数量的文件。它总是保持旧版本的文件,因为它支持版本控制和增量备份,以节省时间和减轻资源负担。

2019-12-30

FastStone Capture 屏幕录像软件

FastStone Capture 轻量级的屏幕录像软件 免费版 绿色版 单文件版,麻雀虽小五脏俱全!亲测!

2017-03-22

Remote Desktop Manager keygen

Remote Desktop Manager keygen

2013-10-11

FileMaker.Pro.Advanced.v12.0.1.183.Keymaker

FileMaker.Pro.Advanced.v12.0.1.183.Keymaker 测试使用,测试完后请于24小时内删除!

2013-07-30

vnc-4_1_3-x86_win32

vnc-4_1_3-x86_win32

2013-05-15

隐藏VNC托盘图标.reg

隐藏VNC托盘图标.reg

2013-05-15

WayOS_H-2.01.583无限制

WayOS_H-2.01.583 无限制

2012-12-20

sqlserver存储过程生成器

sqlserver 存储过程 生成器 确实不错的好工具!

2012-11-15

ORACLE EBS 系统主数据管理

物料Item数据管理以其应用的基础性与影响的广泛性,是EBS系统最重要也是最复杂的基础业务数据。企业尤其是大型企业,物料主数据的管理甚至可以上升到决定企业未来发展乃至生死存亡的高度。为此,ORACLE系统提供了完善的“端到端”的全流程解决方案。

2012-11-05

foxtools 3.0

反编译能力:主要是解决了一些unfoall和Refox反编译错误及不能反的I+变形加密,最大特点是对表单的反编译能力强,支持到vfp5.0.vfp6.0.vfp7.0.vfp8.0.vfp9.0.

2012-10-04

FoxShell 2012免费版(亲测)

FoxShell 2012 免费版更新说明 2011.08.02 Beta2(Build 0802) FoxShell2012_Beta2.Exe 文件大小:1.86 MB (1,953,792 字节) CRC32:79EB97B3 MD5:FE77C4C48786E6BD9940F3E0EE5BD185 SHA1:B5C07293F7E0FEBBCA1A00B819E1CE94BB07037C 修正的BUG: 1、修正VB通过API调用保存对话框与LZMA压缩冲突的BUG,出现压缩数据失败(已换一种模式重写LZMA的SDK,有效解决了这个问题); 2、修正WIN7下加密成功但不能生成文件的BUG; 3、修正用项目文件打开文件加密丢失图标的BUG; 4、修正打开项目后,读写文件深度不一致的BUG; 5、修正开启新变量解释后,对某些语句和命令出现“非字符表达式”的BUG; 6、修正和增加新P-CODE解释开关命令:经测试不能被新P-CODE解释方式接受的代码,可以自己在代码中加入: = "" && 开始忽略(关闭)新代码解释方式,不分大小写 = "" && 结束忽略(启用)新代码解释方式,不分大小写 例如: FUNCTION WriteIniFile LPARAMETERS lcfilename, lcsection, lcsection_key, lcwrite_string = "" DECLARE INTEGER WritePrivateProfileString IN Win32API AS WriteINI STRING, STRING, STRING, STRING && 假设这一句使用新代码解释后出错,则在前后加跳过这句的开关 = "" IF TYPE("m.lcFileName")="C" .AND. TYPE("m.lcSection")="C" .AND. TYPE("m.lcSection_key")="C" .AND. TYPE("m.lcWrite_String")="C" IF EMPTY(m.lcfilename) .OR. EMPTY(m.lcsection) .OR. EMPTY(m.lcsection_key) RETURN "" ELSE IF .NOT. EMPTY(JUSTPATH(m.lcfilename)) .AND. .NOT. DIRECTORY(JUSTPATH(m.lcfilename)) MD (JUSTPATH(m.lcfilename)) ENDIF ENDIF = WriteINI(m.lcsection, m.lcsection_key, m.lcwrite_string, m.lcfilename) ENDIF CLEAR DLLS "WritePrivateProfileString" ENDFUNC ★★★ 由于本软件使用了编译技术,在加密过程中,为加密成功,请暂时关闭您的杀毒软件。 --------------------------------------------------------------------- 2011.07.30 - Beta1 正式发布Beta1!

2012-09-28

FoxShell2012免费版

阿明的FoxShell 2012免费版下载(Beta2 20110802) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ FoxShell 2012 免费版更新说明 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2011.08.02 Beta2(Build 0802) FoxShell2012_Beta2.Exe 文件大小:1.86 MB (1,953,792 字节) CRC32:79EB97B3 MD5:FE77C4C48786E6BD9940F3E0EE5BD185 SHA1:B5C07293F7E0FEBBCA1A00B819E1CE94BB07037C 修正的BUG: 1、修正VB通过API调用保存对话框与LZMA压缩冲突的BUG,出现压缩数据失败(已换一种模式重写LZMA的SDK,有效解决了这个问题); 2、修正WIN7下加密成功但不能生成文件的BUG; 3、修正用项目文件打开文件加密丢失图标的BUG; 4、修正打开项目后,读写文件深度不一致的BUG; 5、修正开启新变量解释后,对某些语句和命令出现“非字符表达式”的BUG; 6、修正和增加新P-CODE解释开关命令:经测试不能被新P-CODE解释方式接受的代码,可以自己在代码中加入: = "<Skip FoxShell Start>" && 开始忽略(关闭)新代码解释方式,不分大小写 = "<Skip FoxShell End>" && 结束忽略(启用)新代码解释方式,不分大小写 例如: FUNCTION WriteIniFile LPARAMETERS lcfilename, lcsection, lcsection_key, lcwrite_string = "<Skip FoxShell Start>" DECLARE INTEGER WritePrivateProfileString IN Win32API AS WriteINI STRING, STRING, STRING, STRING && 假设这一句使用新代码解释后出错,则在前后加跳过这句的开关 = "<Skip FoxShell End>" IF TYPE("m.lcFileName")="C" .AND. TYPE("m.lcSection")="C" .AND. TYPE("m.lcSection_key")="C" .AND. TYPE("m.lcWrite_String")="C" IF EMPTY(m.lcfilename) .OR. EMPTY(m.lcsection) .OR. EMPTY(m.lcsection_key) RETURN "" ELSE IF .NOT. EMPTY(JUSTPATH(m.lcfilename)) .AND. .NOT. DIRECTORY(JUSTPATH(m.lcfilename)) MD (JUSTPATH(m.lcfilename)) ENDIF ENDIF = WriteINI(m.lcsection, m.lcsection_key, m.lcwrite_string, m.lcfilename) ENDIF CLEAR DLLS "WritePrivateProfileString" ENDFUNC 感谢我的用户老康提供上面的例子。 注意:如果您的文件包含64K以上的类库,请将FoxShell读取文件规则的深度调整为1,以避免出错。 ★★★ 由于本软件使用了编译技术,在加密过程中,为加密成功,请暂时关闭您的杀毒软件。

2012-09-27

玩转Treeview(及示例)

玩转Treeview(及示例)含源代码 Visual Foxpro 9.0

2012-09-02

VFP7.0简体中文精简版

VFP7.0简体中文精简版 Visual FoxPro 7.0 provides the tools you need to create and manage high-performance, 32-bit database applications and components.

2012-08-18

sqlserver2000SQLServer2005存储过程解密

SQLServer2005里使用with encryption选项创建的存储过程仍然和sqlserver2000里一样,都是使用XOR进行了的加密。和2000不一样的是,在2005的系统表syscomments里已经查不到加密过的密文了。要查密文必须使用DAC(专用管理员连接)连接到数据库后,在系统表sys.sysobjvalues查询,该表的列imageval存储了相应的密文。具体可以使用下面的查询: SELECT imageval FROM sys.sysobjvalues WHERE objid = object_id(@procedure) AND valclass = 1 AND subobjid = 1 案例2:有接手别人工作,而对于业务存储过程中使用加密了内容的,维护难受啊,GOOGLE搜索,终于不负有心人.Sql2000的。 CREATE PROCEDURE usp_decrypt(@objectname varchar(50)) AS begin set nocount on --CSDN:j9988 copyright:2004.07.15 --V3.2 --破解字节不受限制,适用于SQLSERVER2000存储过程,函数,视图,触发器 --修正上一版"视图触发器"不能正确解密错误 --发现有错,请E_MAIL:[email protected] begin tran declare @objectname1 varchar(100),@orgvarbin varbinary(8000) declare @sql1 nvarchar(4000),@sql2 varchar(8000),@sql3 nvarchar(4000),@sql4 nvarchar(4000) DECLARE @OrigSpText1 nvarchar(4000), @OrigSpText2 nvarchar(4000) , @OrigSpText3 nvarchar(4000), @resultsp nvarchar(4000) declare @i int,@status int,@type varchar(10),@parentid int declare @colid int,@n int,@q int,@j int,@k int,@encrypted int,@number int select @type=xtype,@parentid=parent_obj from sysobjects where id=object_id(@objectname) create table #temp(number int,colid int,ctext varbinary(8000),encrypted int,status int) insert #temp SELECT number,colid,ctext,encrypted,status FROM syscomments WHERE id = object_id(@objectname) select @number=max(number) from #temp set @k=0 while @k<=@number begin if exists(select 1 from syscomments where id=object_id(@objectname) and number=@k) begin if @type='P' set @sql1=(case when @number>1 then 'ALTER PROCEDURE '+ @objectname +';'+rtrim(@k)+' WITH ENCRYPTION AS ' else 'ALTER PROCEDURE '+ @objectname+' WITH ENCRYPTION AS ' end) if @type='TR' begin declare @parent_obj varchar(255),@tr_parent_xtype varchar(10) select @parent_obj=parent_obj from sysobjects where id=object_id(@objectname) select @tr_parent_xtype=xtype from sysobjects where id=@parent_obj if @tr_parent_xtype='V' begin set @sql1='ALTER TRIGGER '+@objectname+' ON '+OBJECT_NAME(@parentid)+' WITH ENCRYPTION INSTERD OF INSERT AS PRINT 1 ' end else begin set @sql1='ALTER TRIGGER '+@objectname+' ON '+OBJECT_NAME(@parentid)+' WITH ENCRYPTION FOR INSERT AS PRINT 1 ' end end if @type='FN' or @type='TF' or @type='IF' set @sql1=(case @type when 'TF' then 'ALTER FUNCTION '+ @objectname+'(@a char(1)) returns @b table(a varchar(10)) with encryption as begin insert @b select @a return end ' when 'FN' then 'ALTER FUNCTION '+ @objectname+'(@a char(1)) returns char(1) with encryption as begin return @a end' when 'IF' then 'ALTER FUNCTION '+ @objectname+'(@a char(1)) returns table with encryption as return select @a as a' end) if @type='V' set @sql1='ALTER VIEW '+@objectname+' WITH ENCRYPTION AS SELECT 1 as f' set @q=len(@sql1) set @sql1=@sql1+REPLICATE('-',4000-@q) select @sql2=REPLICATE('-',8000) set @sql3='exec&#40;@sql1' select @colid=max(colid&#41; from #temp where number=@k set @n=1 while @n<=CEILING(1.0*(@colid-1)/2) and len(@sql3)<=3996 begin set @sql3=@sql3+'+@' set @n=@n+1 end set @sql3=@sql3+')' exec sp_executesql @sql3,N'@sql1 nvarchar(4000),@ varchar(8000)',@sql1=@sql1,@=@sql2 end set @k=@k+1 end set @k=0 while @k<=@number begin if exists(select 1 from syscomments where id=object_id(@objectname) and number=@k) begin select @colid=max(colid) from #temp where number=@k set @n=1 while @n<=@colid begin select @OrigSpText1=ctext,@encrypted=encrypted,@status=status FROM #temp WHERE colid=@n and number=@k SET @OrigSpText3=(SELECT ctext FROM syscomments WHERE id=object_id(@objectname) and colid=@n and number=@k) if @n=1 begin if @type='P' SET @OrigSpText2=(case when @number>1 then 'CREATE PROCEDURE '+ @objectname +';'+rtrim(@k)+' WITH ENCRYPTION AS ' else 'CREATE PROCEDURE '+ @objectname +' WITH ENCRYPTION AS ' end) if @type='FN' or @type='TF' or @type='IF' SET @OrigSpText2=(case @type when 'TF' then 'CREATE FUNCTION '+ @objectname+'(@a char(1)) returns @b table(a varchar(10)) with encryption as begin insert @b select @a return end ' when 'FN' then 'CREATE FUNCTION '+ @objectname+'(@a char(1)) returns char(1) with encryption as begin return @a end' when 'IF' then 'CREATE FUNCTION '+ @objectname+'(@a char(1)) returns table with encryption as return select @a as a' end) if @type='TR' begin if @tr_parent_xtype='V' begin set @OrigSpText2='CREATE TRIGGER '+@objectname+' ON '+OBJECT_NAME(@parentid)+' WITH ENCRYPTION INSTEAD OF INSERT AS PRINT 1 ' end else begin set @OrigSpText2='CREATE TRIGGER '+@objectname+' ON '+OBJECT_NAME(@parentid)+' WITH ENCRYPTION FOR INSERT AS PRINT 1 ' end end if @type='V' set @OrigSpText2='CREATE VIEW '+@objectname+' WITH ENCRYPTION AS SELECT 1 as f' set @q=4000-len(@OrigSpText2) set @OrigSpText2=@OrigSpText2+REPLICATE('-',@q) end else begin SET @OrigSpText2=REPLICATE('-', 4000) end SET @i=1 SET @resultsp = replicate(N'A', (datalength(@OrigSpText1) / 2)) WHILE @i<=datalength(@OrigSpText1)/2 BEGIN SET @resultsp = stuff(@resultsp, @i, 1, NCHAR(UNICODE(substring(@OrigSpText1, @i, 1)) ^ (UNICODE(substring(@OrigSpText2, @i, 1)) ^ UNICODE(substring(@OrigSpText3, @i, 1))))) SET @i=@i+1 END set @orgvarbin=cast(@OrigSpText1 as varbinary(8000)) set @resultsp=(case when @encrypted=1 then @resultsp else convert(nvarchar(4000),case when @status&2=2 then uncompress(@orgvarbin) else @orgvarbin end) end) print @resultsp set @n=@n+1 end end set @k=@k+1 end drop table #temp rollback tran end 再有一个Sql 2005 版的 SQLServer2005里使用with encryption选项创建的存储过程仍然和sqlserver2000里一样,都是使用XOR进行了的加密。和2000不一样的是,在2005的系统表syscomments里已经查不到加密过的密文了。要查密文必须使用DAC(专用管理员连接)连接到数据库后,在系统表sys.sysobjvalues查询,该表的列imageval存储了相应的密文。具体可以使用下面的查询: SELECT imageval FROM sys.sysobjvalues WHERE objid = object_id(@procedure) AND valclass = 1 AND subobjid = 1 DAC连接,在数据库引擎查询时,服务器名称前添加admin: 例:服务器名pc001则应使用 admin:pc001 create PROCEDURE [dbo].[usp_decrypt] (@procedure sysname = NULL, @revfl int = 1) AS /**//* 王成辉翻译整理,转贴请注明出自微软BI开拓者www.windbi.com 目前这个存储过程只能解密存储过程,至于解密函数、触发器、视图的存储过程本网站会进一步关注,调用形式为: exec dbo.usp_decrypt procedure,0 如果第二个参数使用1的话,会给出该存储过程的一些提示。 --版本3.0 修正存储过程过长引起的问题 */ SET NOCOUNT ON IF @revfl = 1 BEGIN PRINT '警告:该存储过程会删除并重建原始的存储过程。' PRINT ' 在运行该存储过程之前确保你的数据库有一个备份。' PRINT ' 该存储过程通常应该运行在产品环境的一个备份的非产品环境下。' PRINT ' 为了运行这个存储过程,将参数@refl的值更改为0。' RETURN 0 END DECLARE @intProcSpace bigint, @t bigint, @maxColID smallint,@procNameLength int select @maxColID = max(subobjid) FROM sys.sysobjvalues WHERE objid = object_id(@procedure) --select @maxColID as 'Rows in sys.sysobjvalues' select @procNameLength = datalength(@procedure) + 29 DECLARE @real_01 nvarchar(max) DECLARE @fake_01 nvarchar(max) DECLARE @fake_encrypt_01 nvarchar(max) DECLARE @real_decrypt_01 nvarchar(max),@real_decrypt_01a nvarchar(max) declare @objtype varchar(2),@ParentName nvarchar(max) select @real_decrypt_01a = '' --提取对象的类型如是存储过程还是函数,如果是触发器,还要得到其父对象的名称 select @objtype=type,@parentname=object_name(parent_object_id) from sys.objects where [object_id]=object_id(@procedure) -- 从sys.sysobjvalues里提出加密的imageval记录 SET @real_01=(SELECT top 1 imageval FROM sys.sysobjvalues WHERE objid = object_id(@procedure) and valclass = 1 order by subobjid) --创建一个临时表 create table #output ( [ident] [int] IDENTITY (1, 1) NOT NULL , [real_decrypt] NVARCHAR(MAX) ) --开始一个事务,稍后回滚 BEGIN TRAN --更改原始的存储过程,用短横线替换 if @objtype='P' SET @fake_01='ALTER PROCEDURE '+ @procedure +' WITH ENCRYPTION AS '+REPLICATE(cast('-'as nvarchar(max)), datalength(@real_01) /2 - @procNameLength) else if @objtype='FN' SET @fake_01='ALTER FUNCTION '+ @procedure +'() RETURNS INT WITH ENCRYPTION AS BEGIN RETURN 1 /*'+REPLICATE(cast('*'as nvarchar(max)), datalength(@real_01) /2 - @procNameLength)+'*/ END' else if @objtype='V' SET @fake_01='ALTER view '+ @procedure +' WITH ENCRYPTION AS select 1 as col /*'+REPLICATE(cast('*'as nvarchar(max)), datalength(@real_01) /2 - @procNameLength)+'*/' else if @objtype='TR' SET @fake_01='ALTER trigger '+ @procedure +' ON '+@parentname+'WITH ENCRYPTION AFTER INSERT AS RAISERROR (''N'',16,10) /*'+REPLICATE(cast('*'as nvarchar(max)), datalength(@real_01) /2 - @procNameLength)+'*/' EXECUTE (@fake_01) --从sys.sysobjvalues里提出加密的假的 SET @fake_encrypt_01=(SELECT top 1 imageval FROM sys.sysobjvalues WHERE objid = object_id(@procedure) and valclass = 1 order by subobjid ) if @objtype='P' SET @fake_01='Create PROCEDURE '+ @procedure +' WITH ENCRYPTION AS '+REPLICATE(cast('-'as nvarchar(max)), datalength(@real_01) /2 - @procNameLength) else if @objtype='FN' SET @fake_01='CREATE FUNCTION '+ @procedure +'() RETURNS INT WITH ENCRYPTION AS BEGIN RETURN 1 /*'+REPLICATE(cast('*'as nvarchar(max)), datalength(@real_01) /2 - @procNameLength)+'*/ END' else if @objtype='V' SET @fake_01='Create view '+ @procedure +' WITH ENCRYPTION AS select 1 as col /*'+REPLICATE(cast('*'as nvarchar(max)), datalength(@real_01) /2 - @procNameLength)+'*/' else if @objtype='TR' SET @fake_01='Create trigger '+ @procedure +' ON '+@parentname+'WITH ENCRYPTION AFTER INSERT AS RAISERROR (''N'',16,10) /*'+REPLICATE(cast('*'as nvarchar(max)), datalength(@real_01) /2 - @procNameLength)+'*/' --开始计数 SET @intProcSpace=1 --使用字符填充临时变量 SET @real_decrypt_01 = replicate(cast('A'as nvarchar(max)), (datalength(@real_01) /2 )) --循环设置每一个变量,创建真正的变量 --每次一个字节 SET @intProcSpace=1 --如有必要,遍历每个@real_xx变量并解密 WHILE @intProcSpace<=(datalength(@real_01)/2) BEGIN --真的和假的和加密的假的进行异或处理 SET @real_decrypt_01 = stuff(@real_decrypt_01, @intProcSpace, 1, NCHAR(UNICODE(substring(@real_01, @intProcSpace, 1)) ^ (UNICODE(substring(@fake_01, @intProcSpace, 1)) ^ UNICODE(substring(@fake_encrypt_01, @intProcSpace, 1))))) SET @intProcSpace=@intProcSpace+1 END --通过sp_helptext逻辑向表#output里插入变量 insert #output (real_decrypt) select @real_decrypt_01 -- select real_decrypt AS '#output chek' from #output --测试 -- ------------------------------------- --开始从sp_helptext提取 -- ------------------------------------- declare @dbname sysname ,@BlankSpaceAdded int ,@BasePos int ,@CurrentPos int ,@TextLength int ,@LineId int ,@AddOnLen int ,@LFCR int --回车换行的长度 ,@DefinedLength int ,@SyscomText nvarchar(max) ,@Line nvarchar(255) Select @DefinedLength = 255 SELECT @BlankSpaceAdded = 0 --跟踪行结束的空格。注意Len函数忽略了多余的空格 CREATE TABLE #CommentText (LineId int ,Text nvarchar(255) collate database_default) --使用#output代替sys.sysobjvalues DECLARE ms_crs_syscom CURSOR LOCAL FOR SELECT real_decrypt from #output ORDER BY ident FOR READ ONLY --获取文本 SELECT @LFCR = 2 SELECT @LineId = 1 OPEN ms_crs_syscom FETCH NEXT FROM ms_crs_syscom into @SyscomText WHILE @@fetch_status >= 0 BEGIN SELECT @BasePos = 1 SELECT @CurrentPos = 1 SELECT @TextLength = LEN(@SyscomText) WHILE @CurrentPos != 0 BEGIN --通过回车查找行的结束 SELECT @CurrentPos = CHARINDEX(char(13)+char(10), @SyscomText, @BasePos) --如果找到回车 IF @CurrentPos != 0 BEGIN --如果@Lines的长度的新值比设置的大就插入@Lines目前的内容并继续 While (isnull(LEN(@Line),0) + @BlankSpaceAdded + @CurrentPos-@BasePos + @LFCR) > @DefinedLength BEGIN SELECT @AddOnLen = @DefinedLength-(isnull(LEN(@Line),0) + @BlankSpaceAdded) INSERT #CommentText VALUES ( @LineId, isnull(@Line, N'') + isnull(SUBSTRING(@SyscomText, @BasePos, @AddOnLen), N'')) SELECT @Line = NULL, @LineId = @LineId + 1, @BasePos = @BasePos + @AddOnLen, @BlankSpaceAdded = 0 END SELECT @Line = isnull(@Line, N'') + isnull(SUBSTRING(@SyscomText, @BasePos, @CurrentPos-@BasePos + @LFCR), N'') SELECT @BasePos = @CurrentPos+2 INSERT #CommentText VALUES( @LineId, @Line ) SELECT @LineId = @LineId + 1 SELECT @Line = NULL END ELSE --如果回车没找到 BEGIN IF @BasePos <= @TextLength BEGIN --如果@Lines长度的新值大于定义的长度 While (isnull(LEN(@Line),0) + @BlankSpaceAdded + @TextLength-@BasePos+1 ) > @DefinedLength BEGIN SELECT @AddOnLen = @DefinedLength - (isnull(LEN(@Line),0) + @BlankSpaceAdded) INSERT #CommentText VALUES ( @LineId, isnull(@Line, N'') + isnull(SUBSTRING(@SyscomText, @BasePos, @AddOnLen), N'')) SELECT @Line = NULL, @LineId = @LineId + 1, @BasePos = @BasePos + @AddOnLen, @BlankSpaceAdded = 0 END SELECT @Line = isnull(@Line, N'') + isnull(SUBSTRING(@SyscomText, @BasePos, @TextLength-@BasePos+1 ), N'') if LEN(@Line) < @DefinedLength and charindex(' ', @SyscomText, @TextLength+1 ) > 0 BEGIN SELECT @Line = @Line + ' ', @BlankSpaceAdded = 1 END END END END FETCH NEXT FROM ms_crs_syscom into @SyscomText END IF @Line is NOT NULL INSERT #CommentText VALUES( @LineId, @Line ) select Text from #CommentText order by LineId CLOSE ms_crs_syscom DEALLOCATE ms_crs_syscom DROP TABLE #CommentText -- ------------------------------------- --结束从sp_helptext提取 -- ------------------------------------- --删除用短横线创建的存储过程并重建原始的存储过程 ROLLBACK TRAN DROP TABLE #output 已经打包好的文件下载在这里 http://files.cnblogs.com/zhou__zhou/T-SQL破解加密的存储过程.rar 引用网摘: http://www.windbi.com/showtopic-153.aspx http://www.easte.cn/post/SQL_Server_SP_Decrypt_ALL.html 解密SQL2005存储过程要使用DAC模式连接到SQL2005数据库处理 转载自: http://hi.baidu.com/lzj1981/blog/item/ed436a62f5eb25d7e6113a0f.html http://www.taotechinfo.com/collect/2010322/n13188930.html 如果你在网上找到破解SQL2005加密的存储过程,运行时提示不成功,那么你可要使用DAC模式连接到SQL2005数据库来处理,方法如下: 1、打开 SQL Server Management Studio 2、登录框 按“取消” 3、工具栏上的第一个图标:数据库引擎查询 4、服务器名称前加“ADMIN:”,如:ADMIN:hostname\sql2005 5、选择“Windows 身份验证”,或输入sa和密码,登录。 已打开 SQL Server Management Studio 并连接,忽略1、2步。 如果出现:provider: SQL 网络接口, error: 43 - 在获取专用的管理员连接(DAC)端口时出错。 确保正在运行 SQL 浏览器,或检查错误日志中是否有该端口号的错误 原因可能是: The firewall on the server has refused the connection. A specified SQL Server instance name is not valid. The SQL Server Browser service (sqlbrowser) is not started.(打开Sql Server里的 SQL Server Brower 数据库浏览服务) 需要执行: sp_configure 'remote admin connections', 1 GO RECONFIGURE 这样一般都可以连接成功的 SQL Server2005中如何知道某个存储过程是否已加密? 转载自:http://www.cnblogs.com/gis_gps/archive/2009/01/16/1377133.html 最近在写一个小软件,需要知道当前那些存储过程已经被加密,如果被加密,则调用解密过程,将其解密,还原明文保存。基于sql server2005解密已加密的存储过程,网上有成熟的代码可供参考,但如何通过sql 语句的方式知道当前数据库中的存储过程是否已加密呢?? 最初我就认为加密与不加密的存储过程肯定是一个标记位,存放在某个系统表中,但这个系统表在那里?我却不知道,曾通过google或msdn去查找,但没有找到相关资料,甚至准备写邮件咨询邹建等大侠.... 突然想到,原来经常利用sp_helptext查看某个未加密过程的明文,那如果用sp_helptext查看已加密的过程,会有什么反映呢。结果很明确,系统提示:对象***文件已加密! 呵呵,既然sp_helptext知道这个过程已经加密,那我查看一下sp_helptext源码不就可以知道,它是如何判断出该过程是否已加密的吗?  于是,输入:exec sp_helptext sp_helptext ,屏幕上果然输出sp_helptext的明文,从sp_helptext中我们很容易找到这行code: select text from syscomments where id = @objid and encrypted = 0............ 这段代码意思很明确,查询输出未加密的过程,那么我所需要的就是:   select * from syscomments where encrypted = 1   好了,说到这里,我想各位已经很清楚知道如何解决本文开头所提出的问题!祝各位好运! =================================================================== 示例 加密: create procedure p_test with encryption as select * from test 解密: use [test] exec sp_decrypt 'p_test'

2012-06-15

VFP9集成SP2精简版

VFP9 集成SP2精简版 数据库处理专用软件 简体中文绿色免费版

2011-12-27

RAR文件修复工具

不只是简单的RAR文件修复工具,带有破解密码功能

2011-12-27

C# 语法大全 4.0

C#语法大全4.0 C#(读作“See Sharp”)是一种简洁、现代、面向对象且类型安全的编程语言。C# 起源于 C 语言家族,因此,对于 C、C++ 和 Java 程序员,可以很快熟悉这种新的语言。C# 已经分别由 ECMA International 和 ISO/IEC 组织接受并确立了标准,它们分别是 ECMA-334 标准和 ISO/IEC 23270 标准。Microsoft 用于 .NET Framework 的 C# 编译器就是根据这两个标准实现的。

2011-08-23

海外IE灵,IE修复专家,修复二级链接就是牛

海外IE灵,IE修复专家,修复二级链接就是牛,比那些所谓的修复软件强多了!

2010-12-26

win98启动盘镜像文件

win98启动盘镜像文件,用来做光盘启动盘的。

2010-03-10

ghost11硬盘工具

ghost11 硬盘工具,难得的好工具,放这里先,费时要用到时满大街去找。

2010-03-10

DOS6.22系统安装盘

DOS6.22 系统安装盘 古董级的软件了

2010-03-10

虚拟机网卡21140NETWARE3.12驱动

虚拟机网卡 21140 NETWARE3.12 网卡驱动

2010-03-10

DOS6.22VHD硬盘 VPC2007

花费了不少时间找驱动整出来的一个DOS6.22VHD虚拟硬盘,用来连接NETWARE 3.12服务器的。网卡驱动都找了好久才找到!!

2010-03-10

Visual PC 2007 绿化完整版

它能够让你在一台PC 上同时运行多个操作系统,使用它你不用重新启动系统,只要点击鼠标便可以打开新的操作系统或是在操作系统之间进行切换。

2010-03-10

无主板启动电源-ATX电源接口各线的定义

左下角:1#,左上角:11#;右上角:20# AT电源只要能把电源打开就行了,可现在的ATX电源都是电位控制开关而非机械开关,这就需要从电源的那一排查线孔中找出可以激活电源的那个针(Pin)。 ATX电源排针(Pin)的标准定义为 无主板启动电源——ATX电源接口各线的定义(20针和24针的都有) AT电源只要能把电源打开就行了,可现在的ATX电源都是电位控制开关而非机械开关,这就需要从电源的那一排查线孔中找出可以激活电源的那个针(Pin)。 ATX电源排针(Pin)的标准定义为: 14号针(Pin 14 PS-ON)就是控制电源开启关闭的。单个针没有回路怎么控制开关,其实所有的地线(GND)都可以与其他任意针组成回路,所谓“低电位”开启,“高电位”关闭,就是当Pin 14针与 GND 针短接后,Pin 14针本身的电位就低了,电源也就开启了,反之亦然。现在很清楚了——要想无主板开启ATX电源,只需要将Pin 14针(绿色线,图中也标绿了)与任意一个GND针(黑色线,图中标灰了)短接就可以。 红Red=+5V 橙Orange=+3.3V 黄Yellow=+12V 兰Blue=-12V 绿Green=PS_ON 紫Purple=+5VSB 灰Gray=PWR_OK 白White=—5V 黑Black=COM=GND=接地 24pin

2010-02-24

BT3+破解wep+傻瓜版教程实战讲解

BT3+破解wep+傻瓜版教程实战讲解 标题和内容相符,不像某些人的标题忽悠人。

2010-01-30

磁盘低级格式化工具集合

磁盘低级格式化工具集合,放到CSDN当网盘收藏。

2010-01-18

NDD 32位磁盘扫描工具赛门铁克

磁盘扫描工具赛门铁克的NDD32,WINDOWS下磁盘扫描的好工具。有时用到的时候再网络上找好久才找到。今天放上来当网盘收藏。

2010-01-18

c#.net常用函数列表.doc

超难得的超简单的资料 1、DateTime 数字型 System.DateTime currentTime=new System.DateTime(); 1.1 取当前年月日时分秒 currentTime=System.DateTime.Now; 1.2 取当前年 int 年=currentTime.Year; 1.3 取当前月 int 月=currentTime.Month; 1.4 取当前日 int 日=currentTime.Day; 1.5 取当前时 int 时=currentTime.Hour; 1.6 取当前分 int 分=currentTime.Minute; 1.7 取当前秒 int 秒=currentTime.Second; 1.8 取当前毫秒 int 毫秒=currentTime.Millisecond;

2009-03-20

Visual C#+SQL Server数据库开发与实例光盘第十一章节(完)

Visual C#+SQL Server数据库开发与实例光盘第十一章节 本书第1,2章分别介绍了使用Visual C#和SQL Server开发数据库应用程序的基本知识,第3章~第10章,通过开发8个完整实用的数据库应用程序,系统全面地介绍了用Visual C#和SQL Server来进行数据库应用程序开发的各种技术,最后一章总结性地介绍了数据库应用程序的性能优化和安全提高。本书适用于使用Visual C#开发Windows应用程序和Web应用程序的技术人员及编程爱好者,同时也是数据库开发人员的优秀参考书。   .NET平台是Microsoft公司推出的一套开发框架和工具,是软件开发领域非常重要的里程碑。而C#语言是一种功能强大、语法简单、面向对象和类型安全的编程语言,使用Visual C#开发数据库应用程序简单、快捷。SQL Server是一个用于各种信息管理系统、Web应用程序开发的最常用的后台数据库。   本书第1,2章分别介绍了使用Visual C#和SQL Server开发数据库应用程序的基本知识,第3章~第10章,通过开发8个完整实用的数据库应用程序,系统全面地介绍了用Visual C#和SQL Server来进行数据库应用程序开发的各种技术,最后一章总结性地介绍了数据库应用程序的性能优化和安全提高。   本书适用于使用Visual C#开发Windows应用程序和Web应用程序的技术人员及编程爱好者,同时也是数据库开发人员的优秀参考书。

2009-03-12

Visual C#+SQL Server数据库开发与实例光盘第十章节

Visual C#+SQL Server数据库开发与实例光盘第十章节 本书第1,2章分别介绍了使用Visual C#和SQL Server开发数据库应用程序的基本知识,第3章~第10章,通过开发8个完整实用的数据库应用程序,系统全面地介绍了用Visual C#和SQL Server来进行数据库应用程序开发的各种技术,最后一章总结性地介绍了数据库应用程序的性能优化和安全提高。本书适用于使用Visual C#开发Windows应用程序和Web应用程序的技术人员及编程爱好者,同时也是数据库开发人员的优秀参考书。   .NET平台是Microsoft公司推出的一套开发框架和工具,是软件开发领域非常重要的里程碑。而C#语言是一种功能强大、语法简单、面向对象和类型安全的编程语言,使用Visual C#开发数据库应用程序简单、快捷。SQL Server是一个用于各种信息管理系统、Web应用程序开发的最常用的后台数据库。   本书第1,2章分别介绍了使用Visual C#和SQL Server开发数据库应用程序的基本知识,第3章~第10章,通过开发8个完整实用的数据库应用程序,系统全面地介绍了用Visual C#和SQL Server来进行数据库应用程序开发的各种技术,最后一章总结性地介绍了数据库应用程序的性能优化和安全提高。   本书适用于使用Visual C#开发Windows应用程序和Web应用程序的技术人员及编程爱好者,同时也是数据库开发人员的优秀参考书。

2009-03-12

Visual C#+SQL Server数据库开发与实例光盘第九章节

本书第1,2章分别介绍了使用Visual C#和SQL Server开发数据库应用程序的基本知识,第3章~第10章,通过开发8个完整实用的数据库应用程序,系统全面地介绍了用Visual C#和SQL Server来进行数据库应用程序开发的各种技术,最后一章总结性地介绍了数据库应用程序的性能优化和安全提高。本书适用于使用Visual C#开发Windows应用程序和Web应用程序的技术人员及编程爱好者,同时也是数据库开发人员的优秀参考书。   .NET平台是Microsoft公司推出的一套开发框架和工具,是软件开发领域非常重要的里程碑。而C#语言是一种功能强大、语法简单、面向对象和类型安全的编程语言,使用Visual C#开发数据库应用程序简单、快捷。SQL Server是一个用于各种信息管理系统、Web应用程序开发的最常用的后台数据库。   本书第1,2章分别介绍了使用Visual C#和SQL Server开发数据库应用程序的基本知识,第3章~第10章,通过开发8个完整实用的数据库应用程序,系统全面地介绍了用Visual C#和SQL Server来进行数据库应用程序开发的各种技术,最后一章总结性地介绍了数据库应用程序的性能优化和安全提高。   本书适用于使用Visual C#开发Windows应用程序和Web应用程序的技术人员及编程爱好者,同时也是数据库开发人员的优秀参考书。 Visual C#+SQL Server数据库开发与实例光盘第九章节

2009-03-12

Visual C#+SQL Server数据库开发与实例光盘第七章节

本书第1,2章分别介绍了使用Visual C#和SQL Server开发数据库应用程序的基本知识,第3章~第10章,通过开发8个完整实用的数据库应用程序,系统全面地介绍了用Visual C#和SQL Server来进行数据库应用程序开发的各种技术,最后一章总结性地介绍了数据库应用程序的性能优化和安全提高。本书适用于使用Visual C#开发Windows应用程序和Web应用程序的技术人员及编程爱好者,同时也是数据库开发人员的优秀参考书。   .NET平台是Microsoft公司推出的一套开发框架和工具,是软件开发领域非常重要的里程碑。而C#语言是一种功能强大、语法简单、面向对象和类型安全的编程语言,使用Visual C#开发数据库应用程序简单、快捷。SQL Server是一个用于各种信息管理系统、Web应用程序开发的最常用的后台数据库。   本书第1,2章分别介绍了使用Visual C#和SQL Server开发数据库应用程序的基本知识,第3章~第10章,通过开发8个完整实用的数据库应用程序,系统全面地介绍了用Visual C#和SQL Server来进行数据库应用程序开发的各种技术,最后一章总结性地介绍了数据库应用程序的性能优化和安全提高。   本书适用于使用Visual C#开发Windows应用程序和Web应用程序的技术人员及编程爱好者,同时也是数据库开发人员的优秀参考书。 Visual C#+SQL Server数据库开发与实例光盘第七章节

2009-03-12

Visual C#+SQL Server数据库开发与实例光盘第五章节

书第1,2章分别介绍了使用Visual C#和SQL Server开发数据库应用程序的基本知识,第3章~第10章,通过开发8个完整实用的数据库应用程序,系统全面地介绍了用Visual C#和SQL Server来进行数据库应用程序开发的各种技术,最后一章总结性地介绍了数据库应用程序的性能优化和安全提高。本书适用于使用Visual C#开发Windows应用程序和Web应用程序的技术人员及编程爱好者,同时也是数据库开发人员的优秀参考书。Visual C#+SQL Server数据库开发与实例光盘第五章节   .NET平台是Microsoft公司推出的一套开发框架和工具,是软件开发领域非常重要的里程碑。而C#语言是一种功能强大、语法简单、面向对象和类型安全的编程语言,使用Visual C#开发数据库应用程序简单、快捷。SQL Server是一个用于各种信息管理系统、Web应用程序开发的最常用的后台数据库。   本书第1,2章分别介绍了使用Visual C#和SQL Server开发数据库应用程序的基本知识,第3章~第10章,通过开发8个完整实用的数据库应用程序,系统全面地介绍了用Visual C#和SQL Server来进行数据库应用程序开发的各种技术,最后一章总结性地介绍了数据库应用程序的性能优化和安全提高。   本书适用于使用Visual C#开发Windows应用程序和Web应用程序的技术人员及编程爱好者,同时也是数据库开发人员的优秀参考书。

2009-03-12

Visual C#+SQL Server数据库开发与实例光盘第四章节

书第1,2章分别介绍了使用Visual C#和SQL Server开发数据库应用程序的基本知识,第3章~第10章,通过开发8个完整实用的数据库应用程序,系统全面地介绍了用Visual C#和SQL Server来进行数据库应用程序开发的各种技术,最后一章总结性地介绍了数据库应用程序的性能优化和安全提高。本书适用于使用Visual C#开发Windows应用程序和Web应用程序的技术人员及编程爱好者,同时也是数据库开发人员的优秀参考书。   .NET平台是Microsoft公司推出的一套开发框架和工具,是软件开发领域非常重要的里程碑。而C#语言是一种功能强大、语法简单、面向对象和类型安全的编程语言,使用Visual C#开发数据库应用程序简单、快捷。SQL Server是一个用于各种信息管理系统、Web应用程序开发的最常用的后台数据库。   本书第1,2章分别介绍了使用Visual C#和SQL Server开发数据库应用程序的基本知识,第3章~第10章,通过开发8个完整实用的数据库应用程序,系统全面地介绍了用Visual C#和SQL Server来进行数据库应用程序开发的各种技术,最后一章总结性地介绍了数据库应用程序的性能优化和安全提高。   本书适用于使用Visual C#开发Windows应用程序和Web应用程序的技术人员及编程爱好者,同时也是数据库开发人员的优秀参考书。Visual C#+SQL Server数据库开发与实例光盘第三章节

2009-03-12

Visual C#+SQL Server数据库开发与实例光盘第三章节

书第1,2章分别介绍了使用Visual C#和SQL Server开发数据库应用程序的基本知识,第3章~第10章,通过开发8个完整实用的数据库应用程序,系统全面地介绍了用Visual C#和SQL Server来进行数据库应用程序开发的各种技术,最后一章总结性地介绍了数据库应用程序的性能优化和安全提高。本书适用于使用Visual C#开发Windows应用程序和Web应用程序的技术人员及编程爱好者,同时也是数据库开发人员的优秀参考书。   .NET平台是Microsoft公司推出的一套开发框架和工具,是软件开发领域非常重要的里程碑。而C#语言是一种功能强大、语法简单、面向对象和类型安全的编程语言,使用Visual C#开发数据库应用程序简单、快捷。SQL Server是一个用于各种信息管理系统、Web应用程序开发的最常用的后台数据库。   本书第1,2章分别介绍了使用Visual C#和SQL Server开发数据库应用程序的基本知识,第3章~第10章,通过开发8个完整实用的数据库应用程序,系统全面地介绍了用Visual C#和SQL Server来进行数据库应用程序开发的各种技术,最后一章总结性地介绍了数据库应用程序的性能优化和安全提高。   本书适用于使用Visual C#开发Windows应用程序和Web应用程序的技术人员及编程爱好者,同时也是数据库开发人员的优秀参考书。Visual C#+SQL Server数据库开发与实例光盘第三章节

2009-03-12

Visual C#+SQL Server数据库开发与实例光盘

书第1,2章分别介绍了使用Visual C#和SQL Server开发数据库应用程序的基本知识,第3章~第10章,通过开发8个完整实用的数据库应用程序,系统全面地介绍了用Visual C#和SQL Server来进行数据库应用程序开发的各种技术,最后一章总结性地介绍了数据库应用程序的性能优化和安全提高。本书适用于使用Visual C#开发Windows应用程序和Web应用程序的技术人员及编程爱好者,同时也是数据库开发人员的优秀参考书。   .NET平台是Microsoft公司推出的一套开发框架和工具,是软件开发领域非常重要的里程碑。而C#语言是一种功能强大、语法简单、面向对象和类型安全的编程语言,使用Visual C#开发数据库应用程序简单、快捷。SQL Server是一个用于各种信息管理系统、Web应用程序开发的最常用的后台数据库。   本书第1,2章分别介绍了使用Visual C#和SQL Server开发数据库应用程序的基本知识,第3章~第10章,通过开发8个完整实用的数据库应用程序,系统全面地介绍了用Visual C#和SQL Server来进行数据库应用程序开发的各种技术,最后一章总结性地介绍了数据库应用程序的性能优化和安全提高。   本书适用于使用Visual C#开发Windows应用程序和Web应用程序的技术人员及编程爱好者,同时也是数据库开发人员的优秀参考书。Visual C#+SQL Server数据库开发与实例光盘第二章节

2009-03-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除