出没于网
  Goldtimes.net 互联网重回黄金时代!
国内唯一诚信、实用、合法的网络赚钱指南网站
日志首页  | 互联网 | 技术新知 | Goldtimes | Linux | .NET | JavaScript | AJAX | ASP | MSSql | PHP | MySql | Flash | 收藏 | 站长手记
国内唯一诚信、实用、合法的网络赚钱指南网站
用户登陆
用户:
密码:
 

站点日历
73 2010 - 9 48
   1234
567891011
12131415161718
19202122232425
2627282930

站点公告
Goldtimes.net全面改版中...
本站今后将以原创文章、教程为主,谢谢大家的支持,大家还有什么好的建议或意见,都可以在这里提出!
站长简介:
Agang,生于八十年代.多年媒体及互联网从业经验,关注互联网、电子商务和网络技术.中国商贸网(tradevnet.cn)创办人
blog.goldtimes.net
国内唯一专注于web2.0源码收藏,分享的技术blog

站点统计

联系方式
手机:13686861114
QQ:993715476
Email:anyshop@126.com

最新评论(删除/引用)

日志搜索

 标题   内容

友情链接

BLOG编码
RSS 1.0
RSS 2.0
创作共用协议
[2] [3] [4] [5] [6] [7] [8] [9] [10] [11]  ... [49]  
怎么样打开任务管理
  

方法一:在"运行"里输入taskmgr

方法二:在任务栏击右键

 

右键点击下方的启动工具栏或者时间,选择“任务管理器”



作者:admin | 分类:站长手记 | 评论:0 | 引用:0 | 查看:172

我用php做了改写,可能有不完善的地方。


 

附件中有代码,

主要的类为class.qqhttp.php

 

php代码
<?php  
/**  
* @file class.qqhttp.php 
* qq邮箱登陆获取类 
* @author wc<cao8222@gmail.com
* @date 2009-04-27 
 */ 
 
class qqhttp {  
 
    var $cookie = '';  
 
    function __cunstrut() {  
    }  
 
    function makeform() {  
        $form = array(  
            'url' => "http://mail.qq.com/cgi-bin/loginpage",  
        );  
        $data = $this->curlfunc($form);  
        preg_match('/name="ts"\svalue="(\d+)"/',$data['html'], $tspre);  
        $ts = $tspre[1];  
        preg_match('/action="http:\/\/(m\d+)\.mail\.qq\.com/',$data['html'], $server);  
        $server_no = $server[1];  
 
        /*  login.html 载入 */ 
        $html = file_get_contents(dirname(__file__).'/login.htm');  
        $html = str_replace('{_ts_}',$ts, $html);  
        $html = str_replace('{_server_no_}',$server_no, $html);  
        return $html;  
    }  
 
    function curlfunc($array)  
    {  
        $ch = curl_init();  
        curl_setopt($ch, curlopt_url, $array['url']);  
        curl_setopt($ch, curlopt_returntransfer, true);  
        if( isset($array['header']) && $array['header'] ) {  
            curl_setopt($ch, curlopt_header, 1);  
        }  
        if(isset($array['httpheader'])) {  
            curl_setopt($ch, curlopt_httpheader, $array['httpheader']);  
        }  
        if(isset($array['referer'])) {  
            curl_setopt($ch, curlopt_referer, $array['referer']);  
        }  
        if( isset($array['post']) ) {  
            curl_setopt($ch, curlopt_post, 1 );  
            curl_setopt($ch, curlopt_postfields, $array['post']);  
        }  
        if( isset($array['cookie']) ){  
            curl_setopt($ch, curlopt_cookie, $array['cookie']);  
        }  
        $r['erro'] = curl_error($ch);  
        $r['errno'] = curl_errno($ch);  
        $r['html'] = curl_exec($ch);  
        $r['http_code'] = curl_getinfo($ch, curlinfo_http_code);  
        curl_close($ch);  
        return $r;  
    }  
 
    /**  
     * 获取验证码图片和cookie 
     * @param null 
     *  
     * @return array('img'=>string, 'cookie'=>string) 
     */ 
    function getvfcode ()   
    {  
        $vfcode = array(  
            'header' => true,  
            'cookie' => false,  
            'url'=>'http://ptlogin2.qq.com/getimage?aid='.$_get['aid'].'&'.@$_get['t'],  
        );  
 
        $r = $this->curlfunc($vfcode);  
        if ($r['http_code'] != 200 ) return false;  
        $data = split("\n", $r['html']);  
        preg_match('/verifysession=([^;]+);/',$data[5], $temp);  
        $cookie = trim($temp[1]);  
        $img = $data[9];  
        return  array('img'=>$img,'cookie'=>$cookie);  
    }  
 
