程序开发 类目

C++ go Ruby on Rails python 全都不会~

HP 安装Windows 2003 问题

评分 0.00, 满分 5星 0 票 No comments

在HP电脑上安装windows 2003 server / Ghost 系统时有时会遇到:
windows could not start because of a computer disk hardware configuration problem could not read from the selected boot disk check boot path and disk hardware. please check the windows documentation about hardware disk configuration  and your hardware refer once manuals for additional information.
在格式化和拷贝完安装文件后第一次重启时提示“因计算机磁盘硬件的配置问题,无法启动。不能读取所选的引导盘,请检查引导路径和磁盘硬件。请参阅文档中有关磁盘配置的信息并参阅您的硬件参考手册,以获得进一步的信息。

只要将BIOS中Power Management Setup中的 WDRT support 禁止掉,windows2003就可以正常启动了

*WDRT是watchdog resource table

断掉 指定数据库的 当前链接

评分 0.00, 满分 5星 0 票 No comments

断掉 当前链接 数据库的 链接,便于恢复数据库。

--终结 数据库连接
--2009-04-18 Edit by Xing
--断掉 当前链接 数据库的 链接,便于恢复数据库。
--

  Use   Master   
    
  Create   Table   #aa(spid   int,ecid   int,status   varchar(300),loginname   varchar(100),hostname   varchar(200),blk   int   ,dbname   varchar(30),cmd   varchar(100),request_id   int)   
  Insert   Into   #aa   Exec   sp_who   
  Declare   tt   Cursor   for   Select   spid   From   #aa   Where   spid>50   and   dbname='DATANAME'   ----dbname   是你的数据库名字   
  Open   tt   
  Declare   @ActiveUserId   Int,@KillString   Varchar(100)   
  Fetch   Next   From   tt   Into   @ActiveUserId   
  While(@@Fetch_Status=0)   
  Begin   
      Set   @KillString='Kill   '+Convert(Varchar(50),@ActiveUserId)   
      Exec(@KillString)   
      Fetch   Next   From   tt   Into   @ActiveUserId   
  End   
  Drop   Table   #aa   
  Close   tt   
  Deallocate   tt 

[原创]VB.net Group Box 窗口内 自由 拖拽

