由于早期的一个项目在数据库设计建立时没有输出为E-R图,偶在对此项目进行二次改造升级时则使用了PD对原有的数据库进行反向工程,即根据数据源将数据库的的所有表生成为E-R图结构,我使用的是PD 15,反向工程的命令为于“File”菜单中的"Reverse Engineer”-反向引擎。其它的版本的PD应该在”Database”菜单中。
View DetailsVPN 是什么?嗯,VPN —— 虚拟专用网,是一个可以创建一个安全的网络连接到一个公共网络如互联网的网络技术。它允许主机发送和接收数据通过共享或公共网络,就像它们在私有网络的一样,功能、安全性和管理策略跟正常的网络无异。 本文介绍 15 个你可以免费使用的 VPN 服务,每个服务的介绍基本上大同小异,大家请自行到官网查看: VPN Reactor 这个 VPN 服务完全免费,无需安装任何软件,兼容所有平台,包括 Windows, Mac OSX, iPhone/iPod, iPad 和 Unix 等等. Hideman 这是支持 Windows 系统的编写 VPN 解决方案,可以为你分配不同国家的 IP 地址,包括:Australia, Canada, Czech Republic, France, Germany, Netherlands, Panama, Russia, Singapore, Ukraine, UK, US; 可以让你访问一些对地区限制的网站。 SecurityKISS 这是基于 OpenVPN 的 VPN 实现,最大的优点就是使用极其简单,无需注册。 WebSite VPN 该服务为你提供美国的 PPTP VPN,支持 Windows, OSX, iOS (iPhone, iPad) Android Phones, 平板和路由器。可匿名访问网站。 USA IP 这是美国的 IP,提供免费的 PPTP, L2TP 和 OpenVPN 测试帐号,可运行在 Mac OS, Windows 7, Vista, XP, and Linux iVPN 提供不同的 VPN 服务,包括 OpenVPN 和 L2TP/IPSec 协议支持。 newipvpn […]
View DetailsJ2SE J2EE J2ME的区别多数编程语言都有预选编译好的类库以支持各种特定的功能,在Java中,类库以包(package)的形式提供,不同版本的Java提供不同的包,以面向特定的应用。 Java2平台包括标准版(J2SE)、企业版(J2EE)和微缩版(J2ME)三个版本:Standard Edition(标准版) J2SE 包含那些构成Java语言核心的类。比如:数据库连接、接口定义、输入/输出、网络编程Enterprise Edition(企业版) J2EE 包含J2SE 中的类,并且还包含用于开发企业级应用的类。比如:EJB、servlet、JSP、XML、事务控制Micro Edition(微缩版) J2ME 包含J2SE中一部分类,用于消费类电子产品的软件开发。比如:呼机、智能卡、手机、PDA、机顶盒 他们的范围是:J2SE包含于J2EE中,J2ME包含了J2SE的核心类,但新添加了一些专有类 应用场合,API的覆盖范围各不相同。笼统的讲,可以这样理解:J2SE是基础;压缩一点,再增加一些CLDC等方面的特性就是J2ME;扩充一点,再增加一些EJB等企业应用方面的特性就是J2EE。 补充一点J2EE更恰当的说,应该是JAVA2企业开发的技术规范,不仅仅是比标准版多了一些类。jdk,j2ee,j2se,j2me的概念区别1.JDK是Java development toolkit,相当于是Java的库函数,是编译,运行java程序的工具包。J2EE是Java 2 enterprise edition是Java的一种企业版用于企业级的应用服务开发J2SE是Java 2 standard edition是Java的标准版,用于标准的应用开发J2ME是Java 2 Micro Edition是Java的微型版,常用于手机上的开发J2EE,J2SE,J2ME是java针对不同的的使用来提供不同的服务,也就是提供不同类型的类库。针对企业网应用的J2EE(Java 2 Enterprise Edition)、针对普通PC应用的J2SE(Java 2 Standard Edition)和 针对嵌入式设备及消费类电器的J2ME(Java 2 Micro Edition)三个版本对于初学者,都是从J2SE入手的。 2. j2ee和j2se的区别:j2ee是在j2se的基础上添加了一系列的企业级应用编程接口.j2ee包含有很多的技术!其中有你熟悉的jsp,servlet,jdbc,jme等13中技术!j2ee主要是用来做B/S结构的应用程序!也就是说是基于浏览器和服务器的!j2se给我的感觉只需要一个容器就够了,j2ee支持分布式组件可以同时存在多个容器 1、J2EE到底是什么? J2EE,是sun公司提出的一个标准,符合这个标准的产品叫“实现”;其中你下载的sun公司的j2ee开发包中就有一个这样的“实现”,而jboss,weblogic,websphere都是j2ee标准的一个“实现”。由于jboss,weblogic,websphere自身带有j2ee的api,所以可以不使用sun的j2ee实现。 2、j2ee sdk和j2sdkee的区别 其实你可以把j2ee sdk和j2sdkee当成是一回事,官方叫法为 j2ee sdk。不过如果你仔细推敲,也可以用下面的方法来理解:j2eesdk就是jdk,这个是开发ejg必须要安装的,j2sdkee是j2ee开发环境,这也是要安装的,其实如果你安装了jboss的话,就不用全部安装j2sdkee了,只要把其中的一个名为j2ee的文件复制过去就可以了,也就是说jdk是必须要装的,而j2sdkee则不需要,看你用什么做容器了。 3、装过j2ee sdk还需要装j2se sdk吗? 在sun的网站下载J2ee1.4时,有两种下载包: 一种是j2ee1.4 sdk完整包(all in one),包含j2ee server,j2se, sample, api doc; j2ee 好像包含j2se 几乎所有东西.我看 j2ee里也有一个jdk ,它下面的lib和j2se下面的lib一样大(同版本的).但jre不一样大,因为j2ee比j2se多了好多,如java.servlet.* ,java.servlet.http.* 等. j2ee 是让你用来开发 j2ee specification 的东西.如果是用于web 服务器,不装j2ee也行,只要装一个jre (连j2se都不用装),外加一个servlet引擎(如tomcat)就够了. 看下面这个,一目了然: j2se == jdk == bin + demo + include + jre + lib + src.rar //SUN官方的jdk1.4.2 j2ee == jdk + …. //这里的 jdk 和上面的只有 jre 文件不一样大,原因上文已说. 另一种为单独的j2ee server,安装前需要先安装j2se sdk。 不管哪个,安装完成后,都要设置java_home,j2ee_home,classpath环境变量,再运行j2ee server即可。 为了方便开发者,Sun把Java区分为J2SE(Java 2 Standard Edition)、J2EE(Java 2 Enterprise Edition)、J2ME(Java 2 Micro Edition)和Java Card四种平台。J2SE是所有Java技术的基础,不管开发人员要开发什么平台的Java应用程序,都必须先从J2SE学起。J2EE技术着重于企业服务器端的应用。J2ME主要针对嵌入式系统,包括手机、PDA等。针对手机应用程序的开发,Sun还提供了免费的J2ME Wireless Toolkit。Java Card技术用来开发可以植入IC智能卡中的应用程序。 以上四种平台的软件开发包(Software Development Kit,SDK)都是免费的,可以从Sun的网站下载。当然,只用SDK未免太不讲究,我们需要开发工具来提高开发效率。这样的工具叫做集成开发环境(Integrated Development Environment,IDE)。以往,Borland JBuilder和IBM Eclipse这两个IDE最受Java程序员的青睐,而Sun自己的IDE却名不见经传。2004年以后,Sun把自己的IDE摆放到重要的位置,努力推进NetBeans和Java Studio的开发。前者是完全用Java撰写的开放源代码的工具,而后者则是重量级的官方开发工具。Sun的开发工具可谓根正苗红,Java程序员终于可以沐浴Sun(阳光)普照了! 转自:http://hi.baidu.com/mlgzkj/item/adc9c3bf54206ff062388efe
View Details我们都知道,如果是清空数据库中所有表的数据的,那比较好办,只要利用系统表sys.tables查询出数据库中所有表信息,然后再用游标循环清空就好了,附SQL语句如下:
1 2 3 4 5 6 7 8 9 10 11 |
declare @tbname varchar(255) declare #tb cursor for select name from sys.tables open #tb fetch next from #tb into @tbname while @@fetch_status=0 begin exec('delete from ['+@tbname+']') fetch next from #tb into @tbname end close #tb deallocate #tb |
有关sys.tables的用法,请参考本站:利用SQL语句查询数据库中所有表 但有时候我们是要有选择性的清空某些表信息,小编最近就遇到这种情况,我只需清空小编负责的ERP系统中的所有业务流程数据,而基础信息与系统配置信息是不能被清除的,怎么办呢?为了达了快速与重复利用的目的,小编把自己的解决方案附下: 先创建一个配置表,表名为:Sys_TableExtendedProperties表字段如下:TableName-存储系统中所有表的表名IsSystem-指定表是否为系统表IsBaseInformation-指定表是否为基础数据表……其它字段,请大家根据自己的需要添加然后我们将所有表的信息添加到表中(此步骤虽然烦琐,但为了以后的快速调用,现在烦琐点也是值得的),然后,我们写一个存储过程来清空指定数据。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
/* 创建时间:2011-10-11 功能:清除所有指定表的数据 创建人:程序食堂 */ create procedure ClearDate @sourcetype int as set nocount on declare @TableName varchar(128) declare @T_Table table(TableName varchar(128) not null) --获取要删除数据的表 if(sourcetype=1) --如果sourcetype=1,删除所有系统数据 begin insert into @T_Table(TableName) select name from sys.tables where exists(select * from Sys_TableExtendedProperties where Sys_TableExtendedProperties.TableName = sys.tables.name and Sys_TableExtendedProperties.IsSystemTable = 1) order by name end else if(sourcetype=2) --如果sourcetype=2,删除所有基础数据 begin insert into @T_Table(TableName) select name from sys.tables where exists(select * from Sys_TableExtendedProperties where Sys_TableExtendedProperties.TableName = sys.tables.name and Sys_TableExtendedProperties.IsBaseInformation = 1) order by name end else --如果sourcetype等于其它值,删除所有业务数据 begin insert into @T_Table(TableName) select name from sys.tables where exists(select * from Sys_TableExtendedProperties where Sys_TableExtendedProperties.TableName = sys.tables.name and Sys_TableExtendedProperties.IsSystemTable = 0 and Sys_TableExtendedProperties.IsBaseInformation = 0) order by name end while exists(select * from @T_Table) begin --随机取表名 select top 1 @TableName = TableName from @T_Table order by newid() begin try --尝试清除表数据 if not exists(select * from sysforeignkeys where object_name(rkeyid)=@TableName) begin exec('truncate table '+@TableName) end else begin --删除表数据(如果有触发器,先关闭触发器) --禁用与启用触发器,请参见本站: 利用Sql禁用与启用触发器 exec('alter table '+@TableName + ' disable trigger all delete from '+@TableName + ' alter table '+@TableName + ' enable trigger all') --有自增栏位 if exists(select * from syscolumns where id = object_id(@TableName) and colstat = 1) begin --将自增栏位当前标识值置为0 DBCC CHECKIDENT (@TableName, RESEED, 0) end end delete @T_Table where TableName = @TableName end try begin catch end catch end |
现在,我们任意时候想清空指定表数据时,执行该存储过程即可。 转自:http://www.lmwlove.com/ac/ID637
View DetailsFlashPaper是一个虚拟打印机,可将word文件转化成swf格式文件(.doc .xls .txt .pdf等文件都可以正常生成SWF格式)。最近简单学习了在ASP.NET页面中调用FlashPaper将word文件转化成swf格式文件的方法。 (1)安装FlashPape:下载FlashPape压缩包,解压缩后,运行初始化目录中的初始化.bat,然后安装FlashPaperDriverInstall2.exe,即FlashPaper打印机。特别注意,在有的机器上要更改Macromedia FlashPape的端口,应为FlashPape2PrinterPort,如果是LPT1这个端口,当然打印不出来了。 (2)为页面中的按钮编写事件处理代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
Process process = new Process(); //创建进程对象 //try //{ ProcessStartInfo startInfo = new ProcessStartInfo(); string paperroot = @"C:\Program Files\Macromedia\FlashPaper 2\FlashPrinter.exe"; string docFile = Server.MapPath("1.doc"); string swfFile = Server.MapPath("1.swf"); startInfo.FileName = paperroot; startInfo.Arguments = docFile + " -o " + swfFile; startInfo.UseShellExecute = false; //不使用系统外壳程序启动 startInfo.RedirectStandardInput = false; //不重定向输入 startInfo.RedirectStandardOutput = false; //重定向输出 startInfo.CreateNoWindow = true; //不创建窗口 process.StartInfo = startInfo; process.Start(); Response.Write("已经提交生成。<br />"); Response.Write(paperroot+"<br />"+docFile + " = " + swfFile); //} //catch (Exception ex) //{ // Response.Write(ex.Message); //} //finally //{ if (process != null) process.Close(); // Response.Write("<br />finally"); //} |
示例代码3:
1 |
public static void TransformFile(string filepath) |
{ string fppath = System.Configuration.ConfigurationManager.AppSettings["Flashpaper"]; string outpath = filepath.Substring(0, filepath.LastIndexOf('.')) + ".swf"; string param = fppath + " " + filepath + " -o " + outpath; Process p = new Process(); p.StartInfo.FileName = "C:\\WINDOWS\\system32\\cmd.exe"; p.StartInfo.UseShellExecute = false; p.StartInfo.RedirectStandardInput = true; p.StartInfo.RedirectStandardOutput = true; p.StartInfo.RedirectStandardError = true; p.StartInfo.CreateNoWindow = true; //p.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; try { p.Start(); string strOutput = null; p.StandardInput.WriteLine(param); p.StandardInput.WriteLine("exit"); strOutput = p.StandardOutput.ReadToEnd(); Console.WriteLine(strOutput); p.WaitForExit(); p.Close(); } catch (Exception ex) { throw ex; } }
View Details就象大家更熟悉的const一样,volatile是一个类型修饰符(type specifier)。它是被设计用来修饰被不同线程访问和修改的变量。如果没有volatile,基本上会导致这样的结果:要么无法编写多线程程序,要么编译器失去大量优化的机会。
View Detailswin8系统在,许多软件都需求安装framework3.5,但是很多用户都是安装失败,联网失败,据网上的许多人说有用cmd输入命令,然后到100%,就会成功安装framework3.5(如这个方法:win8 下安装 .net framework 3.5.1: 1. 打开 win8 安装盘,提取 sources\sxs 文件夹到 d:\sources\sxs (或别的盘也行,举个例子); 2. 打开 c:\windows\system32 文件夹,找到 cmd.exe,右击,选择"以管理员身份运行3. 在命令行执行以下命令: dism.exe /online /enable-feature /featurename:NetFX3 /Source:X:\sources\sxs 大概一两分钟就执行完了,执行结果如下: Deployment Image Servicing and Management toolVersion: 6.2.8102.0 Image Version: 6.2.8102.0 Enabling feature(s)[==========================100.0%==========================]The operation completed successfully. ,但是很多人在到达66.8%的时候的失败了。 其实这个方法是正确的,但是你们会失败是因为你们安装的是win8简体中文版,按照上面的方法从win8系统盘提取出的sxs文件夹,却必须是英文版win8的文件夹,所以需要下载一个英文版的win8iso文件,然后解压,提取出文件夹的sxs文件夹,用上面的那个方法就可以到达100%了 http://www.win8china.com/html/505.html win8所有镜像下载 转自:http://tieba.baidu.com/p/1612409062
View Details简介端口映射是一个服务器,将RPC程序号转换为DARPA的协议端口号。在使用RPC调用时它必须运行。portmap进程的主要功能是把RPC程序号转化为Internet的端口号。当一个RPC服务器启动时,会选择一个空闲的端口号并在上面监听(每次启动后的端口号各不相同),同时它作为一个可用的服务会在portmap进程注册。一个RPC服务器对应惟一一个RPC程序号,RPC服务器告诉portmap进程它在哪个端口号上监听连接请求和为哪个RPC程序号提供服务。经过这个过程,portmap进程就知道了每一个已注册的RPC服务器所用的Internet端口号,而且还知道哪个程序号在这个端口上是可用的。portmap进程维护着一张RPC程序号到Internet端口号之间的映射表,它的字段包括程序号、版本号、所用协议、端口号和服务名,portmap进程通过这张映射表来提供程序号-端口号之间的转化功能如果portmap进程停止了运行或异常终止,那么该系统上的所有RPC服务器必须重新启动。首先停止NFS服务器上的所有NFS服务进程,然后启动portmap进程,再启动服务器上的NFS进程。 特点但portmap只在第一次建立连接的时候起作用,帮助网络应用程序找到正确的通讯端口,但是一旦这个双方正确连接,端口和应用就绑定,portmap也就不起作用了。但对其他任何第一次需要找到端口建立通讯的应用仍然有用。简单的说,portmap就是应用和端口的婚姻介绍人,双方成事了以后,媒婆就没用了。
View Details
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
public class StrBinConvertor { /// <summary> /// 将 字符串 转成 二进制 “10011100000000011100011111111101” /// </summary> /// <param name="s"></param> /// <returns></returns> public static string StrToBin(string s) { var data = Encoding.Unicode.GetBytes(s); var result = new StringBuilder(data.Length * 8); foreach (var b in data) { result.Append(Convert.ToString(b, 2).PadLeft(8, '0')); } return result.ToString(); } /// <summary> /// 将二进制 “10011100000000011100011111111101” 转成 字符串 /// </summary> /// <param name="s"></param> /// <returns></returns> public static string BinToStr(string s) { var cs = System.Text.RegularExpressions.Regex.Match(s, @"([01]{8})+").Groups[1].Captures; var data = new byte[cs.Count]; for (var i = 0; i < cs.Count; i++) { data[i] = Convert.ToByte(cs[i].Value, 2); } return Encoding.Unicode.GetString(data, 0, data.Length); } } |