    /**  
     * 登陆qq邮箱 
     *  
     * @param $cookie getvfcode中生成的cookie 
     *  
     * @return array( 
     *   sid=>string , //用户认证的唯一标示 
     *   login => boolean, //true 登陆成功 ,false 登陆失败 
     *   server_no => string // 服务器编号 
     *   active => boolean //true 已开通 ,false 未开通 邮箱 
     *   cookie => string // 获取数据cookie 
     * 
     * ); 
     */ 
    function login($cookie)   
    {  
        /* 生成参数字符串 */ 
        $post = array();  
        foreach($_post as $k => $v) {  
            $post[] = $k.'='.urlencode($v);  
        }  
        $poststr = implode('&',$post);  
        $r['server_no'] = $_get['server_no'];  
 
        $login = array(  
            'url'=>'http://'.$r['server_no'].'.mail.qq.com/cgi-bin/login?sid=0,2,zh_cn',  
            'header' => true,  
            'cookie' => 'verifysession='.$cookie,  
            'referer' => 'http://mail.qq.com/cgi-bin/loginpage',  
            'httpheader'=>array(  
                "host: " . $r['server_no'] . '.mail.qq.com',  
                "user-agent: mozilla/5.0 (windows; u; windows nt 5.1; zh-cn; rv:1.9.0.9) gecko/2009040821 firefox/3.0.9 firephp/0.2.4",  
                "content-type: application/x-www-form-urlencoded",  
            ),  
            'post' => $poststr ,  
        );  
        $data = $this->curlfunc($login);  
        $data['html'] = iconv("gb2312", "utf-8", $data['html']);  
        if ($data['http_code'] != 200) {  
            $this->error($data);  
            return false;  
        }  
 
        /* 测试数据 */ 
        //$data['html'] =file_get_contents('./r.txt');  
        $r['uin'] = $_post['uin'];  
        /* 登陆错误的判断 */ 
        if (preg_match('|errtype=(\d)|', $data['html'], $temp_err)) {  
            $r['login'] = false;  
            if ($temp_err[1] == 1) {  
                $r['msg'] = '账号和密码错误';  
            } elseif ($temp_err[1] == 2) {  
                $r['msg'] = '验证码错误';  
            }  
            return $r;  
        }  
        /* 登陆成功 */ 
        preg_match('|urlhead="([^"]+)"|i',$data['html'],$temp_url);  
        $urlhead = $temp_url[1];  
        if (preg_match('|frame_html\?sid=([^"]+)"|i',$data['html'],$temp_sid) ) {  
            $r['sid'] = $temp_sid[1];  
            $r['active'] = true;  
        } elseif (preg_match('|autoactivation\?sid=([^&]+)?&|i',$data['html'],$temp_sid) ) {  
            $r['sid'] = $temp_sid[1];  
            $r['active'] = false;  
        }  
        /* 登录后cookie的获取 ,在后续操作中用到 */ 
        if (preg_match_all('|set-cookie:([^=]+=[^;]+)|i', $data['html'], $new_cookies) ) {  
            $cookiestr = implode('; ', $new_cookies[1]);  
            $cookiestr .= '; verifysession='.$cookie;  
        }  
 
        $r['login'] = true;  
        $r['cookie'] = $cookiestr;  
        return $r;  
    }  
 
    function openemail($param)   
    {  
        $openemail = array(  
            'url'=>'http://'.$param['server_no'].'.mail.qq.com/cgi-bin/autoactivation?actmode=6&sid='.$param['sid'],  
            'header' => true,  
            'cookie' => $param['cookie'],  
            'referer' => 'http://'.$param['server_no'].'mail.qq.com/cgi-bin/autoactivation?sid='.$param['sid'].'&action=reg_activate&actmode=6',   
            'httpheader'=>array(  
                "host: " . $param['server_no'] . '.mail.qq.com',  
                'accept-charset: gb2312,utf-8;q=0.7,*;q=0.7',  
                "user-agent: mozilla/5.0 (windows; u; windows nt 5.1; zh-cn; rv:1.9.0.9) gecko/2009040821 firefox/3.0.9 firephp/0.2.4",  
            ),  
        );  
 
        $data =  $this->curlfunc($openemail);  
        if (preg_match('|set-cookie:qqmail_activated=0|i', $data['html'])) {  
            $param['active'] = true;  
            $param['cookie'] = $param['cookie'] .'; qqmail_activated=0; qqmail_alias=';  
        }  
        return $param;  
    }  
 
