显示下一条  |  关闭

风云游侠的营帐

自由盈天地,风云伴游侠

 
 
 
 
 
 

用VC存取数据库中的大对象

2010-12-15 15:21:07 阅读90 评论0 152010/12 Dec15

在用Visual C++编写应用程序时,常会遇到如何存取数据库中大对象的问题。大对象文档以二进制数据形式保存在BLOB类型的字段中,这些大对象可能是Word、Execl或图片文件等,目前多数数据库都支持BLOB类型的字段。

  VC存取这些大对象数据有众多方法,如OLE、ActiveX等,事实上VC的MFC提供了一个很方便的实现方法,即利用MFC提供的CLongBinary类可以方便地实现存取BLOB字段。下面笔者将举例说明。

  首先用以下SQL语句建一个含BLOB字段的数据表:

  CREATE TABLE REPORTTABLE(REGISTERNUM CHAR(12) NOT NULL,REPORT BLOB(5M),PRIMARY KEY(REGISTERNUM));

  建完该表后,配置好ODBC数据源,设定数据源名为ABCDB。

  我们用VC的MFC AppWizard建一个新的Project,设定项目名为ABC,下一步选Single Document,在提示你想包含什么样的数据库支持时,选Header files only,然后完成建立。

  接着在Resources的Dailog资源中新建一个FormView,打开该FormView,启用ClassWizard,建立一个新类,设定类名叫CReportRecordSet,Base Class选CRecordSet,然后选ABCDB为数据源,再选择表REPORTTABLE,启动ClassWizrd,并建立新类CReportFormView,Base

作者  | 2010-12-15 15:21:07 | 阅读(90) |评论(0) | 阅读全文>>

MFC应用程序中浏览PDF、Word文件

2010-12-14 12:37:07 阅读116 评论0 142010/12 Dec14

随着网络技术的迅速发展,越来越多的电子图书资料能够更加方便的从网上被检索、下载。其文件格式也不仅限于HTML格式的Web页,PDF、Word等多种格式也逐渐成为网络资料交换的主流文件格式。尤其在一些科研、技术类网站,有相当数量的科技文献都是以上述格式来发布的,而且从传统习惯上大多数科研人员也更倾向于阅读PDF或Word格式的文献资料。

  虽然使用Acrobat Reader和Word等专用软件能够比较方便的阅读上述格式的资料文件,但如果需要在自己编写的应用程序中打开上述格式文档仍免不了自己动手进行处理。有多种途径可以实现此目的:通过创建子进程直接调用外部Acrobat Reader或Word应用程序打开指定文档;使用COM自动化技术在应用程序中嵌入Acrobat Reader或Word而打开指定文档;使用合适的ActiveX控件等等。其中,第一种方法是在应用程序之外打开文档,会使程序显的不是很“专业”,第二种方法同样会在打开文档而使嵌入对象处于现场激活状态时将Acrobat Reader或Word程序控制菜单嵌入到自己的程序当中,而在许多情况下这并不是我们所希望的。本文将针对最后一种方式,即通过对“Microsoft Web浏览器”ActiveX控件的使用而在应用程序中完成对PDF、Word格式文档文件的打开、显示。

作者  | 2010-12-14 12:37:07 | 阅读(116) |评论(0) | 阅读全文>>

c语言调用系统命令

2010-12-8 14:32:56 阅读273 评论0 82010/12 Dec8

system(执行shell   命令)    

表头文件     #include <stdlib.h>

定义函数     int   system(const   char   *   string);

函数说明     system()会调用fork()产生子进程,由子进程来调用/bin/sh-c   string来执行参数string字符串所代表的命令,此命令执行完后随即返回原调用的进程。在调用system()期间SIGCHLD   信号会被暂时搁置,SIGINT和SIGQUIT   信号则会被忽略。

返回值     如果system()在调用/bin/sh时失败则返回127,其他失败原因返回-1。若参数string为空指针(NULL),则返回非零值。如果 system()调用成功则最后会返回执行shell命令后的返回值,但是此返回值也有可能为system()调用/bin/sh失败所返回的127,因 此最好能再检查errno   来确认执行成功。

附加说明     在编写具有SUID/SGID权限的程序时请勿使用system(),system()会继承环境变量,通过环境变量可能会造成系统安全的问题。

范例     #include <stdlib.h>

作者  | 2010-12-8 14:32:56 | 阅读(273) |评论(0) | 阅读全文>>

gtk+密码框的实现

2010-12-7 19:18:07 阅读202 评论0 72010/12 Dec7

Text Entry:文本输入框,允许输入单行文字并显示它,它可以派生出很多控件,比如密码框、微调控件等。GtkEntry它是一个十分灵活控件,它能尽可能的输入并显示最长的字符串。

1. 相关的API函数能设置它的最大允许输入的字符长度:

void gtk_entry_set_max_length (GtkEntry *entry, gint max_length); 2. 我们也可以设置该entry是否可以编辑:

void gtk_editable_set_editable (GtkEditable *editable, gboolean is_editable); 函数参数中的is_editable为FALSE时,*editable处于不能编辑状态。

3. 密码框的实现:

void gtk_entry_set_invisible_char (GtkEntry *entry, gunichar inv_char);

void gtk_entry_set_visibility (GtkEntry *entry, gboolean visible); 函数gtk_entry_set_visibility中参数visible为FALSE时,设置*entry中的输入文本不可见。 gtk_entry_set_invisible_char用来设置不可见的*entry控件文本以字符inv_char来显示。默认为星号“*”。

4. 获得输入的文本内容:

const gchar*

作者  | 2010-12-7 19:18:07 | 阅读(202) |评论(0) | 阅读全文>>

Ubuntu升级命令

2010-12-2 10:54:11 阅读145 评论0 22010/12 Dec2

 如果针对版本升级命令:

  

  sudo apt-get update

  sudo update-manager -c -d然后选选择 upgrade

  

  如果是普通升级的命令:

  

  sudo apt-get update

  sudo apt-get upgrade如果针对单一软件升级的命令:

  

  sudo apt-get update

  sudo apt-get upgrade package_name_your_want_to_upgrade如果你要全部升级的话:

  

  sudo apt-get dist-upgrade

本篇文章来源于 黑客基地-全球最大的中文黑客站 原文链接:http://www.hackbase.com/tech/2009-07-27/54278.html

作者  | 2010-12-2 10:54:11 | 阅读(145) |评论(0) | 阅读全文>>

查看所有日志>>

 
 
 
 
 
 
 
 
 
 
 
下载音乐盒  曲目表歌词秀
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 我要留言
 
 
 
留言列表加载中...
 
 
 
 
 
 
 
 

广西壮族自治区 梧州市

 发消息  写留言

 
The life in my hand,the world in my hand.
 
博客等级加载中...
今日访问加载中...
总访问量加载中...
最后登录加载中...
 
 
 
 
 
 
 
模块内容加载中...
 
 
 
 
 
 
 
博友列表加载中...
 
 
 
 
 
 
 
列表加载中...
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2012

   
创建博客 登录  
 关注