少奋斗十年的经验
少奋斗十年的经验
少奋斗十年的经验
sqlserver中判断表是否存在
网络编程之同步,阻塞,异步,非阻塞
WINDOWs平台,利用CreateProcess实现进程复制
mysql 更新TEXT类型字段
MemCached 带配置文件自定义版本
项目经理、系统架构师或技术骨干应该具备的水平
最近突然有点空了,研究了下开源的桌面型数据库sqlite,由于只看了两天,加上在网上搜索了些东西,认识可能不是特别深,在此贴出来,与大家分享下,愿与大家共同进步.
李开复经典语录
Mysql复制的各种操作
[[转载]]
今天在做开发的时候,突然要用IIS,然后发现了有这么一个问题,使用后,果然解决了问题.收藏.
win2003 sp2无法安装或重装IIS的解决方法
情况是这样的,服务器系统是windows 2003并开了自动更新,因此自动更新到了windows 2003 sp2版,昨天用系统自带的IIS备份程序恢复了一下站点,结果发现所有站点都打不开了,出现“Service Unavailable”的提示,反复调试未果,决定重新安装IIS6。
由于系统是使用原来是使用SP1版,因此也是SP1的I386包复制到了系统工具软件文件夹中备用,可问题出来了,使用SP1的I386重新安装IIS6的时候,总是提示文件找不到文件无法复制,就算是跳过了,下一个照样都是无法复制,就算用原来的系统安装盘也是一样不行。
上网查了一下,才知道是系统的安全性数据库出了问题, secedit.sdb到底是怎么样的一个数据库,我也无从所知,哈哈。据说是一个二进制的安全数据库!
Google最近两年势头很猛,不断的收购,推出新产品。让我们来看看被这家公司奉为真理的十大信条吧。
近期使用数据库比较频繁,有些小技巧与大家分享一下.
目前我正在做的是高并发的写数据库的操作.其中对于insert与update的操作做得比较多.因此呢这里面就有一个效率的问题了.
如果每次都去select,然后再去检测一下,是否存在这么一条记录,这样的话,总感觉有点慢的.
后来无意中借鉴了一下,前不久写的一篇关于直接脚本建表的文章.就是检测一下是否存在某张表,如果不存在的话,就创建一张表.
我们在insert与update也是一样的,可以在insert的时候也exists一下.然后发现没有的话,就会自动插入这条记录.
写了一个监控服务的程序,共享上来,大家共同学习一下.网上找了很久,没什么收获,就自己写了一个.
CMonitorServiceDlg *g_pDlg = NULL;
DWORD WINAPI MonitorServices(LPVOID lpParameter)
{
char serviceName[128];
memset(serviceName, 0, sizeof(serviceName));
sprintf(serviceName, "Data Acquisition Service");
SetDlgItemText(g_pDlg->m_hWnd, IDC_SERVICE_NAME, serviceName);
SC_HANDLE schSCManager = NULL, schService = NULL;
SERVICE_STATUS ssStatus;
DWORD dwOldCheckPoint;
try
{
schSCManager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
if (schSCManager != NULL)
{
schService = OpenService(schSCManager, serviceName, SC_MANAGER_ALL_ACCESS);
if (schSCManager != NULL)
{
while (true)
{
if (QueryServiceStatus(
schService, // handle to service
&ssStatus) ) // address of status information
{
if (ssStatus.dwCurrentState == SERVICE_STOPPED)
{
StartService(schService, 0, NULL);
Sleep(20000);
}
}
}
}
}
}
catch(...)
{
}
if (schService) CloseServiceHandle(schService);
if (schSCManager) CloseServiceHandle(schSCManager);
return 0;
}
上面只写了一个线程代码,这个是主体程序.
1.schSCManager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
打开服务控制管理.
2.schService = OpenService(schSCManager, serviceName, SC_MANAGER_ALL_ACCESS);
打开指定服务,获取服务句柄.
3.QueryServiceStatus(schService, &ssStatus)
查询指定服务句柄的状态.
4.CloseServiceHandle(schService);
关闭服务句柄.(与线程一样)
printf的格式控制的完整格式:
% - 0 m.n l或h 格式字符
下面对组成格式说明的各项加以说明:
①%:表示格式说明的起始符号,不可缺少。
②-:有-表示左对齐输出,如省略表示右对齐输出。
③0:有0表示指定空位填0,如省略表示指定空位不填。
④m.n:m指域宽,即对应的输出项在输出设备上所占的字符数。N指精度。用于说明输出的实型数的小数位数。为指定n时,隐含的精度为n=6位。
⑤l或h:l对整型指long型,对实型指double型。h用于将整型的格式字符修正为short型。
mysql slave server 上进程停止, 重启后不接收master上的更新
mysql>show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.10.168
Master_User: admin
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000055
Read_Master_Log_Pos: 720589499
Relay_Log_File: YD227-relay-bin.000108
Relay_Log_Pos: 505783744
Relay_Master_Log_File: mysql-bin.000051
Slave_IO_Running: Yes
Slave_SQL_Running: No
Replicate_Do_DB: try2u
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 1062
Last_Error: Error 'Duplicate entry '370' for key 4' on query. Default database: 'webdb'. Query: 'INSERT INTO webdb.t_coin_update SET spid = 370 , uid = 1863421 , got = 0 , room_id = 235789'
看到一篇文字,猛然间才发现,我已经是这个范围之内了 我的朋友们,你们也看看吧,为了自己看看哦