    /**  
     *  
     * 获取friends数据  
     *  
     * @param $param = array( 
     *   sid=>string , //用户认证的唯一标示 
     *   login => boolean, //true 登陆成功 ,false 登陆失败 
     *   server_no => string // 服务器编号 
     *   active => boolean //true 已开通 ,false 未开通 邮箱 
     *   cookie => string // 获取数据cookie 
     * 
     * ); 
     * @return array( 
     *   key=>value, // key:qq号,value: nickname 
     * ); 
     */ 
    function getfriends($param)  
    {  
 
        $friend = array(  
            'url'=>'http://'.$param['server_no'].'.mail.qq.com/cgi-bin/addr_listall?type=user&&category=all&sid='.$param['sid'],  
            'header' => true,  
            'cookie' => $param['cookie'],  
            'referer' => 'http://m151.mail.qq.com/cgi-bin/addr_listall?sid='.$param['sid'].'&sorttype=null&category=common',  
            'httpheader'=>array(  
                "host: " . $param['server_no'] . '.mail.qq.com',  
                'accept-charset:utf-8;q=0.7,*;q=0.7',  
                "user-agent: mozilla/5.0 (windows; u; windows nt 5.1; zh-cn; rv:1.9.0.9) gecko/2009040821 firefox/3.0.9 firephp/0.2.4",  
            ),  
        );  
        $r = $this->curlfunc($friend);  
        if ($r['http_code'] != 200) {  
            $this->error($r);  
            return false;  
        }  
        $data =  $r['html'];  
        $preg = preg_match_all('|<p class="l_n"><span><img class="l_q" name=qqplusimg key="(\d+)"[^>]+/>&nbsp;([^<]+)</span></p>|i', $data, $temp_list);  
        if ($preg == 0) return array();  
        $list = array_combine($temp_list[1],$temp_list[2]);  
        return $list;  
    }  
 
    /**  
     * 错误显示 
     *  
     * @param $str array 
     *  
     * @return  
     */ 
    function error($str) {  
        $str['html'] = str_replace('script','', $str['html']);  
        var_dump($str);  
        exit;  
    }  
}  
 
?> 

<?php
/**
* @file class.qqhttp.php
* qq邮箱登陆获取类
* @author wc<cao8222@gmail.com>
* @date 2009-04-27
 */

class qqhttp {

    var $cookie = '';

    function __cunstrut() {
    }

    function makeform() {
        $form = array(
            'url' => "http://mail.qq.com/cgi-bin/loginpage",
        );
        $data = $this->curlfunc($form);
        preg_match('/name="ts"\svalue="(\d+)"/',$data['html'], $tspre);
        $ts = $tspre[1];
        preg_match('/action="http:\/\/(m\d+)\.mail\.qq\.com/',$data['html'], $server);
        $server_no = $server[1];

        /*  login.html 载入 */
        $html = file_get_contents(dirname(__file__).'/login.htm');
        $html = str_replace('{_ts_}',$ts, $html);
        $html = str_replace('{_server_no_}',$server_no, $html);
        return $html;
    }

    function curlfunc($array)
    {
        $ch = curl_init();
        curl_setopt($ch, curlopt_url, $array['url']);
        curl_setopt($ch, curlopt_returntransfer, true);
        if( isset($array['header']) && $array['header'] ) {
            curl_setopt($ch, curlopt_header, 1);
        }
        if(isset($array['httpheader'])) {
            curl_setopt($ch, curlopt_httpheader, $array['httpheader']);
        }
        if(isset($array['referer'])) {
            curl_setopt($ch, curlopt_referer, $array['referer']);
        }
        if( isset($array['post']) ) {
            curl_setopt($ch, curlopt_post, 1 );
            curl_setopt($ch, curlopt_postfields, $array['post']);
        }
        if( isset($array['cookie']) ){
            curl_setopt($ch, curlopt_cookie, $array['cookie']);
        }
        $r['erro'] = curl_error($ch);
        $r['errno'] = curl_errno($ch);
        $r['html'] = curl_exec($ch);
        $r['http_code'] = curl_getinfo($ch, curlinfo_http_code);
        curl_close($ch);
        return $r;
    }

    /**
     * 获取验证码图片和cookie
     * @param null
     *
     * @return array('img'=>string, 'cookie'=>string)
     */
    function getvfcode ()
    {
        $vfcode = array(
            'header' => true,
            'cookie' => false,
            'url'=>'http://ptlogin2.qq.com/getimage?aid='.$_get['aid'].'&'.@$_get['t'],
        );

        $r = $this->curlfunc($vfcode);
        if ($r['http_code'] != 200 ) return false;
        $data = split("\n", $r['html']);
        preg_match('/verifysession=([^;]+);/',$data[5], $temp);
        $cookie = trim($temp[1]);
        $img = $data[9];
        return  array('img'=>$img,'cookie'=>$cookie);
    }

