Archive for the ‘原创技术文章’ Category

oracle判断后插入数据

七月 16th, 2010

有时候用oracle的数据库,插入数据的时候需要判断一下。比如,每天每人只能写一条。
在插入的时候就要先做个判断,查一下是不是当天有此人的操作记录。
就要先

  1. select count(*) from xxx

一下。
这天查了一下,有种写法可以不用先select
本来是

  1. insert
  2. into form(formid) values(111)

改成

  1. insert
  2. when (not exists (select 1 from form where formid = 111)) then
  3. into form(formid) select 111 from dual

这样,当数据库里有一个formid=111的记录的时候,就不会进行insert操作了

Popularity: 2%

怎么清空tortoisesvn的密码缓存

四月 26th, 2010

第一次checkout文件,tortoisesvn会把用户名密码保存起来供以后使用。可是如果用的是多个svn的服务器,从另外一个svn服务器上checkout文件的时候可能会有问题。直接报403错误。
网上查了一下,有说要删除C:\Documents and Settings\[user]\Application Data\Subversion里面的文件,俺删除了也不管用。
其实很简单。
鼠标右键,tortoiseSVN,settings,saved data,点一下authentication data后边的clear即可。

Popularity: 4%

Deprecated: Function session_register() is deprecated

四月 11th, 2010

php从5.2.x升级到5.3.2.出来问题了。有些原来能用的程序报错了。
报错内容是
Deprecated: Function session_register() is deprecated
查了一下是5.3这个session_register就不让用了,降回去?不爽。
搜了一把,有个解决方法是写一个函数

  1. <?php 
  2. // Fix for removed Session functions
  3. function fix_session_register(){ 
  4.     function session_register(){ 
  5.         $args = func_get_args();
  6.         foreach ($args as $key){ 
  7.             $_SESSION[$key]=$GLOBALS[$key];
  8.         } 
  9.     } 
  10.     function session_is_registered($key){ 
  11.         return isset($_SESSION[$key]);
  12.     } 
  13.     function session_unregister($key){ 
  14.         unset($_SESSION[$key]);
  15.     } 
  16. } 
  17. if (!function_exists('session_register')) fix_session_register();
  18. ?>

查了一下出现这个问题的地方不多,找到了另外一个方法,直接

session_register( “abc” ) ;
改成
$_SESSION['abc'] = null;
即可

Popularity: 5%

JetBrains RubyMine 中文乱码

四月 1st, 2010

在看ruby on rails(ror)的时候找到这个ide,但是默认中文是乱码的。当然也可能是我系统变量设置的问题。
file-settings-appearance,更改一下字体为中文字体即可。

Popularity: 3%

gem ruby on rails 安装出错GemNotFoundException

三月 28th, 2010

安装了One-Click Ruby Installer for Windows,然后安装rails
C:\Documents and Settings\xxx>gem install rails
ERROR: While executing gem … (Gem::GemNotFoundException)
Could not find rails (> 0) in any repository

需要先升级gem

gem update --system

Popularity: 3%

怎么给python添加新的lib path

二月 9th, 2010

python读取类库的顺序是,当前目录,pythonpath,path和安装目录。可以动态的设置pythonpath如下:

  1. Python 2.6.3 (r263rc1:75186, Oct  2 2009, 20:40:30) [MSC v.1500 32 bit (Intel)]
  2. on win32
  3. Type "help", "copyright", "credits" or "license" for more information.
  4. >>> import sys
  5. >>> sys.path
  6. ['', 'C:\\Python26', 'C:\\Windows\\system32\\python26.zip', 'C:\\Python26\\DLLs',
  7.  'C:\\Python26\\lib', 'C:\\Python26\\lib\\plat-win', 'C:\\Python26\\lib\\lib-tk'
  8. , 'C:\\Python26\\lib\\site-packages']
  9. >>> sys.path.append('c:\\path')
  10. >>> sys.path
  11. ['', 'C:\\Python26', 'C:\\Windows\\system32\\python26.zip', 'C:\\Python26\\DLLs',
  12.  'C:\\Python26\\lib', 'C:\\Python26\\lib\\plat-win', 'C:\\Python26\\lib\\lib-tk'
  13. , 'C:\\Python26\\lib\\site-packages', 'c:\\path']
  14. >>>

