孔雀开发小屋

专注并致力于手机客户端开发
<2024年3月>
252627282912
3456789
10111213141516
17181920212223
24252627282930
31123456

统计

  • 随笔 - 103
  • 文章 - 0
  • 评论 - 251
  • 引用 - 0

常用链接

留言簿(38)

随笔分类

随笔档案

关注的博客

朋友的博客

搜索

  •  

最新评论

阅读排行榜

评论排行榜

mysql存储过程之游标遍历数据表

今天写一个mysql存储过程,根据自己的需求要遍历一个数据表,因为对存储过程用的不多,语法不甚熟悉,加之存储过程没有调试环境,花了不少时间才慢慢弄好,故留个痕迹。

 1 BEGIN
 2      DECLARE Done INT DEFAULT 0;
 3     
 4      DECLARE CurrentLingQi INT;
 5     
 6      DECLARE ShizuName VARCHAR(30);
 7      /* 声明游标 */
 8      DECLARE rs CURSOR FOR SELECT NodeName, LingQi FROM socialrelation;
 9      /* 异常处理 */
10      DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET Done = 1;
11     
12      /* 打开游标 */
13      OPEN rs;  
14     
15      /* 逐个取出当前记录LingQi字段的值,需要进行最大值的判断 */
16      FETCH NEXT FROM rs INTO ShizuName, CurrentLingQi;     
17      /* 遍历数据表 */
18      REPEAT
19            IF NOT Done THEN
20               SET CurrentLingQi = CurrentLingQi + 60;
21               /* 如果更新后灵气值大于允许的最大值,则就设置为最大值 */
22               IF CurrentLingQi >= 1800 THEN
23                  UPDATE socialrelation SET LingQi = 1800 WHERE NodeName = ShizuName;
24               ELSE
25               /* 否则,正常更新 */
26                  UPDATE socialrelation SET LingQi = LingQi + 60 WHERE NodeName = ShizuName;
27               END IF;
28            END IF;
29           
30      FETCH NEXT FROM rs INTO ShizuName, CurrentLingQi;
31 
32      UNTIL Done END REPEAT;
33     
34      /* 关闭游标 */
35      CLOSE rs;
36 END



posted @ 2010-01-07 14:34 孔雀 阅读(6506) | 评论 (0)编辑 收藏
CxImage入门

CxImage是什么

CxImage是C++实现的功能强大的、能处理多种文件格式的图像管理类。它能够简单快速的实现图像的导入、保存、显示和变换。

为什么使用CxImage

u 它是平台无关的

u 它是自由软件、免费的、开源的

u 支持多种平面格式:BMP、GIF、ICO、TGA、JPEG、PCX、PNG、TIFF、MNG、RAS等,还有更多!

u 功能强大:几何变换、图像处理、图像格式转换等。

u 使用简单:下面的入门教程会给你展示这一点。

CxImage的功能

Constructors 构造函数

Initialization 初始化

File 文件操作,主要是编解码

Generic 图像基本变化

DSP 图像处理操作

Painting 绘图操作

Multiple Images 多帧图像操作

Transparency 透明层操作

Palette 调色板操作

Pixels 像素操作

Region Selection 区域选择操作

Alpha Channel Alpha通道操作

Layers 图像层操作

Attributes 图像属性操作

Miscellaneous 杂项

呵呵,够强大吧!一个类库再好,不能为我们所用,则一切都是空谈,怎么用,请看详细步骤:

CxImage使用入门

1. 去 这里:http://www.codeproject.com/KB/graphics/cximage.aspx,下载CxImage的源代码。在 codeproject没有账户的兄弟姐妹需要先注册一个哦,非常简单,几秒钟就可以了!该页面上有两个可以下载的东东,一个是CxImage的源代码, 另一个是用CxImage类库开发的一个完整的Demo,你可以看一下这个Demo,就知道它的功能有多强大了!