    /**
     * 登陆qq邮箱
     *
     * @param $cookie getvfcode中生成的cookie
     *
     * @return array(
     *   sid=>string , //用户认证的唯一标示
     *   login => boolean, //true 登陆成功 ,false 登陆失败
     *   server_no => string // 服务器编号
     *   active => boolean //true 已开通 ,false 未开通 邮箱
     *   cookie => string // 获取数据cookie
     *
     * );
     */
    function login($cookie)
    {
        /* 生成参数字符串 */
        $post = array();
        foreach($_post as $k => $v) {
            $post[] = $k.'='.urlencode($v);
        }
        $poststr = implode('&',$post);
        $r['server_no'] = $_get['server_no'];

        $login = array(
            'url'=>'http://'.$r['server_no'].'.mail.qq.com/cgi-bin/login?sid=0,2,zh_cn',
            'header' => true,
            'cookie' => 'verifysession='.$cookie,
            'referer' => 'http://mail.qq.com/cgi-bin/loginpage',
            'httpheader'=>array(
                "host: " . $r['server_no'] . '.mail.qq.com',
                "user-agent: mozilla/5.0 (windows; u; windows nt 5.1; zh-cn; rv:1.9.0.9) gecko/2009040821 firefox/3.0.9 firephp/0.2.4",
                "content-type: application/x-www-form-urlencoded",
            ),
            'post' => $poststr ,
        );
        $data = $this->curlfunc($login);
        $data['html'] = iconv("gb2312", "utf-8", $data['html']);
        if ($data['http_code'] != 200) {
            $this->error($data);
            return false;
        }

        /* 测试数据 */
        //$data['html'] =file_get_contents('./r.txt');
        $r['uin'] = $_post['uin'];
        /* 登陆错误的判断 */
        if (preg_match('|errtype=(\d)|', $data['html'], $temp_err)) {
            $r['login'] = false;
            if ($temp_err[1] == 1) {
                $r['msg'] = '账号和密码错误';
            } elseif ($temp_err[1] == 2) {
                $r['msg'] = '验证码错误';
            }
            return $r;
        }
        /* 登陆成功 */
        preg_match('|urlhead="([^"]+)"|i',$data['html'],$temp_url);
        $urlhead = $temp_url[1];
        if (preg_match('|frame_html\?sid=([^"]+)"|i',$data['html'],$temp_sid) ) {
            $r['sid'] = $temp_sid[1];
            $r['active'] = true;
        } elseif (preg_match('|autoactivation\?sid=([^&]+)?&|i',$data['html'],$temp_sid) ) {
            $r['sid'] = $temp_sid[1];
            $r['active'] = false;
        }
        /* 登录后cookie的获取 ,在后续操作中用到 */
        if (preg_match_all('|set-cookie:([^=]+=[^;]+)|i', $data['html'], $new_cookies) ) {
            $cookiestr = implode('; ', $new_cookies[1]);
            $cookiestr .= '; verifysession='.$cookie;
        }

        $r['login'] = true;
        $r['cookie'] = $cookiestr;
        return $r;
    }

    function openemail($param)
    {
        $openemail = array(
            'url'=>'http://'.$param['server_no'].'.mail.qq.com/cgi-bin/autoactivation?actmode=6&sid='.$param['sid'],
            'header' => true,
            'cookie' => $param['cookie'],
            'referer' => 'http://'.$param['server_no'].'mail.qq.com/cgi-bin/autoactivation?sid='.$param['sid'].'&action=reg_activate&actmode=6',
            'httpheader'=>array(
                "host: " . $param['server_no'] . '.mail.qq.com',
                'accept-charset: gb2312,utf-8;q=0.7,*;q=0.7',
                "user-agent: mozilla/5.0 (windows; u; windows nt 5.1; zh-cn; rv:1.9.0.9) gecko/2009040821 firefox/3.0.9 firephp/0.2.4",
            ),
        );

        $data =  $this->curlfunc($openemail);
        if (preg_match('|set-cookie:qqmail_activated=0|i', $data['html'])) {
            $param['active'] = true;
            $param['cookie'] = $param['cookie'] .'; qqmail_activated=0; qqmail_alias=';
        }
        return $param;
    }

    /**
     *
     * 获取friends数据
     *
     * @param $param = array(
     *   sid=>string , //用户认证的唯一标示
     *   login => boolean, //true 登陆成功 ,false 登陆失败
     *   server_no => string // 服务器编号
     *   active => boolean //true 已开通 ,false 未开通 邮箱
     *   cookie => string // 获取数据cookie
     *
     * );
     * @return array(
     *   key=>value, // key:qq号,value: nickname
     * );
     */
    function getfriends($param)
    {

        $friend = array(
            'url'=>'http://'.$param['server_no'].'.mail.qq.com/cgi-bin/addr_listall?type=user&&category=all&sid='.$param['sid'],
            'header' => true,
            'cookie' => $param['cookie'],
            'referer' => 'http://m151.mail.qq.com/cgi-bin/addr_listall?sid='.$param['sid'].'&sorttype=null&category=common',
            'httpheader'=>array(
                "host: " . $param['server_no'] . '.mail.qq.com',
                'accept-charset:utf-8;q=0.7,*;q=0.7',
                "user-agent: mozilla/5.0 (windows; u; windows nt 5.1; zh-cn; rv:1.9.0.9) gecko/2009040821 firefox/3.0.9 firephp/0.2.4",
            ),
        );
        $r = $this->curlfunc($friend);
        if ($r['http_code'] != 200) {
            $this->error($r);
            return false;
        }
        $data =  $r['html'];
        $preg = preg_match_all('|<p class="l_n"><span><img class="l_q" name=qqplusimg key="(\d+)"[^>]+/>&nbsp;([^<]+)</span></p>|i', $data, $temp_list);
        if ($preg == 0) return array();
        $list = array_combine($temp_list[1],$temp_list[2]);
        return $list;
    }