还有就是修改环境变量。增加一个PYTHONPATH
windows比较讨厌的是有空格问题。
在系统变量里面增加一个变量PYTHONPATH
值是:

  1. C:\\Program Files (x86)\\Google\\google_appengine;C:\\Program Files (x86)\\Google\\google_appengine\\lib\\antlr3;C:\\Program Files (x86)\\Google\\google_appengine\\lib\\django;C:\\Program Files (x86)\\Google\\google_appengine\\lib\\webob;C:\\Program Files (x86)\\Google\\google_appengine\\lib\\yaml\\lib;C:\\Program Files (x86)\\Google\\google_appengine;

只是gae执行起来还是有点问题,保存modle的时候,说没有app id。咳。
———–
python 2.6 开始,好像支持在site-packages目录下建xxx.pth的文件,把要include的lib path写进去即可。这个方便,易于维护。不错
更多可以看这个 http://docs.python.org/library/site.html

Popularity: 5%

freebsd升级mysql client

一月 19th, 2010

mysql serve 是5.1.x的,客户端是 5.0.x的,用phpmyadmin,总有一个提示,说版本不匹配,感觉不爽。
用Ports的方法升级客户端,不行,报错。说5.1和5.0有冲突,只能先删除。
用了 portmaster -o databases/mysql51-client mysql-client-5.0.89
也不行。
加上 export CONFLICTS=” 后执行,还是不行。看了
pkg_info mysql\*

Required by:
php5-mysql-5.2.12
php5-mysqli-5.2.12
因为还跑着网站,就没敢贸然行事。
这天趁网站人少的时候,干了一把
删除老的package
#pkg_delete -f mysql-client-5.0.89
到mysql5.1 client的目录
#cd /usr/ports/databases/mysql51-client

#make install clean
。。
。。
等待
。。
好了看一下版本
#mysql -V
mysql Ver 14.14 Distrib 5.1.42, for portbld-freebsd8.0 (amd64) using 5.2
用portmaster升级2个有依赖的php组件
#portmaster php5-mysql php5-mysqli
等待


重启apache,好了。
出乎意料的是安装过程中,php可以正常的链接mysql。网站正常,还以为pkg_delete会删除使用的so文件,导致网站出状况。

感谢hshh

Popularity: 3%

百度也有sitemap了

一月 18th, 2010

看这里
http://www.baidu.com/search/pageop.htm装了个插件,也有baidu专用的sitemap了
http://www.juyimeng.com/sitemap_baidu.xml

Popularity: 5%

用RCS把httpd.conf版本管理起来

一月 17th, 2010

apache或者其他的配置文件经常会修改。每次改了什么有时候会忘掉。或者没有备份。
用RCS 版本控制系统,Revision Control System(很古老的UNIX应用程序)的ci,co来管理,很是方便。简单的就三个命令。
checkout出来httpd.conf
co -l httpd.conf
修改后,看看都修改了什么
rcsdiff httpd.conf
如果确认,并且好用,就checkin
ci -u -wjuhui httpd.conf
目录里会有一个 httpd.conf,v 文件,是文本文件,可以打开看看。

感谢asong。

Popularity: 3%

freebsd linux如何更换默认的shell

一月 13th, 2010

linux等的shell很多,一个人不太可能全部都熟悉。我用bash比较多。有个新的环境是csh。没有ctrl+r的功能,不爽。想改成bash。
安装bash的方法不谈。
查看一下当前的shell

[phpbird@host3 ~]$ echo $SHELL
/usr/local/bin/bash

当然,这是修改后的。
修改缺省的shell可以修改 /etc/passwd
这个文件是用:分割的多行文件,找到需要修改的用户。把最后一行的shell路径替换掉就可以。当然如果不让登录,就修改成一个不存在的shell。
如果改错了,就会麻烦点了。

还有一个是用命令来
chsh
很优雅的方法
chsh -s /path/to/shell {user-name}
我这里就是
chsh -s /usr/local/bin/bash juhui
不是root用户,需要输入密码。

Popularity: 3%