评分 0.00, 满分 5星 0 票 No comments
#Region "Group Box 拖拽"

    Dim CurrX As Integer
    Dim CurrY As Integer
    Dim MousX As Integer
    Dim MousY As Integer
    Dim MovBoll As Boolean

    '*--将 gpbMATERIAL_INFO 更换为 自己Group Box的名字
    Private Sub gpbATT_FILE_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles gpbMATERIAL_INFO.MouseDown
        MousX = e.X
        MousY = e.Y
        MovBoll = True
    End Sub

    Private Sub gpbATT_FILE_MouseMove(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles gpbMATERIAL_INFO.MouseMove
         If MovBoll = True Then
            CurrX = sender.Left - MousX + e.X
            CurrY = sender.Top - MousY + e.Y
            sender.Location = New System.Drawing.Point(CurrX, CurrY)
        End If
    End Sub

    Private Sub gpbATT_FILE_MouseUp(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles gpbMATERIAL_INFO.MouseUp
        MovBoll = False
    End Sub


#End Region

[原创]VB.net 使用XML 对 FpSpread 列宽记忆

评分 0.00, 满分 5星 0 票 1 comment
'需要引入的 命名空间
Imports System.Xml
Imports System.IO

#Region "XML 读取 写入 生成"
Private Sub createXML(ByVal xmlFileName As String)
	Try
	
		Dim writer As New Xml.XmlTextWriter(xmlFileName, System.Text.Encoding.GetEncoding("utf-8"))
		'使用自动缩进便于阅读
		writer.Formatting = Xml.Formatting.Indented
		writer.WriteRaw("<!--l version=""1.0"" encoding=""utf-8""-->")
		writer.WriteRaw("<!--   Xing   -->")
		'书写根元素()
		writer.WriteStartElement("xx")
		'关闭根元素
		writer.WriteFullEndElement()
		'将XML写入文件并关闭writer
		writer.Close()
	
	Catch ex As System.Exception
		MsgBox(ex.Message & vbCrLf & ex.StackTrace)
	End Try
End Sub

Private Sub FpSpread_Column_Size_load(ByVal FpSpread As FarPoint.Win.Spread.FpSpread)
	Dim xmlDoc As New XmlDocument
	Dim XmlFileName As String = "C:\XX\INI\FpSpread_Config.xml" '修改为实际XML路径
	Dim intCol As Integer
	
	Try
	
		If File.Exists(XmlFileName) Then
			xmlDoc.Load(XmlFileName)		
			Dim nodeList As XmlNodeList = xmlDoc.SelectSingleNode("xx").ChildNodes '获取xx节点的所有子节点
			Dim xn As XmlNode
			
			For Each xn In nodeList
				Dim xe As XmlElement = CType(xn, XmlElement)				
				If xe.GetAttribute("form") = Me.Name And xe.GetAttribute("Name") = FpSpread.Name Then				
					Dim nls As XmlNodeList = xe.ChildNodes '继续获取xe子节点的所有子节点
					Dim xn1 As XmlNode
					
					For Each xn1 In nls '遍历
						Dim xe2 As XmlElement = CType(xn1, XmlElement) '转换类型
						
						intCol = xe2.Name.Substring(1, xe2.Name.Length - 1)
						FpSpread.ActiveSheet.Columns(Val(intCol)).Width = Integer.Parse(xe2.InnerText)					
					Next xn1
				
				End If
			
			Next
		End If
		
	Catch ex As System.Exception
		File.Delete(XmlFileName)
	End Try
End Sub

Private Sub FpSpread_Column_Size_save(ByVal FpSpread As FarPoint.Win.Spread.FpSpread)
	Dim xmlDoc As New XmlDocument
	Dim XmlFileName As String = "C:\xx\INI\FpSpread_Config.xml" '修改为实际XML路径
	Dim intRecord As Integer
	
	Try
	If File.Exists(XmlFileName) = False Then
		createXML(XmlFileName)
	End If
	
	xmlDoc.Load(XmlFileName)	
	Dim nodeList As XmlNodeList = xmlDoc.SelectSingleNode("xx").ChildNodes '获取xx节点的所有子节点
	Dim xn As XmlNode
	
		For Each xn In nodeList '遍历所有子节点
			Dim xe As XmlElement = CType(xn, XmlElement) '将子节点类型转换为XmlElement类型
			If xe.GetAttribute("form") = Me.Name And xe.GetAttribute("Name") = FpSpread.Name Then '如果form属性值为“当前窗口”Name为 当前spread 那么就 清空下面的数据
			intRecord += 1
			xe.RemoveAll() '*清空数据
			
				If intRecord < 2 Then
				xe.SetAttribute("form", Me.Name)
				xe.SetAttribute("Name", FpSpread.Name)
				
				Dim child_node As XmlElement
					For i As Integer = 0 To FpSpread.ActiveSheet.Columns.Count - 1
						child_node = xmlDoc.CreateElement("C" & i)
						child_node.InnerText = FpSpread.ActiveSheet.Columns(i).Width
						xe.AppendChild(child_node)
					
					Next
				End If
			End If
		Next xn
	
	If intRecord < 1 Then
		Dim root As XmlNode = xmlDoc.SelectSingleNode("xx")
		Dim xe1 As XmlElement = xmlDoc.CreateElement("spread")
		xe1.SetAttribute("form", Me.Name)
		xe1.SetAttribute("Name", FpSpread.Name)
		
		Dim child_node As XmlElement
			For i As Integer = 0 To FpSpread.ActiveSheet.Columns.Count - 1
			child_node = xmlDoc.CreateElement("C" & i)
			child_node.InnerText = FpSpread.ActiveSheet.Columns(i).Width
			xe1.AppendChild(child_node)
	
		Next
	
		root.AppendChild(xe1) '添加到节点中
	
	End If
	
	xmlDoc.Save(XmlFileName) '保存。
	Catch ex As System.Exception
	
	End Try
	
End Sub
#End Region

#Region "Form Load"
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
	'spread load
	FpSpread_Column_Size_load(Me.spListMain)
End Sub
#End Region

#Region "form 关闭"
Private Sub Form1_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
	FpSpread_Column_Size_save(Me.spListMain)
End Sub
#End Region

生成的XML文件内如如下

<?xml version="1.0" encoding="utf-8"?>
<!--   Xing   -->
<xx>
  <spread form="FORM1" Name="spListMain">
    <C0>60</C0>
    <C1>90</C1>
    <C2>106</C2>
    <C3>60</C3>
    <C4>80</C4>
    <C5>60</C5>
    <C6>178</C6>
    <C7>60</C7>
    <C8>119</C8>
    <C9>82</C9>
    <C10>145</C10>
    <C11>88</C11>
    <C12>123</C12>
    <C13>60</C13>
  </spread>
  <spread form="FORM1" Name="spListList">
    <C0>17</C0>
    <C1>65</C1>
    <C2>65</C2>
    <C3>31</C3>
    <C4>60</C4>
    <C5>65</C5>
    <C6>118</C6>
    <C7>69</C7>
    <C8>62</C8>
    <C9>71</C9>
    <C10>34</C10>
    <C11>52</C11>
    <C12>58</C12>
    <C13>58</C13>
    <C14>59</C14>
    <C15>106</C15>
    <C16>34</C16>
    <C17>34</C17>
  </spread>
  <spread form="FORM1" Name="spList1">
    <C0>60</C0>
    <C1>60</C1>
    <C2>60</C2>
    <C3>32</C3>
    <C4>60</C4>
    <C5>71</C5>
    <C6>60</C6>
    <C7>60</C7>
    <C8>60</C8>
    <C9>60</C9>
    <C10>60</C10>
    <C11>72</C11>
    <C12>68</C12>
    <C13>70</C13>
    <C14>60</C14>
    <C15>60</C15>
    <C16>60</C16>
    <C17>60</C17>
    <C18>60</C18>
    <C19>60</C19>
    <C20>60</C20>
    <C21>60</C21>
    <C22>65</C22>
  </spread>
</xx>

VB.net 删除文件夹内所有文件

评分 0.00, 满分 5星 0 票 No comments
Imports System.IO

Public Shared Sub DeleteDir(ByVal aimPath As String)
    Try

        '判断待删除的目录是否存在,不存在则退出.    
        If (Not Directory.Exists(aimPath)) Then Exit Sub
        ' 得到源目录的文件列表,该里面是包含文件以及目录路径的一个数组    
        ' 如果你指向Delete目标文件下面的文件而不包含目录请使用下面的方法    
        ' string[] fileList = Directory.GetFiles(aimPath);    
        Dim fileList() As String = Directory.GetFileSystemEntries(aimPath)
        ' 遍历所有的文件和目录    
        For Each FileName As String In fileList
        If (Directory.Exists(FileName)) Then
        ' 先当作目录处理如果存在这个目录就递归Delete该目录下面的文件    
        DeleteDir(aimPath + Path.GetFileName(FileName))
        Else
        ' 否则直接Delete文件    
        File.Delete(aimPath + Path.GetFileName(FileName))
        End If
        Next
        '删除文件夹、不删除    
        'System.IO.Directory.Delete(aimPath, True)
        Catch ex As Exception
        MessageBox.Show(ex.ToString())
    End Try
End Sub

Win7激活信息查看技巧

评分 0.00, 满分 5星 0 票 No comments

由于Win7采用了全新的状态激活机制,因此几乎每个在网络上下载安装Win7的用户都在担心自己使用的操作系统版本的激活情况,那么要怎样才能查看自己使用的Win7是否已经激活?是在试用状态呢?还是即将过期?本站特意整理了可以查看目前系统激活信息的四个命令行,供大家参考交流。

1. 使用Win+R调出运行菜单,输入命令:slmgr.vbs -dli
使用此命令行可以查看操作系统版本、部分产品密钥和许可证状态等信息,不过配置比较差的电脑需要5秒钟左右才能显示出来。

2.使用Win+R调出运行菜单,输入命令:slmgr.vbs -dlv
使用此名林可以显示出最为详尽的激活信息,包括:激活ID、安装ID、激活截止日期,还会显示显示操作系统版本。一般查看最详细的系统信息就可以使用这条命令行。

3.使用Win+R调出运行菜单,输入命令:slmgr.vbs -xpr
此命令可以简单的查看到目前正在使用的Win7是否彻底激活和系统版本,如果激活会显示出“计算机已永久激活”。

4.使用Win+R调出运行菜单,输入命令:winver
查看带有图标的Windows7操作系统版本。

如果不能正常使用上述四条命令行,可以依次进入控制面板——系统——高级系统设置——系统保护,并删除掉之前的还原点。再试试上述的命令行吧,是不是可以正常使用了。

SQL安全设置攻略

评分 0.00, 满分 5星 0 票 2 comments

下面的文章对于我们对SQL安全设置会有很大的帮助(转)
日前SQL INJECTION的攻击测试愈演愈烈,很多大型的网站和论坛都相继被注入。这些网站一般使用的多为SQLSERVER数据库,正因为如此,很多人开始怀疑SQL SERVER的安全性。其实SQL SERVER2000已经通过了美国政府的C2级安全认证-这是该行业所能拥有的最高认证级别,所以使用SQLSERVER还是相当的安全的。当然和ORCAL、DB2等还是有差距,但是SQL
SERVER的易用性和广泛性还是能成为我们继续使用下去的理由。那怎么样才能使SQL SERVER的设置让人使用的放心呢? Read more…

编写SQL Server 2005 PIVOT查询

评分 0.00, 满分 5星 0 票 No comments

PIVOT是新引入SQL Server 2005的运算符,它让你能够将行级数据旋转成为列表数据,而不需要像先前版本的SQL Server一样使用CASE语句。

CASE语句查询

对于数据库开发人员来说,将行级数据转换为列级数据并不是什么新东西。在SQL Server以前的版本里,要获得所需要的跨表格数据集就要用到一系列CASE语句和聚合查询。虽然这种方式让开发人员具有了对所返回数据进行高度控制的能力,但是编写出这些查询是一件很麻烦的事情。

为了看一下这些CASE语句是如何使用的。我们需要一些测试数据。运行列表A里的脚本能够创建一个SalesHistory表格并把数据加载到表格里。

现在我可以编写一个基于CASE语句的PIVOT查询。这个查询的目标是按照年份将每件产品的销售状况集中起来,这些产品包括:BigScreen、PoolTable和Computer。每件产品自己的销售数据都放在专用的列里。列表B里是CASE语句查询的脚本。

这个查询虽然很简单,相对容易编写,但是很繁复。你必须明确地为每个想要转换成列表数据的行输入一个CASE语句,这一点意思都没有。如果有个程序能够帮你自动完成这项任务就好了——这就是PIVOT运算符的作用之所在。

PIVOT

由于SQL Server 2005有了新的PIVOT运算符,就不再需要CASE语句和GROUP BY语句了。(每个PIVOT查询都涉及某种类型的聚合,因此你可以忽略GROUP BY语句。)PIVOT运算符让我们能够利用CASE语句查询实现相同的功能,但是你可以用更少的代码就实现,而且看起来更漂亮。列表C是一个示例PIVOT查询,它模仿的是我们的CASE语句查询。

这个查询的关键部分是PIVOT运算符后面的括号。在括号里面,我们使用一个SUM聚合函数计算用FOR Product IN()语句列出的每个Product的SalePrice总和。这个语句可能看起来有点别扭,因为IN()语句的值没有放在(’)符号里,它们是文本值。这些值事实上被当作ColumnNames对待,它们在最终的结果集里被转换成列表字段。

如果你运行这个查询,得到的结果与我们从CASE语句查询获得的结果类似。但两者的一个重要不同之处是,这个查询仍然会为我们表格里列出的每个行返回一个行,这当然是不能令人满意的;我们希望获得一个直观的表格列表,列出每年的销售量。造成这种情况的问题在于我们一开始编写PIVOT查询的方式。

在这个查询的SELECT语句中,我们只是在SalesHistory列表里简单地列出了年,并为每个产品设定了一个字段。因此问题在于处理PIVOT语句的SELECT语句无法确定在PIVOT语句里要使用哪一个列。PIVOT语句将分组应用到了所有的列,后者既不是旋转字段也不是聚合字段。我们可以使用子查询来实现满意的结果。列表D是编写好的查询。这一小小的改动让我们能够用更少代码模拟CASE语句查询。

不足之处

PIVOT运算符在很多情况下都很有用,然而它还有一些不足之处。PIVOT运算符所提供的很多功能都要求你对旋转成为列级数据的字段进行“硬编码”。你可以利用动态TSQL语句编写PIVOT查询来解决这一问题,但是这还不是最理想的解决办法。

使用PIVOT语句的另外一个潜在问题是你或许只能在结果集里聚合一个字段;而你利用CASE语句查询可以聚合任意多的字段。

虽然这些潜在不足之处似乎可能成为阻碍使用新PIVOT运算符的障碍,但是它在TSQL开发人员的工具箱里还是占有一席之地。