蛙蛙推荐:巧用缓存提高asp程序的性能

<!-- 蛙蛙推荐:巧用缓存提高asp程序的性能 -->
<!--为了提高Asp程序的性能,人们常常将经常使用的数据缓存在 Application,
但是你修改了数据库后怎么让application更新呢,本文给你提供了一个合理的解决办法,
如果谁有更好的算法,请跟帖讨论一下,谢谢
-->
<%
Class wawa_app_getrows
public Function wawa_Get_List(strapp,strconn,strsql)
'********************************
'功能:从Application中提取数组,如果application中的数据为empty值的时候再调用wawa_Get_Rows()函数来给application赋值.
'  ,你可以在修改数据库的时候把相应的application值清空成empty,这就浏览的时候就会自动更新application了
'  如果你更新了数据库(比如说添加,修改或者删除了数据)那么在修改数据库后把相应的application变量去掉,
'  用下面的一条语句来实现清空指定的application值,其中strapp参数是要去掉的application变量名
'  application.Contents.Remove(strapp)
'********************************
Dim wawa
wawa = Application(strapp)
If isempty(wawa) Then
wawa = wawa_Get_Rows(strconn,strsql)
Application(strapp) = wawa
End If
wawa_Get_List = wawa
End Function

public Function wawa_Get_Rows(strconn,strsql)
'********************************
'功能:从数据库里读取记录并用getrows方法
' 把记录保存成一个数组
'
'********************************
Dim rs_wawa
Set rs_wawa = CreateObject("ADODB.Recordset")
rs_wawa.Open strsql,strconn,,1,1
wawa_Get_Rows = rs_wawa.GetRows()
rs_wawa.Close
Set rs_wawa = Nothing
End Function
End Class
%>
<!-- 下面举个例子来说明上面的那个类怎么使用 -->
<%
dim strapp,strsql,strconn
strapp="employee"
strsql="SELECT EmployeeID,TitleOfCourtesy,FirstName,LastName,Title,City FROM Employees"
strconn="Driver={sql server};server=192.168.0.110;database=northwind;uid=sa;pwd=sa;"
set wawa_temp=new wawa_app_getrows
arr_wawa=wawa_temp.wawa_Get_LIst(strapp,strconn,strsql)
%>

<%
 Response.Write("<table width='100%' border='0' cellspacing='1'>")
 Dim i,j,Rows,Flds
 Rows=Ubound(arr_wawa,2)
 Flds=Ubound(arr_wawa,1)
 If Rows>=0 Then
 For i=0 To Rows
  Response.Write("<tr>")
  For j=0 to Flds
   Response.Write"<td>"&arr_wawa(j,i)&"</td>"
  Next
  Response.Write("</tr>")
 Next
 Else
 Response.Write("<tr><td>"&Rows&"</td></tr>")
 End If
 Response.Write("</table>")
%>

阅读更多

蛙蛙推荐:蛙蛙牌儿IIS备份器

05-18

蛙蛙推荐:蛙蛙牌儿IIS备份器rn把下面所有代码保存成一个.hta文件,然后双击就可以了rnrnrn New Document rn rn rnrnrn备份名称 rnrnrnrnrnrn rn rn 问:这个小软件有什么用?rn 答: 这个小软件用来手工备份和还原IIS配置,如果IIS元数据库严重受损,IIS 将无法启动,这个小软件可以做的小帮手,帮助你在IIS出错的时候选择合适的备份来恢复IIS配置.rn 问:重装机器后如何恢复IIS配置?rn 答: 做虚拟主机的时候如果重装了系统,一般需要手工一个一个的添加网站,网站很多的话,非常费时费力,而象IIS备份精灵,IISExport都需要注册才能无限制使用.其实在Internet 信息服务管理器控制台(也称为 IIS 插件)中所设置的属性和值默认情况都储存在 C:\winnt\system32\inetsrv\metabase.bin (如果是windows 2003+iis6是C:\WINDOWS\system32\inetsrv\MetaBase.xml)文件中。可以简便地使用 xcopy、scopy 或任何其他复制程序来复制这个 文件。但这时最好先停止 Internet 服务(在cmd命令模式下里键入 net stop "IIS Admin Service"来停止Internet服务,net start "IIS Admin Service"来启动IIS服务,或者在服务管理器在界面模式下操作,),以保证元数据库是最新的并且不在使用状态中。 重装系统的时候先停止internet服务,然后覆盖那个目录,IIS配置就恢复了.rn rn rn rn 问:请提供一些关于IIS管理和编程的文章rn rn 答: rn 1.Internet Information Services SDK rn http://msdn.microsoft.com/library/default.asp?url=/library/en-us/iissdk/html/b1073d67-0cfd-42cb-b62b-97e670a4eafb.asp rn 2.Backing Up and Restoring the IIS Metabase rn http://www.windowsitpro.com/Web/Article/ArticleID/9159/Web_9159.htmlrn 3.有关 Internet 信息服务的 5 个热点问题及其解答 rn http://www.microsoft.com/china/technet/community/columns/insider/iisi0602.mspxrn 4.IIS 内幕 rn http://www.microsoft.com/china/technet/community/columns/insider/default.mspxrn 5.Internet Information Services rn http://msdn.microsoft.com/library/default.asp?url=/library/en-us/iissdk/html/cd7a8a8d-dc9d-45be-b5f8-b7d548053b3f.asprn rn rn rnrnrnrn