2. 编译CxImage。解压源码包,在解压后的目录下有一个CxImageLib.dsw工作空间文件,使用VC++ 6.0 打开该工作空间文件。做以下事情:

Project->Settings->C/C++, 在Category下拉列表中选择Code Generation,将Use rum-time libary中选择MultiThread DLL.在 Category下拉列表中选择 Precompiled Headers中,选择第一 项: Not using Precompiled headers.

Build->Batch Build->勾选你要编译的版本库。默认情况下是每个库都有四个版本,分别是Debug、Release、Unicode Debug、Unicode Release.选择你想要编译的版本即可。

等待几分钟,即可编译好。

新建立一个文件夹,如mycximage。在该文件夹下新建一个header文件夹和一个lib文件夹。将CxImage下的所有头文件都拷贝到header文件夹下,将刚才所有生成的lib文件拷贝到lib文件夹下。至此,你已经拥有了CxImage类库。

打开VC++6.0,新建立一个基于对话框的MFC应用程序,叫Test。我们来完成一个将BMP位图转换成JPEG格式的小程序。在对话框上画一个按钮,双击按钮,响应事件函数。

将刚才我们建立好的mycximage文件夹拷贝到你的工程目录下。在TestDlg.cpp文件顶部,加入以下代码:

#include ”mycximage/header/ximage.h”

#pragma comment(lib, ”mycximage/lib/png.lib”)

#pragma comment(lib, ”mycximage/lib/libdcr.lib”)

#pragma comment(lib, ”mycximage/lib/jpeg.lib”)

#pragma comment(lib, ”mycximage/lib/zlib.lib”)

#pragma comment(lib, ”mycximage/lib/tiff.lib”)

#pragma comment(lib, ”mycximage/lib/jasper.lib”)

#pragma comment(lib, ”mycximage/lib/cximage.lib”)

#pragma comment(lib, ”mycximage/lib/mng.lib”)

在你的事件响应函数中添加一下代码:

CxImage image;

CString strFileName; // 图像文件名

CFileDialog dlg( TRUE, ”BMP”, NULL, OFN_OVERWRITEPROMPT | OFN_HIDEREADONLY, ”所有图像文件(*.*)|*.*|BMP图像文件(*.BMP)|*.BMP|JPG格式图像(*.JPG)|*.JPG||”);

dlg.DoModal();

// 获取文件名

strFileName = dlg.GetFileName();

// 判断文件名是否为空

if (strFileName.GetLength() == 0)

{

return;

}

// 加载BMP位图

image.Load( strFileName.GetBuffer( strFileName.GetLength()), CXIMAGE_FORMAT_BMP );

// 判断图像是否有效

if (image.IsValid())

{

// 判断图像颜色数

if (!image.IsGrayScale())

image.IncreaseBpp( 24 );

// 设置Jpeg图像的质量

image.SetJpegQuality( 80 );

// 将位图转换成JPEG格式图像

image.Save(”export.jpg”,CXIMAGE_FORMAT_JPG);

}

呵呵,看看效果吧!你已经完成了将指定位图转换成JPEG格式的功能!就是这么简单!

后记

如果各位XDJM按照我的步骤一步一步来,应该是肯定可以成功的!

本文中所述的是在VC++ 6.0中完成。而对于编译好的库,在VS2005中也是可以直接用的。如果上述同样的代码在VS2005中编译不能通过,你需要在工程属性中将字符集设置为Not Set,编译即可通过!

posted @ 2009-12-31 23:15 孔雀 阅读(1559) | 评论 (1)编辑 收藏
写在09年末

09年的最后一天!

晚上,互易中国的客服向我提醒说我的域名到期,该续费了,我说不续了。打算以后就在CPP博客安家了。

回首09年,感慨很多。在09年的尾巴尖上,把博客建立起来。

迎接2010。


posted @ 2009-12-31 22:36 孔雀 阅读(255) | 评论 (0)编辑 收藏
仅列出标题
共11页: First 3 4 5 6 7 8 9 10 11