月归档:七月 2008

Sql Server Transactions

Before you can begin a transaction, you must first open the connection. You begin your transaction and then assign any newly created command objects to that transaction and perform queries as necessary. Commit the transaction. If an error occurs, Rollback … 继续阅读

发表在 Programming | 标签为 , | 一条评论

ADO.net 2.0 Transaction (事务处理)

在谈具体实现前 先介绍一下三种事务: 1. 单对象单资源 2. 多对象单资源 3. 多对象多资源(分布式事务, 使用两段提交协议) 在ADO.Net1.0下有两种使用Transaction的方法. 一种是在需要事务的对象中显式的调用事务处理, 还有一种是使用Enterprise Service的声明式的方法. 第一种方法的示例代码如下: public void TransactionTest() { string connectionString = ""; IDbConnection connection = new SqlConnection(connectionString); connection.Open(); IDbCommand command = new SqlCommand(); command.Connection = connection; IDbTransaction transaction; transaction = … 继续阅读

发表在 Programming | 标签为 , | 留下评论

PHP中Header转向问题

M6上有人问了一个这样的问题: header(“Location:$url”) $url从GET传过来时会转到http://127.0.0.1/$url 谁知道原因? 出现这种转向不正确的原因是通过GET方法获取的URL后缀有可能是不正确的,比如带了其他参数等等,而且指定一个准确的相对地址也不容易,所以我们有必要先获取服务器URL,然后再获取后面的字符串地址,再加上我们需要访问的文件名 主要代码如下:   <?php /* Redirect to a different page in the current directory that was requested */ $host = $_SERVER[’HTTP_HOST’]; $uri = rtrim(dirname($_SERVER[’PHP_SELF’]), ‘/\’); $extra = ‘mypage.php’; header("Location: http://$host$uri/$extra"); exit; ?> PHP手册中也有讲到,具体请点击:PHP手册 最后解释一下为什么要用rtrim()方法,这样做是为了过滤一些被编码的URL,比如查询符号“?”等,具体用法请参考PHP手册里面的解释,我就不罗嗦了。

发表在 Programming | 标签为 | 留下评论

ghs.google.com被封解决办法

刚看了一下我的访问统计,发现很多是通过ghs.google.com这个关键词来的,看来最近ghs.google.com被和谐了之后还是很多人着急的,这里提供一个解决办法,到现在为止还是可以用的,以后会不会被和谐就不知道了。 这个惊天地泣鬼神的方法就是用A记录绑定IP(看官应该知道什么是A记录而且知道怎么绑定的吧,不会请留言 ) 目前还能用的几个IP 216.239.34.21 216.239.36.21 216.239.38.21 只需选一个就可以了 访问速度请看:用GAE做了个小应用,欢迎大家来玩 更新:2009-3-4 已经全部失效,正在寻找其他解决方案 2009-6-24更新: 72.14.232.215 可以使用 如果IP失效,可以ping 一下 ghs.xiao3.co.cc 会得到最新的IP 如果你为了省麻烦,直接把自己的域名CNAME到ghs.xiao3.co.cc 域名也行

发表在 Study & Reading | 标签为 | 10 条评论

对PHP记事本程序(二)的修订

刚才发现我贴在博客上的那段代码是有误的,现郑重变更如下: if($db=mysql_connect( $host,$userName,$passwd)) 应该变更成:   if($db=mysql_connect( $this->host,$this->userName,$this->passwd))

发表在 Programming | 标签为 | 留下评论

PHP记事本程序(三)—-持续改进

经过测试,上篇发布的数据库操作代码,在数据库连接上效率出现很大的问题,原因是过多的使用了try……catch语句,消耗了更多的内存资源,经过优化,其代码如下: <?php /** * 数据库操作类 */   class MySql {   var $user,$pass,$host,$db; var $id,$data,$fields,$row,$row_num,$insertid,$version,$query_num=0;   function MySql($host,$user,$pass,$db) { $this->host = $host; $this->pass = $pass; $this->user = $user; $this->db = $db; $this->dbconnect($this->host, $this->user, $this->pass); $this->selectdb($this->db);   } function dbconnect($host,$user,$pass) { … 继续阅读

发表在 Programming | 标签为 | 留下评论

PHP记事本程序(二)—–面向对象设计

为了使程序拥有更好的扩展性,重用性以及可读性,我对涉及数据库的代码进行了改进,这种改进是并不是浪费时间,因为公司所有的代码都是在团队协作下完成的,你至少让你伙伴读懂你的代码,而不是使他疯掉。 良好的程序结构能大幅降低后期的维护费用,这也是对客户和公司负责,否则您将失去更多的客户,因为你本来可以给他们带来更多的让渡价值,而没有做。 废话不说了,照例看源代码: <?php class OperateDB { // var $db; static $host="localhost"; static $user="root"; static $passwd="";     //连接数据库 public function OpenDB() { try { if($db=mysql_connect( $host,$user,$passwd)) { return $db; } else { throw new exception("Sorry,could not connect to mysql."); … 继续阅读

发表在 Programming | 标签为 | 留下评论

PHP记事本程序(一)

趁着今天还有点时间,学习一下PHP,说来惭愧,一年前我已经能读懂PHP程序了,但是到现在写过的代码也没超过100行,都是光说不练的,理论知识一大堆,时间的没有。 说来好笑,在数据库查询语句中,我照搬了Java中的样式,结果总是出现“unknown collum”,原来,PHP中就算传入的是参数信息,查询语句中依然要加上单引号。 下面是源代码: 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 … 继续阅读

发表在 Programming | 标签为 | 留下评论

学生选课系统—C#语言实现—-三层架构

花了三十个小时写的winform程序,采用了标准的三层架构实现,并写了到目前为止最完整的文档,包括需求分析报告,测试方案,数据字典,测试报告等等文档,这要归功于我们三位的女同胞,她们完成了报告,我十分的感谢她们 源代码下载地址:http://code.google.com/p/selectcourse/ 源代码SVN地址:svn checkout http://selectcourse.googlecode.com/svn/trunk/ selectcourse-read-only

发表在 Programming, Tools | 标签为 , | 7 条评论