蛙蛙推荐:保护你的程序

05-08

蛙蛙推荐:保护你的程序rn我们知道windowsXP现在使用了在线激活的功能来实现保护正版的功能,它是通过你的硬件的一些标识生成一个原始数据(通常是一个字符串),然后把这个原始字符串通过inernet发送到ms网站的一个程序里,而这个程序接受到这个原始字符串后经过一些不为人知的算法处理后再发送给你的机器,我想或多或少是在你的机器上做了一些手脚,我们假设在你的硬盘生成一段密文。然后你的机器启动的时候就读取你的硬件标识并还生成那个原始数据,在本地还是经过那个不为人知的算法后得到一段密文,然后用刚刚生成的密文和在线激活的时候生成到你硬盘上的那段密文比较,如果相同,那你就能进入桌面,如果不同,那你就进不了桌面,而如果你机器更改了硬件配置,生成密文的原始数据就变了,所以密文就不同了,你就需要重新算号了。rn当然了,我是把问题描述简单化了,winxp是把激活文件放在一个特殊文件里了,要不我们破解winxp和window 2003的时候也不替换那几个文件了,另外我还有意忽略了一些在线激活的细节。rn我们可以把这个激活技术推广到我们自己的软件中去,毕竟我们程序员最不愿意看到的就是我们费了很久的时间,投入了很大的精力开发出的软件在被人们疯狂的拷贝使用,并且没有给你一点好处,尽管这是事实,我们还是要做一些措施的。rn微软的用以确定硬件杂凑编码的10项硬件设备特征分别是:显示适配器、SCSI适配器、IDE适配器、网络适配器MAC地址、RAM容量范围(例如0至64兆或64至128兆)、处理器类型、处理器序列号、硬盘驱动器设备、硬盘驱动器卷序列号、CD-ROM/CD-RW/DVD-ROM。我们就不要这么复杂了,我们只要其中3个就行了。rnrn一.获取硬件杂凑编码rn把下面的代码复制到剪贴版里,并保存成一个.vbs文件,这个脚本文件用来获取你的机器的CPUID,硬盘的PNP DeviceID,和网卡MAC号,得到的这3个字符串都能代表你的机器特征,而3个字符串组合起来几乎是就是表示你的机器的一个全球唯一标识。按理说,无论你重装系统,还是格式化硬盘,得到的这个组合字符串是唯一不变的,我们可以用它作为我们生成软件安装序列号的原始数据,当然这个组合字符串是很长的,你可以把这个字符串进行摘要算法处理后作为原始数据,比说把把这个字符串进行MD5加密。rnOn Error Resume NextrnrnstrComputer = "."rnstrOut = ""rnSet objWMIService = GetObject("winmgmts:" _rn & "impersonationLevel=impersonate!\\" & strComputer & "\root\cimv2")rnrn'获取网卡的MAC地址,因为一个机器可能有多个网络适配器,所以我们只获取AdapterType值为"Ethernet 802.3"的适配器MAC号,也就是AdapterTypeID=0的网络适配器,网卡号其实不是很保险,有的小网卡厂商生产的网卡可能会有重复的.rnSet colItems = objWMIService.ExecQuery("Select * from Win32_NetworkAdapter")rnFor Each objItem in colItems rn If objItem.AdapterTypeID = 0 Then strOut = strOut & "MAC Address: " & objItem.MACAddress &vbcrlfrnNextrn'获取CPU的序列号,这个号可不是全球唯一哦,有可能一批CPU使用一个序列号rnSet colItems = objWMIService.ExecQuery("Select * from Win32_Processor")rnFor Each objItem in colItemsrn strOut = strOut & "Processor ID: " & objItem.ProcessorId&vbcrlfrnNextrn'获取硬盘的PNP DeviceID,这个号和传说中的磁盘序列号差不多,应该是也是唯一的,大家都把这个值给偶发上来偶看看.rnSet colDiskDrives = objWMIService.ExecQuery _ rn ("Select * from Win32_DiskDrive")rnFor each objDiskDrive in colDiskDrivesrn strOut = strOut & "DiskDrives PNP DeviceID: " & vbTab & objDiskDrive.PNPDeviceID&vbcrlfrnNextrn'建立一个IE对象,并利用它的功能巧妙的把输出字符串复制到剪贴版里.rnSet objIE = CreateObject("InternetExplorer.Application")rnobjIE.Navigate("about:blank")rnobjIE.document.parentwindow.clipboardData.SetData "text", strOutrnobjIE.QuitrnWscript.Echo strOutrn以上是通过WSH脚本来获取硬件字符串的,我们让用户复制这个字符串,并通过你提供的在线算号的web程序里算号,当然你可以在算号前要求对方做一些事,比如说点击一下广告啦,照顾你一些money啦什么的。rn

没有更多推荐了,返回首页