    /**
     * 错误显示
     *
     * @param $str array
     *
     * @return
     */
    function error($str) {
        $str['html'] = str_replace('script','', $str['html']);
        var_dump($str);
        exit;
    }
}

?>
qq_mail.rar

 



作者:admin | 分类:PHP | 评论:0 | 引用:0 | 查看:1059
未知 MYSQL每日一用:存储过程   [ 2009-07-11  |  转载 ]

今天要做一个统计报表,想到使用存储过程来做。

 

mysql的存储过程以前没有用过,这次想试试,在编写的过程中遇到了不少问题:

 

首先,看了官方的文档 ,不过对于存储过程,还是要使用才知道。文档是死的,人是活的。

 

1.怎么创建存储过程,自然也是使用一定语法,然后运行,如果成功,会有一个对应的文

 

件产生,并可以通过 call 来调用。

 

2.设定变量要注意,不是全局变量(@)时,要先定义(declare year_months varchar(10))

 

3.设置变量时的语法,在变量前面加 set 关键字,不然报错

 

4.直接执行sql,是可以的,但是如果我们的sql是动态的,比如我们表名是通过参数传进来的。

 

这时间要另外一种方式了,要将sql,使用concat(,,,),来讲sql连接起来。还有就是字符串拼接时,

 

最好使用concat(见下面的)函数,不然会有问题。

 

下面是我写的一个实例:

 

drop   procedure  if   exists   `crm_sms_stat`;

create definer=`boss`@`%` procedure `crm_sms_stat`(in years varchar(10),in m varchar(10),in last_months varchar(10))
begin
     declare year_months varchar(10);
     declare year_m varchar(10);
     declare mt_sms_yearmonth varchar(20);
     declare r_year_month varchar(20);
     declare last_r_year_month varchar(20);
    
    
     set year_months = concat(years,m);
     set year_m = concat(years,'-',m);
     set mt_sms_yearmonth = concat("mt_sms_",year_months);
     set r_year_month = concat(years,"_",m);
    
     if m = "01" then
        set years = years - 1;
        set last_months = "12";
     end if;
     set last_r_year_month = concat(years,"_",last_months);
    
     if years = "2008" then
        set r_year_month = concat("r",r_year_month);
        set last_r_year_month = concat("r",last_r_year_month);
     end if;
    
    
     /*---------------------------------------------------------------- */
     set @insertstat = concat(' insert into crm_sms_stat(months,user_id,username,agentid) ',
                              ' select "',year_months,'",u.user_id,u.username,u.agentid from ',mt_sms_yearmonth,
                              ' mt inner join users u on mt.user_id=u.user_id group by mt.user_id ');
     prepare inserts from @insertstat;
     execute inserts;
    
    
     set @tempupdateremain = concat(' update crm_monthremain cm,crm_sms_stat css set css.last_remain = ifnull(',
                                     last_r_year_month,',0),css.this_remain = ifnull(', r_year_month,',0) ',
                                     ' where cm.id = css.user_id and css.months = "',year_months,'" ');
     prepare remain from @tempupdateremain;
     execute remain;
   
     -- 更新每个月用户所冲条数
     set @tempadd = concat(' update crm_sms_stat css inner join (select name,sum(total_count) addnum from boss_addmoney  ',
                           ' where left(add_date,7)= "',year_m,'" and total_count >=0 and name not like "%=%" and name not like "%:%" group by name) ',
                           ' x on css.username= x.name and css.months = "',year_months ,'" ',
                           ' set css.add_num = ifnull(x.addnum,0) ');
     prepare addnum from @tempadd;
     execute addnum;
            
                  
            
       
     if years = "08" then
        -- 更新通道发送数(200901之前是不分卡发和通道的)
        set @tempchannel08 = concat('update crm_sms_stat css inner join (select mt.user_id,',
                                       ' sum(length(replace(mt.dest_mobile,";","")))/11  chennel_num',
                                       ' from ',mt_sms_yearmonth,' mt ',
                                       ' group by mt.user_id) x on css.user_id = x.user_id and css.months = "',year_months,'"',
                                       ' set css.channel_num = ifnull(x.chennel_num,0) ');
       
        prepare channel08 from @tempchannel08;
        execute channel08; 
     else
         -- channel send number
         set @tempchannel = concat('update crm_sms_stat css inner join (select mt.user_id,',
                                       ' sum(length(replace(mt.dest_mobile,";","")))/11  chennel_num',
                                       ' from ',mt_sms_yearmonth,' mt where mt.channel_id != 312 ',
                                       ' group by mt.user_id) x on css.user_id = x.user_id and css.months = "',year_months,'"',
                                       ' set css.channel_num = ifnull(x.chennel_num,0) ');
       
         prepare channel from @tempchannel;
         execute channel; 
         -- card send number    
         set @tempcard = concat('update crm_sms_stat css inner join (select mt.user_id,',
                                   ' sum(substring_index(substring_index(mt.dest_mobile, "real", 1),":",-1)) as submit_card_num,',
                                   ' sum(substring_index(mt.dest_mobile,":",-1)) as real_card_num',
                                   ' from ',mt_sms_yearmonth,' mt where mt.channel_id = 312 ',
                                   ' group by mt.user_id) x on css.user_id = x.user_id and css.months = "',year_months,'"',
                                   ' set css.submit_card_num = ifnull(x.submit_card_num,0),css.real_card_num = ifnull(x.real_card_num,0) ');
         prepare card from @tempcard;
         execute card; 
     end if;    
    
