2008年02月29日
分为如下四个部分
非计划宕机:系统失败 RAC; 数据异常 Data guard ASM Flashback Rman Streams
计划内停机:系统改变 在线修改配置在线滚动补丁升级;数据变化 在线重定义
阅读全文>
发表于 @ 2008年02月29日 10:02:00|评论(loading...)|编辑
2007年07月19日
老有人觉得MSComm通讯控件很土,更有人大声疾呼:忘了它吧。确实当我们对串口编程有了一定的了解后,应该用API函数写一个属于自己的串口程序,由于编程者对程序了解,对程序修改自如。但我一直没有停止过用MSComm通讯控件,那么简单的东西,对付简单的任务完全可以,但当我们需要在程序中用多个串口,而且还要做很多复杂的处理,那么最好不用MSComm通讯控件,如果这时你还不愿意自己编写底层,就用这个类:CserialPort类。
这是Remon Spekreijse写的一个串口类, 地址在:
http://codeguru.earthweb.com/network/serialport.shtml
类作者Remon Spekreijse已作了一个基于对话框的同时检测4个串口示例的程序,在上面的网址和我主页的串口源码下载页也可以找到。我在这儿主要介绍如何将这个类应用到VC中基于文档的程序中。为了加深对串口数据处理的了解,我们利用这个类解决如下问题:
问题:
串口2(COM2)每隔1秒向串口1(COM1)发送的NEMA格式的报文:串头为$,串尾为*,中间为一阅读全文>
发表于 @ 2007年07月19日 09:08:00|评论(loading...)|编辑
2007年07月18日
CButtonST使用技巧(一)
作者:杜修杏
下载CButtonST示例源代码
下载CButtonST类的源代码
本篇主要包括了以下的效果:
1. 在按钮上加入Icon,使Icon和文字同时显示
2. 显示平面按钮
3. 使按钮上的图标可变
4. 设置按钮在不同状态下的底色和文字颜色
5. 设置图标和文字的位置
6. 根据Icon的形状设置按钮的形状
7. 添加Tooltips
以下是Basic Features的演示界面:
效果一:在按钮上加入Icon,使Icon和文字同时显示
假设按钮ID为IDC_BUTTON1
1. 添加成员变量
CButtonST m_btn;
2. 添加Icon资源,设其ID设为IDI_ICON1
3. 在OnInitDialog函数中初始化按钮 m_btn.SubclassDlgItem(IDC_BUTTON1,this);
m_btn.SetIcon(IDI_ICON1);
m_btn.SetFlat(FALSE);
注意:为达到最好效果,请根据Icon的大小调整按钮的大小。
阅读全文>
发表于 @ 2007年07月18日 20:32:00|评论(loading...)|编辑
第一种:
Button属性页里Style的Bitmap点上
CBitmap Bitmap;
Bitmap.LoadBitmap(IDB_BITMAP1);
HBITMAP hBitmap=(HBITMAP)Bitmap.Detach();
CButton *pButton=(CButton*)GetDlgItem(IDCANCEL);
pButton->SetBitmap(hBitmap);
感觉效果不是很好。因为图片不会自动拉伸。
第二种:
可以采用CButtonST控件,挺好用的,比MFC的那些封装好用。
第三种:
把button按钮属性设置为ower draw
然后映射onDrawItem消息
在ondraw函数内自己绘制就可以了
void CUi6Dlg::OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct)
{
if(nIDCtl == IDC_HELLO_CFAN)
{
//绘制按钮框架
UINT uStyle = DFCS_BUTTONPUSH;
//是否阅读全文>
发表于 @ 2007年07月18日 18:27:00|评论(loading...)|编辑
void CControlPrinterDlg::OnSelchangePrinters()
{
// TODO: Add your control notiflication handler code here
m_listBox2.ResetContent();
int nIndex=m_listBox.GetCurSel();
CString strPrinterName;
if (nIndex!=CB_ERR) {
m_listBox.GetText(nIndex,strPrinterName);
if (!strPrinterName.IsEmpty()) {
ListJobs((LPTSTR)(LPCSTR)strPrinterName);
}
}
}
BOOL CControlPrinterDlg::ListJobs(LPSTR szPrinterName)
{
HANDLE hPrinter;
DWORD dwNeeded,dwReturned,i;
JOB_INFO_1 *pJobInfo;
阅读全文>
发表于 @ 2007年07月18日 08:41:00|评论(loading...)|编辑
void CControlPrinterDlg::OnEnumprintters()
{
// TODO: Add your control notification handler code here
DWORD dwSize,dwPrinters;
::EnumPrinters(PRINTER_ENUM_LOCAL,NULL,5,NULL,0,&dwSize,&dwPrinters);
BYTE* pBuffer=new BYTE[dwSize];
::EnumPrinters(PRINTER_ENUM_LOCAL,NULL,5,pBuffer,dwSize,&dwSize,&dwPrinters);
if (dwPrinters!=0) {
m_listBox.ResetContent();
PRINTER_INFO_5* pPrnInfo=(PRINTER_INFO_5*)pBuffer;
for(UINT i=0;ipPrinterName);
pPrnInfo++;
}
}
delete[] pBuffe阅读全文>
发表于 @ 2007年07月18日 08:40:00|评论(loading...)|编辑
2007年05月19日
Velocity是一个开放源吗的模版引擎,由apache.org小组负责开发,现在最新的版本是Velocity1.3.1,http://jakarta.apache.org/velocity/index.html可以了解Velocity的最新信息。Velocity允许我们在模版中设定变量,然后在运行时,动态的将数据插入到模版中,替换这些变量。阅读全文>
发表于 @ 2007年05月19日 08:44:00|评论(loading...)|编辑
2007年05月16日
using System;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using MySQLDriverCS;
///
/// db 的摘要说明
///
public class db
{
public db()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
/* public static SqlConnection createCon()
{
return new SqlConnection("server=.;阅读全文>
发表于 @ 2007年05月16日 09:52:00|评论(loading...)|编辑
2007年05月14日
在ASP.NET AJAX Beta2中,UpdateProgress控件已经从“增值”CTP中移到了ASP.NET AJAX核心中。以下两篇关于UpdateProgress的文章基本翻译自ASP.NET AJAX官方网站。
主要内容
1.UpdateProgress控件简单使用
2.使用多个UpdateProgress控件
一.UpdateProgress控件简单使用
1.创建一个Web页面并切换到设计视图。
2.在工具箱的AJAX Extensions标签下,双击ScriptManager控件添加到页面中。
3.双击UpdatePanel控件添加到页面中。
4.双击UpdateProgress控件添加到页面中。
5.在UpdateProgress控件中添加文本“Progress……”。
6.在UpdatePanel中添加一个Button和一个Label。
7.设置Label的Text属性值为“Initial Page Rendered”。
8.双击Button添加Cl阅读全文>
发表于 @ 2007年05月14日 15:25:00|评论(loading...)|编辑
UpdatePanel可以用来创建丰富的局部更新Web应用程序,它是ASP.NET 2.0 AJAX Extensions中很重要的一个控件,其强大之处在于不用编写任何客户端脚本,只要在一个页面上添加几个UpdatePanel控件和一个ScriptManager控件就可以自动实现局部更新。通过本文来学习一下UpdatePanel其他的一些使用方法(第二篇)。
主要内容
1.用编程的方法控制UpdatePanel的更新
2.UpdatePanel的嵌套使用
3.同一页面上使用多个UpdatePanel
一.用编程的方法控制UpdatePanel的更新
对于UpdatePanel,我们也可以使用编程的方法来控制它的更新,可以通过ScriptManager的RegisterAsyncPostBackControl()方法注册一个异步提交的控件,并且调用UpdatePanel的Update()方法来让它更新。再次用我在前面的文章中用到的一个无聊的时间更新例子来看一下,有时候我觉得例子过于复杂更加不好说明白所要讲的内容,如下代码所示,注意B阅读全文>
发表于 @ 2007年05月14日 14:55:00|评论(loading...)|编辑
UpdatePanel可以用来创建丰富的局部更新Web应用程序,它是ASP.NET 2.0 AJAX Extensions中很重要的一个控件,其强大之处在于不用编写任何客户端脚本,只要在一个页面上添加几个UpdatePanel控件和一个ScriptManager控件就可以自动实现局部更新。通过本文来学习一下UpdatePanel简单的使用方法(第一篇)。
主要内容
1.UpdatePanel控件概述
2.UpdatePanel工作原理
3.ContentTemplate属性
4.ContentTemplateContainer属性
5.Triggers属性
一.UpdatePanel控件概述
UpdatePanel可以用来创建丰富的局部更新Web应用程序,它是ASP.NET 2.0 AJAX Extensions中很重要的一个控件,其强大之处在于不用编写任何客户端脚本,只要在一个页面上添加几个UpdatePanel控件和一个ScriptManager控件就可以自动实现局部更新。通过本文来学习一下UpdatePanel工阅读全文>
发表于 @ 2007年05月14日 14:44:00|评论(loading...)|编辑
在ASP.NET AJAX中,由于一个ASPX页面上只能有一个ScriptManager控件,所以在有母版页的情况下,如果需要在Master-Page和Content-Page中需要引入不同的脚本时,这就需要在Content-page中使用ScriptManagerProxy,而不是ScriptManager,ScriptManager 和 ScriptManagerProxy 是两个非常相似的控件。
主要内容
1.ScriptManagerProxy控件概述
2.简单示例
一.ScriptManagerProxy控件概述
在ASP.NET AJAX中,由于一个ASPX页面上只能有一个ScriptManager控件,所以在有Master-Page的情况下,如果需要在Master-Page和Content-Page中需要引入不同的脚本时,就需要在Content-page中使用ScriptManagerProxy,而不是ScriptManager,ScriptManagerProxy和 ScriptManager是两个非常相似的控件。简单定义形式如下阅读全文>
发表于 @ 2007年05月14日 14:43:00|评论(loading...)|编辑
2007年05月11日
效果如下:
这里是从Dataset里的数据生成曲线图.
我的Dataset是从表Sendrec里读取的数据,分别有Id,Sendid(订单号),Sendtime(记录时间),Sendnum(单位时间发送量/我这里是五分钟)几个字段
过程如下:
public void draw(Page page,DataSet ds,int Tnum){}
其中page是用来传递引用这个过程的页面,这样让页面是JPG方式直接向客户端输出生成的曲线图.
ds就是取出来的数据集了
Tnum只是我这里要用到的一个参数,不想让这个类去接触读取过程,所以把订单的总量直接取出后传递给它的.
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
阅读全文>
发表于 @ 2007年05月11日 14:37:00|评论(loading...)|编辑
Bitmap mybit = new Bitmap(600,400);
Graphics mygra = Graphics.FromImage(mybit);
mygra.Clear(Color.LightGray);
MemoryStream ms = new MemoryStream();
mybit.Save(ms, ImageFormat.Bmp);
Response.ClearContent();
Response.ContentType = "image/PNG";
Response.BinaryWrite(ms.ToArray());
//mybit.Save(Server.MapPath("") + @"\qq.jpg", ImageFormat.Jpeg);
//mybit.Save(Response.OutputStream, ImageFormat.Jpeg);
my阅读全文>
发表于 @ 2007年05月11日 14:18:00|评论(loading...)|编辑
using System;using System.Collections;using System.ComponentModel;using System.Data;using System.Drawing;using System.Drawing.Imaging;using System.Web;using System.Web.SessionState;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.HtmlControls;namespace GDI{ /// /// zhu 的摘要说明。 /// public class zhu : System.Web.UI.Page { protected System.Web.UI.WebControls.Image Image1; private void Page_Load(object sender, System.EventArgs e)阅读全文>
发表于 @ 2007年05月11日 14:03:00|评论(loading...)|编辑