Chinaunix首页 | 论坛 | 博客
  • 博客访问: 16497699
  • 博文数量: 5645
  • 博客积分: 9880
  • 博客等级: 中将
  • 技术积分: 68081
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-28 13:35
文章分类

全部博文(5645)

文章存档

2008年(5645)

我的朋友

分类:

2008-04-28 20:56:26

下载本文示例代码
天极IT资讯短信服务 电脑小技巧 function check4() { if (dn.mobile.value.length!=11) { alert("手机号码不正确!"); dn.mobile.focus(); return false; } return true; } 资费:包月5元 手机: 介绍:细处着手,巧处用功。高手和菜鸟之间的差别就是:高手什么都知道,菜鸟知道一些。电脑小技巧收集最新奇招高招,让你轻松踏上高手之路。   引言  众所周知,VC 是一个功能十分强大的应用程序开发工具,而Microsoft Access是一个中小型的数据库管理系统,可以处理多种数据信息。因此,在使用VC 链接ODBC中小型数据库的时候,常常选用Access作为数据库来源。实际应用中,VC 和Access的数字类型数据(如整形、浮点型和双精度型)进行链接的时候,简便易用,但是在VC 与Access数据库进行日期/时间类型数据的交换时,经常会出现一些意想不到的问题。例如:在VC 中存入一条记录的时候,VC 会自动为记录的时间字段加上日期;无法用通用的SQL语句同时对记录的日期和时间字段进行查找,等等。这类问题是由于VC 对日期/时间类型变量定义的缺陷而产生的。   下面我们就对VC 和Access日期/时间的类型做一简要的说明,探讨产生的原因,并举例说明解决的方法。  VC 和Access日期/时间类型的数据交换方式  Visual C 的日期时间控件(Date Time Picker)是由一个静态控件加日历控件组成,用于让用户选择日期,也可以让用户选择输入时间。它的三种格式如下:  (1) Short Date显示日期(格式9/10/1970)  (2) Long Date显示日期(格式September 10,1970)  (3) Time 显示时间(格式8:00:00)  Microsoft Access为日期/时间数据提供了7种格式:通用日期 如9/19/97 14:32:10 PM;完整日期 如Wednesday,February 13,1997;中日期 如19-Jun-94;简短日期 如6/19/97;完整时间 如05:34:10PM;中时间 如05:34;短时间 如17:34。由此可见,除了通用日期,Microsoft Access的日期/时间字段可以分为两大类:"日期"字段和"时间"字段。  我们在编制ODBC数据库的时候就可以将VC 中属性为Short Date(Long Date)日期时间控件与Access中的日期字段、VC 中属性为Time的日期时间控件和Access中的时间字段一一对应起来,很方便的实现数据的读取和其他操作。  但是这时候问题出现了。我们常常需要在VC 中向数据库添加纪录,当加入一条新记录(如:日期9/19/99,时间18:30:00)后,打开Access数据库发现,在新添加记录中,时间字段显示为:70-1-1 18:30:00,也就是说VC 为每条添加记录的时间字段自动加上了日期-70年1月1日。这就为我们今后的程序设计带来了隐患。  究其原因,原来是VC 将所有的CTime类型变量全部换算成秒来计算,它将70年1月1日0:00:00定义为0时刻,其后所有的日期全部换算为距70年1月1日0:00:00的秒数。因此就不难理解VC会自动为时间字段添加年月日了。但这时假如我们在VC 中用SQL语句对时间(如:18:30:00)进行查找,那我们到底是应该查找当前所在的时间(1999-9-9 18:30:00)呢,还是查70-1-1 18:30:00呢;如果我们要查找同时满足99年9月19日前后15天和18:30:00前后30分钟的记录,又该如何查找呢。下面我们讨论如何解决这个问题。共2页。 1 2 : 天极IT资讯短信服务 电脑小技巧 function check4() { if (dn.mobile.value.length!=11) { alert("手机号码不正确!"); dn.mobile.focus(); return false; } return true; } 资费:包月5元 手机: 介绍:细处着手,巧处用功。高手和菜鸟之间的差别就是:高手什么都知道,菜鸟知道一些。电脑小技巧收集最新奇招高招,让你轻松踏上高手之路。   引言  众所周知,VC 是一个功能十分强大的应用程序开发工具,而Microsoft Access是一个中小型的数据库管理系统,可以处理多种数据信息。因此,在使用VC 链接ODBC中小型数据库的时候,常常选用Access作为数据库来源。实际应用中,VC 和Access的数字类型数据(如整形、浮点型和双精度型)进行链接的时候,简便易用,但是在VC 与Access数据库进行日期/时间类型数据的交换时,经常会出现一些意想不到的问题。例如:在VC 中存入一条记录的时候,VC 会自动为记录的时间字段加上日期;无法用通用的SQL语句同时对记录的日期和时间字段进行查找,等等。这类问题是由于VC 对日期/时间类型变量定义的缺陷而产生的。   下面我们就对VC 和Access日期/时间的类型做一简要的说明,探讨产生的原因,并举例说明解决的方法。  VC 和Access日期/时间类型的数据交换方式  Visual C 的日期时间控件(Date Time Picker)是由一个静态控件加日历控件组成,用于让用户选择日期,也可以让用户选择输入时间。它的三种格式如下:  (1) Short Date显示日期(格式9/10/1970)  (2) Long Date显示日期(格式September 10,1970)  (3) Time 显示时间(格式8:00:00)  Microsoft Access为日期/时间数据提供了7种格式:通用日期 如9/19/97 14:32:10 PM;完整日期 如Wednesday,February 13,1997;中日期 如19-Jun-94;简短日期 如6/19/97;完整时间 如05:34:10PM;中时间 如05:34;短时间 如17:34。由此可见,除了通用日期,Microsoft Access的日期/时间字段可以分为两大类:"日期"字段和"时间"字段。  我们在编制ODBC数据库的时候就可以将VC 中属性为Short Date(Long Date)日期时间控件与Access中的日期字段、VC 中属性为Time的日期时间控件和Access中的时间字段一一对应起来,很方便的实现数据的读取和其他操作。  但是这时候问题出现了。我们常常需要在VC 中向数据库添加纪录,当加入一条新记录(如:日期9/19/99,时间18:30:00)后,打开Access数据库发现,在新添加记录中,时间字段显示为:70-1-1 18:30:00,也就是说VC 为每条添加记录的时间字段自动加上了日期-70年1月1日。这就为我们今后的程序设计带来了隐患。  究其原因,原来是VC 将所有的CTime类型变量全部换算成秒来计算,它将70年1月1日0:00:00定义为0时刻,其后所有的日期全部换算为距70年1月1日0:00:00的秒数。因此就不难理解VC会自动为时间字段添加年月日了。但这时假如我们在VC 中用SQL语句对时间(如:18:30:00)进行查找,那我们到底是应该查找当前所在的时间(1999-9-9 18:30:00)呢,还是查70-1-1 18:30:00呢;如果我们要查找同时满足99年9月19日前后15天和18:30:00前后30分钟的记录,又该如何查找呢。下面我们讨论如何解决这个问题。共2页。 1 2 : 下载本文示例代码


VC与Access时间数据交互修正方法VC与Access时间数据交互修正方法VC与Access时间数据交互修正方法VC与Access时间数据交互修正方法VC与Access时间数据交互修正方法VC与Access时间数据交互修正方法VC与Access时间数据交互修正方法VC与Access时间数据交互修正方法VC与Access时间数据交互修正方法VC与Access时间数据交互修正方法VC与Access时间数据交互修正方法VC与Access时间数据交互修正方法VC与Access时间数据交互修正方法VC与Access时间数据交互修正方法VC与Access时间数据交互修正方法
阅读(137) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~