end;

 



作者:admin | 分类:MySql | 评论:0 | 引用:0 | 查看:673
未知 SQLserver狂占CPU解决方案   [ 2009-07-09  |  本站原创 ]

打开操作系统启动时pae

配置项;
步骤:找到系统安装的引导位置的目录下找到boot.ini文件,默认是隐藏只读的,找到 windows2003 启动配置,在后面加上空格 /pae ,保存;重启
示例所示:  
multi(0)disk(0)rdisk(0)partition(2)\%systemroot%= "windows   server   2003   datacenter   edition "   /pae

4.1. 在windows server 2003使用sql server 2005概述
sql server 2005 支持在 windows server 2003 上动态分配 awe 映射内存。通过允许访问超过在所配置虚拟内存地址空间上设置的限制的可用物理内存,awe 可扩展 32 位操作系统上运行的应用程序的功能。

启动过程中,sql server 仅保留一小部分 awe 映射内存。需要额外的 awe 映射内存时,操作系统会动态地将其分配给 sql server。同样,如果需要更少的资源,sql server 会将 awe 映射内存返还给操作系统,以供其他进程或应用程序使用。sql server 和操作系统之间的这种平衡受到 min server memory 和 max server memory 参数的限制。

在 windows server 2003 中运行 sql server 2005 时,无需重新启动 sql server 实例,sql server 即可响应 max server memory 和 min server memory 配置选项的更改。

在 windows server 2003 下,如果服务器的物理内存小于虚拟内存地址空间上已配置的限制,则该服务器支持动态 awe 映射内存。在这种情况下使用 awe 不会对性能产生影响,但添加的物理内存超过虚拟内存地址限制时,可以在不重新启动服务器的情况下使用此物理内存。

4.2. 启用awe
对于 windows server 2003,由于 awe 映射内存管理是动态的,因此在启动过程中,只分配总可用物理内存的一小部分。

如果已成功启用此选项,当 sql server 2005 实例启动时,sql server 错误日志中将写入消息“address windowing extensions enabled”。

必须在启用 awe 之前为 sql server 帐户授予 lock page in memory 权限。

awe enabled 选项是一个高级选项。如果使用 sp_configure 系统存储过程来更改该设置,则只有在 show advanced options 设置为 1 时才能更改 awe enabled。必须重新启动 sql server 实例,awe 才会生效。

4.3. 启用锁定内存页选项(windows)
启用锁定内存页选项

在"开始"菜单上单击"运行"子菜单,然后在"打开"框中键入"gpedit.msc"。

在"组策略"控制台上,展开"计算机配置",然后展开"windows 设置"。

展开"安全设置",然后展开"本地策略"。

选择"用户权限分配"复选框。

详细资料窗格中随即显示出策略。

在详细资料窗格中,双击"锁定内存页"。

在"本地安全策略设置"对话框中,单击"添加"按钮。

在"选择用户或组"对话框中,添加有权运行 sqlservr.exe 的帐户。

4.4. 启用sql server 2005的awe支持
若要启用 awe,请将 awe enabled 设置为 1。除非指定了 max server memory 的值,否则 sql server 将保留几乎所有可用内存,只留下 128 mb 或更少。

如果已成功启用该选项,则当 sql server 2000 实例启动时,sql server 错误日志中将出现"已启用地址窗口扩展"这条消息。

awe enabled 是高级选项。如果正在使用 sp_configure 系统存储过程更改该设置,则只有

当 show advanced options 设置为 1 时才能更改 awe enabled。

 如下:设定sql 使用6g的内存

  sp_configure 'show advanced options', 1

  reconfigure

  go

  sp_configure 'awe enabled', 1

  reconfigure

  go

  sp_configure 'max server memory', 6144

  reconfigure

  go

4.5. 重新启动服务
 必须重新启动 sql server 2005 实例才能使更改生效。

 net stop mssqlserver

 net start mssqlserver

 这样,sql 服务启动后,就会把6g的内存给锁定,完全供sql使用

 

最后进行服务优化:

sc config mssqlserveradhelper start= disabled

sc config mssqlserverolapservice start= disabled

sc config sqlbrowser start= disabled

sc config msdtsserver start= disabled


net stop mssqlserveradhelper

 

net stop mssqlserverolapservice

net stop sqlbrowser

net stop msdtsserver
 



