My Blog! blog.gkong.com   

Tip of my blog

新年快乐!


阅读(2544) 评论(0)
标签(TAG):

   CVI是工业测控编程的利器,当CVI要处理和分析大量的环境数据时,好的编程模型是使用上数据库来保存成行千上万的数据,然后CVI通过ODBC接口,使用SQL语言来实现复杂的数据操作(条件选择,Max,Min,Avg,指定时间Select等功能)。
 CVI的SQL tools是以ODBC为接口来链接各种支持ODBC的数据库的,要注意的是,CVI在通过ODBC来选择数据库表的各记录时所写的SELECT要符合该数据库的SQL特点,如ACCESS的SQL就和ANSI SQL有些区别,所以不能直接把其他数据库SQL 语句搬过来就用,下面是很常用的,CVI 选择ACCESS's datetime数据项时的SELECT语句,在ACCESS中要用format来格式化datetime输出,CVI可以用
resultcode = DBBindColChar (hstat, 4, 50, value_drinkTime, &status_drinkTime, "");来片历,就可读出ACCESS's datetime,并正确格式化。
NOTE1:CVI SQL Tools 本身没有与datetime相关的绑定实现,只能以SQL的方式发送需求给数据库,让数据库格式化好CVI所支持的格式后,CVI才能正确读取数据库中的记录。
NOTE2:CVI 所能直接绑定的类型如下:
/* Bind Columns method functions */
extern int SQLFUNC DBBindColChar(int hstmt, int colNum, unsigned long stringSize, char *valPtr, long *varStatus, char *fmt);
extern int SQLFUNC DBBindColShort(int hstmt, int colNum, short *valPtr, long *varStatus);
extern int SQLFUNC DBBindColInt(int hstmt, int colNum, int *valPtr, long *varStatus);
extern int SQLFUNC DBBindColLongLong(int hstmt, int colNum, __int64 *valPtr, long *varStatus);
extern int SQLFUNC DBBindColFloat(int hstmt, int colNum, float *valPtr, long *varStatus);
extern int SQLFUNC DBBindColDouble(int hstmt, int colNum, double *valPtr, long *varStatus);
extern int SQLFUNC DBBindColBinary(int hstmt, int colNum,
unsigned long binSize, void* valPtr, long* varStatus);
NOTE3:下面是用ACCESS的查询设计工具测试好SQL后,CVI再调用是很好的CVI开发数据库程序的“编程模式”。

by 进化中的兔子 发表于:2010/3/6 16:41:25
回复:CVI正确读出ACCESS中的Datetime
引用 | 举报回复

如果是SQL sever 采用这样的也可以不??

by (匿名游客) 发表于:2014/6/27 19:34:12
My subject | 我的主题

New entries | 新发表

Messages Board | 留言板


Guest Comments | 新评注


Blogger Login | 登陆栏
Blog Infomation | 信息栏
博客名称:嵌入式系统&虚拟仪器 日志总数:450 评论数量:277 访问次数:1780158 建立时间::2005年10月25日
Blog Infomation | 搜索栏
Blog Infomation | 收藏栏

XML RSS 2.0

嵌入式系统&虚拟仪器
© COPYRIGHT 2004 ALL RIGHTS RESERVED http://www.gkong.com

中华工控网 | 联系我们 | 工控论坛首页 | 工控博客首页 | 博客注册 | 博客登陆

工控博客管理联系邮箱:工控博客服务邮箱

中华工控网 © Copyright 2013. All rights reserved.