visual c++杂记
控制台应用程序增加图标
新建文件icon.rc,与图标文件icon.ico放在同一目录下
MAINICON ICON icon.ico
用visual studio打开另存为res文件。
新建一个项目,在资源里添加进刚才的res文件,编译就可以了。
控制台程序不显示控制台
修改程序入口
#pragma comment(linker, "/subsystem:windows /entry:mainCRTStartup")
新建文件icon.rc,与图标文件icon.ico放在同一目录下
MAINICON ICON icon.ico
用visual studio打开另存为res文件。
新建一个项目,在资源里添加进刚才的res文件,编译就可以了。
修改程序入口
#pragma comment(linker, "/subsystem:windows /entry:mainCRTStartup")
一般的sql插入语句,当要插入的长度大于4000的时候,数据库就会报错。
可以使用dbms_lob包来处理,先插入一个空的clob值,再将其取出,利用dbms_lob包将数据写入,再更新表。(blob同理)
#创建表
DROP TABLE "SCOTT"."pre_test";
CREATE TABLE "SCOTT"."pre_test" (
"id" NUMBER(8) NULL,
"message" CLOB NULL
);
insert into "pre_test" ("message") values (empty_clob());
待续...
由于时间较长,手上目前木有Oracle数据库可供测试,以下代码为伪代码,不能正常运行,但能说明流程:
select message into x;
dbms_lob.write(x, ...);
update "SCOTT"."pre_test" set message=x;
IE下input的padding是根据input里面的值的长度来的,当值的长度小于input的长度时input的左右padding表现在框上面,而当值的长度大于框的长度时,padding则表现在值上面,只有把值拖到最后面的时候才能看见padding。
这和标准浏览器有很大的区别,也是很头疼的地方。所以在IE下最好使用margin,而不是padding。
http://redis.io/download 这儿有,不多说。要注意的一点,redis没有make install
;所以安装包直接放在/usr/local/redis
目录下就好了。
cd /usr/local/redis
cp redis.conf /etc/redis.conf
cd /usr/local/redis/src
ln -s redis-cli /usr/bin/redis-cli
ln -s redis-server /usr/bin/redis-server
对配置文件进行修改
daemonize yes
logfile /dev/null
# 设置最大内存
maxmemory
#!/bin/bash
source /etc/init.d/functions
BIN=/usr/bin
CONFIG=/etc/redis.conf
PIDFILE=/var/run/redis.pid
[ -r "$SYSCONFIG" ] && source "$SYSCONFIG"
RETVAL=0
prog="redis-server"
desc="Redis Server"
start() {
if [ -e $PIDFILE ];then
echo "$desc already running...."
exit 1
fi
echo -n $"Starting $desc: "
daemon $BIN/$prog $CONFIG
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
return $RETVAL
}
stop() {
echo -n $"Stop $desc: "
killproc $prog
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog $PIDFILE
return $RETVAL
}
restart() {
stop
start
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
condrestart)
[ -e /var/lock/subsys/$prog ] && restart
RETVAL=$?
;;
status)
status $prog
RETVAL=$?
;;
*)
echo $"Usage: $0 {start|stop|restart|condrestart|status}"
RETVAL=1
esac
exit $RETVAL
存为redis文件,放到/etc/init.d/redis, chmod +x redis
<?php
class Server {
private $authenticated = false;
public function auth($authcode) {
if($authcode === '123456789') {
$this->authenticated = true;
return true;
} else {
throw new SoapFault('403', '403 Forbidden');
}
}
public function getData() {
if(!$this->authenticated) {
throw new SoapFault('403', '403 Forbidden');
}
$data = array(
'text' => 'ni mei a'
);
return json_encode($data);
}
}
/*//生成wsdl文件
include("SoapDiscovery.class.php");
$disco = new SoapDiscovery('Server','Server');
$handle = fopen('server.wsdl', 'w+');
fwrite($handle, $disco->getWSDL());
fclose($handle);
*/
$objSoapServer = new SoapServer("server.wsdl");
// $objSoapServer->setClass("Server");
$serv = new Server;
$objSoapServer->setObject($serv);
$objSoapServer->handle();
<?php
try {
$client = new SoapClient('server.wsdl',array("exceptions" => 1));
$authvalues = new SoapVar(array('authcode' => '123456789',), SOAP_ENC_OBJECT);
$header = new SoapHeader('urn:Server', 'auth', $authvalues, false, SOAP_ACTOR_NEXT);
$client->__setSoapHeaders(array($header));
$data = $client->getData();
var_dump($data);
} catch (SoapFault $e) {
echo $e->faultstring;
}
$db = new PDO('mysql:host=localhost;dbname=mydb;charset=utf8', 'root', '');
$rs = $db->prepare('SELECT * FROM pre_member m LEFT JOIN pre_group g ON m.groupid=g.gid WHERE m.username=:username');
$rs->execute(array(':username' => $username));
//fetchObject()
while($row = $rs->fetch()) {
//...
}
//每次操作完之后都要关闭游标,否则下次运行sql语句的时候会出现问题。
$rs->closeCursor();