作者:admin | 分类:MSSql | 评论:0 | 引用:0 | 查看:813


 
sp_who active  --看看哪个引起的阻塞, blk
sp_lock  --看看锁住了那个资源id, objid , select object_name(objid) 得到
dbcc inputbuffer(@blk) -- 看看是那个语句

----------------------------------------------------------------------------

优化sqlserver的配置.sql

%%
******************************************************************************************************/
go


exec sp_configure "awe enabled","1"--内存可以支持64g
exec sp_configure "lightweight pooling","0"--不使用nt纤程
exec sp_configure "priority boost","1"--增加sqlserver优先级
exec sp_configure "network packet size (b)","8192"--增加sqlserver网络包的大小


reconfigure with override

go


--优化数据库设置
declare @currentdatabase sysname
select @currentdatabase = db_name((select dbid from master.dbo.sysprocesses where spid = @@spid))


exec sp_dboption @currentdatabase, "select into/bulkcopy", "true" --对大容量数据操作不记录日志
exec sp_dboption @currentdatabase, "trunc. log on chkpt.", "true" --自动截断日志
exec sp_dboption @currentdatabase, "auto create statistics", "true"--自动创建统计
exec sp_dboption @currentdatabase, "auto update statistics", "true"--自动更新统
 
 

 



作者:admin | 分类:MSSql | 评论:0 | 引用:0 | 查看:315


1.如何查看sql server2000的版本号
  select serverproperty('edition')
  select serverproperty('productlevel')
  serverproperty函数返回有关服务器实例的属性信息,详细操作可以查看sql server2000的联机帮助

2.如何查看sql server2000是否打补丁,及补丁的版本
   有两种方法可以实现:一种是查看ms-sql的关于信息;一种是利用ms-sql的语句来实现(select @@version)或者(select serverproperty('productversion'))
   microsoft sql server  2000 - 8.00.194 (intel x86)   aug  6 2000 00:57:48   copyright (c) 1988-2000 microsoft corporation  personal edition on windows nt 5.1 (build 2600: service pack 2)
   8.00.194 -——————sql server 2000 rtm(未安装补丁)
   8.00.384 -——————(sp1)
   8.00.534 -——————(sp2)
   8.00.760 -——————(sp3)
   8.00.2039 -——————(sp4) 
  另外通过copyright (c) 1988-2000 microsoft corporation中的日期也可以看出sql server2000是否打补丁,但在这里体现不出补丁的版本

 



作者:admin | 分类:MSSql | 评论:0 | 引用:0 | 查看:186


常看到死锁的问题,一般都是kill进程,但如果不查出引起死锁的原因,死锁会时常发生
可以通过查找引起死锁的的操作,就可以方便的解决死锁,现将日常解决问题的方法总结,也许对大家有帮助

1\死锁发生时,通过如下语法,查询出引起死锁的操作

use master
go
declare @spid int,@bl int
declare s_cur cursor for
select  0 ,blocked
from (select * from sysprocesses where  blocked>0 ) a
where not exists(select * from (select * from sysprocesses where  blocked>0 ) b
where a.blocked=spid)
union select spid,blocked from sysprocesses where  blocked>0
open s_cur
fetch next from s_cur into @spid,@bl
while @@fetch_status = 0
begin
if @spid =0
            select '引起数据库死锁的是: '+ cast(@bl as varchar(10)) + '进程号,其执行的sql语法如下'
else
            select '进程号spid:'+ cast(@spid as varchar(10))+ '被' + '进程号spid:'+ cast(@bl as varchar(10)) +'阻塞,其当前进程执行的sql语法如下'
dbcc inputbuffer (@bl )
fetch next from s_cur into @spid,@bl
end
close s_cur
deallocate s_cur

exec sp_who2
2\查找程序/数据库,此t_sql语法在什么地方使用
3\分析找到的,并解决问题

eg:

/*
-------------------------------------------------------
引起数据库死锁的是: 71进程号,其执行的sql语法如下

eventtype      parameters eventinfo                                       
-------------- ---------- ------------------------------------------------
language event 0         
select * from test
insert test values(1,2)


(所影响的行数为 1 行)

dbcc 执行完毕。如果 dbcc 输出了错误信息,请与系统管理员联系。
                                                                              
------------------------------------------------------------------------------
进程号spid:64被进程号spid:71阻塞,其当前进程执行的sql语法如下

eventtype      parameters eventinfo                                       
-------------- ---------- ------------------------------------------------
language event 0         
select * from test
insert test values(1,2)


(所影响的行数为 1 行)

dbcc 执行完毕。如果 dbcc 输出了错误信息,请与系统管理员联系。
                                                                              
------------------------------------------------------------------------------
进程号spid:65被进程号spid:64阻塞,其当前进程执行的sql语法如下

eventtype      parameters eventinfo                                                                                         
-------------- ---------- --------------------------------------------------------------------------------------------------
language event 0          begin tran
select * from test with (holdlock)
waitfor time '12:00'
select * from test
commit

(所影响的行数为 1 行)

dbcc 执行完毕。如果 dbcc 输出了错误信息,请与系统管理员联系。
                                                                              
------------------------------------------------------------------------------
进程号spid:73被进程号spid:64阻塞,其当前进程执行的sql语法如下

eventtype      parameters eventinfo                                                                                         
-------------- ---------- --------------------------------------------------------------------------------------------------
language event 0          begin tran
select * from test with (holdlock)
waitfor time '12:00'
select * from test
commit

(所影响的行数为 1 行)

dbcc 执行完毕。如果 dbcc 输出了错误信息,请与系统管理员联系。
*/



