摘要:
我们经常会把一些树形的结构放在一张表里,例如家谱,菜单等。这种表最大的问题就是当我们需要查询某个记录的所有子记录时,很难用简单的sql搞定。我们可以专门写个过程来做这种事情,下面是我写的一个例子: 树形结构表存放的是家谱,表比较简单,结构如下: 家谱表CREATE TABLE `people` ( `id` INT(11) NOT NULL, `name` VARCHAR(50) NULL DEFAULT NULL, `pid` INT(11) NOT NULL DEFAULT '0', PRIMARY KEY (`id`)); 下面是查询所有后代的过程:查询子... 阅读全文
摘要:
最近一个项目有个页面导航的需求,就是在总页面里支持子页面的跳转,同时记录跳转历史,实现向后向前跳转的功能,类似浏览器的向前向后导航按钮。子页面我简单的用iframe实现了,跳转历史跟踪参考了一下Asp.Net本质论的一个例子,这里把整个代码分享一下。 最核心的是导航组件: public class PathNavigator : Control { private Stack<string> _prevs = new Stack<string>(); private Stack<string> _nexts = new Stack<string> 阅读全文
摘要:
调用.Net重载函数Python里面没有函数重载,所以调用.net中的重载方法会出现问题,这时我们可以按照下面格式调用:类.方法.Overloads[方法类型列表](方法参数)例子 :BitConverter.ToString(BitConverter.GetBytes.Overloads[System.Double](10.2))... 阅读全文
摘要:
存储过程和游标核心: #变量必须声明在最前面 declare noMoreRows bool default false; declare _id int; declare _name varchar(25); #声明游标 declare xxRows cursor for select * from xx; #当游标移动到最后空行时设置noMoreRows为true declare CONTINUE handler for NOT FOUND set noMoreRows=true; #打开游标 ... 阅读全文
摘要:
条件表达式:(?(if)then|else)说明:if是分组名称或序号,如果是命名分组匹配,也就是格式为(?<name>xxx)的,则为名称name;如果是普通分组,也就是格式为(xxx)的,则为序号。 then是分组匹配时要匹配的项, else是分组不匹配时要匹配的项。例子:表达式是'(<(?<tag>\w+)\s+[^>]*\s*>)?\w+(?(tag)</\k<tag>>)', 用来匹配超链接标签。 要匹配的字符串是'<a href='idiot.com'>alala& 阅读全文
摘要:
mysql auto_increment 在 innodb 和 myisam 中的区别 阅读全文
摘要:
C#有三种计时器,一个只能在winform 之类的窗口程序之中用,后台能用的只剩下了System.Timers.Timer和System.Threading.Timer, 但这两个计时器都不完备,我们业务中遇到的一些特殊需求无法满足,比如同一时间计时回调不能同时执行等。于是,我花了点时间包装了两个新计时器,一个支持任务串行化(计时器委托在同一时间只有一个执行),一个支持固定延迟(保证上次任务执行结束和此次任务执行开始之间时间恒定)。1. 恒定频率计时器(支持串行化)。 封装的FixedRateTimer类:C# /// <summary> /// 频率恒定计时器 ///... 阅读全文
摘要:
最近做后台发现很多地方需要队列,我用东西一般有两个要求: 1) 够傻够简单。 2) 有源码,能看又能改。 最后相中了0mq,下面介绍如何安装和写个简单的例子。一. linux平台:ubuntu&python。安装软件下载页面:http://www.zeromq.org/intro:get-the-software1. prerequisites安装:sudo apt-get install libtool autoconf automake uuid-dev build-essential2. 下载解压安装包:wget http://download.zeromq.org/ze... 阅读全文
摘要:
昨天工作不忙,脑袋又开始抽抽了,从linux shell的管道想到java的piped stream,从.net的工作流想到了自来水管,从自来水管想到了一个城市复杂的下水道系统( 这都想的啥:( )。反正不管怎么说,最后还是相处了点东西,跟大家扯扯淡。 作为一个程序员,我们写代码的时候经常会发现越写越乱,这一般是没有做好设计的缘故。怎么设计,简单的来说就是画一些流程图啊、类图什么的。不过有时候画了也不顶事,搞到最后还是很乱。其实我觉得画不画图无所谓,关键是脑子里要想清楚,想的太乱的时候可以画画图理一理思维,但最终还是要在脑子里搭个模型出来。软件系统说白了就是一个数据处理器,一坨数据进去,... 阅读全文
摘要:
最近做了个后台服务需要多台机器同时执行若干任务,我在数据库里给每个任务配置了一个机器的ip地址,以便让每台机器上的服务启动的时候知道哪些任务是自己要执行的。结果为了个小问题折腾了半天,那就是服务如何获取本地ip地址。下面是代码,一般取第一个地址就OK了。 foreach( IPAddress ip in Dns.GetHostAddresses(Dns.GetHostName())) { if(ip.AddressFamily == AddressFamily.InterNetwork) { ... 阅读全文