作者:admin | 分类:MSSql | 评论:0 | 引用:0 | 查看:171
未知 只有mdf文件的附加方法   [ 2009-07-09  |  本站原创 ]
 
主要用于只有 mdf 文件,没有 ldf 文件的修复;有 mdf、ldf文件,但附加时报错,附加不上时的修复。这个东西很有用。
步骤如下:
 1.找到备份出来的 mdf。
 2.在企业管理器里新建一个同样名字的数据库。
 3.停掉sql服务器,然后把新建的 mdf和log 文件删除掉,用原来文件替换新建的数 据库文件,log文件不要。
 4.启动数据库,并在企业管理器的数据库服务器上点右键找到属性,把其中服务器设置中允 许对系统目录直接进行修改选中。
5.把数据库改成紧急模式,查询分析器中执行: sp_configure 'allow', 1 reconfigure with override update sysdatabases set status = 32768 where name = '数据库名'
6.重建log文件: dbcc rebuild_log ('数据库名', 'e:\fdzz\database\fdzz1204_log.ldf' ) 其中 e:\fdzz\database\fdzz1204_log.ldf 为日志文件路径。
7.恢复数据库紧急模式 update sysdatabases set status = 0 where name = '数据库名'
8.把服务器设置中允许对系统目录直接进行修改取消。至此已完成。
9.然后用 dbcc checkdb ('数据库名') 看看有没有错误 
 

作者:admin | 分类:MSSql | 评论:0 | 引用:0 | 查看:500
未知 php中switch语句的用法   [ 2009-07-09  |  本站原创 ]

便于你理解, 用你的例子转换了下:
复制php内容到剪贴板
php代码:

<?php

switch($action)
{
case 'add':
       add();break;
case 'modify':
       modify();break;
case 'modifysave':
       modifysave();break();
case 'addsave':
       addsave();break;
case 'del':
       del();break;
default:
       main(); // 名称与php自带函数冲突 =.=!
}
?>
<?php function main() { ?>
内容
<?php }?>


php中switch语句的用法-类似asp中的select case语句

switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。

语法如下

代码:switch (expr) {
   case expr1:          //注意这里是冒号:
     statement1;       //这里是分号;
     break;                 //这里是分号;
   case expr2:
     statement2;
     break;
     :
     :
   default:
     statementn;
     break;
}

其中的 expr 条件,通常为变量名称。而 case 后的 exprn,通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。

代码:<?php
switch (date("d")) {
   case "mon":
     echo "今天星期一";
     break;
   case "tue":
     echo "今天星期二";
     break;
   case "wed":
     echo "今天星期三";
     break;
   case "thu":
     echo "今天星期四";
     break;
   case "fri":
     echo "今天星期五";
     break;
   default:
     echo "今天放假";
     break;
}
?>

很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。

asp中的select case

<%
select case action
case "add"
call add()
case "modify"
call modify()

case "modifysave"
call modifysave()
case "addsave"
call addsave()
case "del"
call del()
case else
call main()
end select
%>
<%sub main()%>
内容
<%end sub%>
这个是asp的语法.
在php中是哪个
 



作者:admin | 分类:PHP | 评论:0 | 引用:0 | 查看:241

<%
function testurl(url)
dim httpxml
set httpxml = createobject("msxml2.xmlhttp")
httpxml.open "head",url,false
httpxml.send
if httpxml.status = 200 then
testurl = 1
else
testurl = 0
end if
set httpxml = nothing
end function

这里的200表示是200即访问正常如果是404是的话则说明页面不存在呵

下面是实例
if testurl("http://www.goldtimes.net/lspic/price/01-19.rar")=0 then
response.redirect "http://www.nmi.cn"
else
response.redirect "http://www.hnyp.cn"
end if

%>

以上是方法一,我写了一个更简单的供大家参考使用

---------------------------------------------------------

set xmlhttp =server.createobject("microsoft.xmlhttp")
xmlhttp.open("head","http://www.nmi.cn/index.htm",false)
xmlhttp.send()
if xmlhttp.status=200 then
'文件存在
end if



作者:admin | 分类:ASP | 评论:0 | 引用:0 | 查看:264
[2] [3] [4] [5] [6] [7] [8] [9] [10] [11]  ... [49]  
Powered by Goldtimes.net © 2005-04 , Processed in 0.093750 second(s) , 5 queries