citect的数据库连接 点击:3387 | 回复:17



可爱天使

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 19回
  • 年度积分:0
  • 历史总积分:55
  • 注册:2002年5月16日
发表于:2006-07-12 15:14:00
楼主
我最近在用citect做一个工程,但实施过程中遇到了些问题,如何使现场数据定期存到一个指定的文件中,用指定的格式,SQL或ACCESS,两者的方法,请高手指教



如火

  • 精华:172帖
  • 求助:0帖
  • 帖子:803帖 | 5249回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2006-07-12 16:12:00
1楼
用ODBC比较简单。

cooker

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 79回
  • 年度积分:0
  • 历史总积分:112
  • 注册:2001年7月14日
发表于:2006-07-12 20:57:00
2楼
可以使用report功能定时将数据保存到dbase数据库中,不过保存格式只能是表格型;

mickey2005

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 2回
  • 年度积分:0
  • 历史总积分:195
  • 注册:2002年10月15日
发表于:2006-09-05 09:33:00
3楼
2楼和3楼的师兄能否给个详细的例子

hujun

  • 精华:8帖
  • 求助:0帖
  • 帖子:17帖 | 134回
  • 年度积分:0
  • 历史总积分:418
  • 注册:2006年12月29日
发表于:2006-12-19 21:08:00
4楼
ODBC应该是比较简捷的方法,可以在CitectSCADA Knowledge Base中找到例子

航行高科

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 9回
  • 年度积分:0
  • 历史总积分:116
  • 注册:2006年2月16日
发表于:2007-03-09 11:30:00
5楼
可以试试用DDE服务来做

sunplay

  • 精华:1帖
  • 求助:0帖
  • 帖子:44帖 | 1432回
  • 年度积分:0
  • 历史总积分:1732
  • 注册:2002年8月13日
发表于:2007-06-02 19:32:00
6楼
[color=#800080]如果数据不是很多,完全可以用DDE来做,很简单的。
我现在项目的报表就是利用DDE把数据写到EXCEL里,定时写、定时保存、定时打印,很方便哦!!![/color]

夏天来了

  • 精华:1帖
  • 求助:0帖
  • 帖子:17帖 | 202回
  • 年度积分:0
  • 历史总积分:282
  • 注册:2003年7月29日
发表于:2007-06-05 22:55:00
7楼
这种方法不好,很占系统资源。

☆★

  • 精华:0帖
  • 求助:0帖
  • 帖子:26帖 | 349回
  • 年度积分:685
  • 历史总积分:30422
  • 注册:2003年3月21日
发表于:2007-06-06 16:12:00
8楼
OBDC

Genius

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 83回
  • 年度积分:0
  • 历史总积分:150
  • 注册:2004年8月10日
发表于:2007-06-06 22:24:00
9楼
odbc来做比较好,速度还可以

宿允生

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 4回
  • 年度积分:0
  • 历史总积分:10
  • 注册:2007年5月29日
发表于:2007-06-25 10:12:00
10楼
我也有同样的问题,谁有详细点的例子,具体ODBC怎么实现,小弟好多都不懂,方便请把详细的资料发到我的邮箱更好,suyunsheng666@126.com
感恩不尽

tcs

  • 精华:0帖
  • 求助:0帖
  • 帖子:68帖 | 526回
  • 年度积分:0
  • 历史总积分:768
  • 注册:2004年8月25日
发表于:2007-07-02 21:26:00
11楼
您可以用美国爱康诺公司的 BridgeWorX,不需要用脚本,用组态办法就可以完成任务,很好用。试试看

food_bird

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 10回
  • 年度积分:0
  • 历史总积分:13
  • 注册:2005年6月13日
发表于:2007-07-10 10:27:00
12楼
请参考citect的knolegebase的Q1843,里面有详细的介绍通过ODBC与数据库交换数据

showday

  • 精华:0帖
  • 求助:0帖
  • 帖子:19帖 | 39回
  • 年度积分:0
  • 历史总积分:98
  • 注册:2007年3月11日
发表于:2007-07-18 13:30:00
13楼
好贴

二八

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 5回
  • 年度积分:0
  • 历史总积分:8
  • 注册:2006年11月12日
发表于:2007-08-09 16:55:00
14楼
怎么没有一个人发表ODBC的例子,我也正为这事发愁呢

food_bird

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 10回
  • 年度积分:0
  • 历史总积分:13
  • 注册:2005年6月13日
发表于:2007-08-16 16:26:00
15楼
Reading Data from an Access Table 

A SELECT query can be used to read data from and Access Table or to call an Access Query. A Query is preferred over a Table if there are many more Columns in the table than are required at the time, if the data needs to be sorted or if there is a requirement to relate or join a number of Tables. The Cicode required is as follows.

Function SQLTest 
   INT hSQL, iResult;
   hSQL = SQLConnect("DSN=ODBCTest;UID=YourUID_C;PWD=YourPWD");
   IF hSQL <> -1 Then 
      iResult = SQLExec(hSQL, "SELECT * FROM qryRecipes WHERE Recipe Between '3000' And '6000'");
      IF iResult = 0 Then 
         WHILE SQLNext(hSQL) = 0 DO 
            TraceMsg(">" + SQLGetField(hSQL, "Recipe") + "<>" +
            SQLGetField(hSQL, "Flour") + "<>" +
            SQLGetField(hSQL, "Water") + "<>" +
            SQLGetField(hSQL, "Cocoa") + "<");
         END 
         SQLDisconnect(hSQL);
      ELSE 
         Message("SQL Error", SQLErrMsg, 48);
      END 
   ELSE 
      Message("SQL Error", SQLErrMsg, 48);
   END 
END 

Writing Data to an Access Table 

To append data to an Access Table using ODBC, an SQL INSERT statement can be used.

Function SQLInsert 
   INT hSQL, iResult;
   hSQL = SQLConnect("DSN=ODBCTest;UID=YourUID;PWD=YourPWD");
   IF hSQL <> -1 Then 
      iResult = SQLExec(hSQL, "INSERT INTO tblRecipes (Recipe, Flour, Water, Cocoa) VALUES ('X1234', 2, 3, 4)" );
      SQLDisconnect(hSQL);
   END 
END 

food_bird

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 10回
  • 年度积分:0
  • 历史总积分:13
  • 注册:2005年6月13日
发表于:2007-08-16 16:27:00
16楼
Function SQLUpdate 
   INT hSQL, iResult;
   hSQL = SQLConnect("DSN=ODBCTest;UID=YourUID;PWD=YourPWD");
   IF hSQL <> -1 Then 
      iResult = SQLExec(hSQL, "UPDATE tblRecipes SET Flour = 20, Water = 30,Cocoa = 40 WHERE Recipe = 'X1234'");
      SQLDisconnect(hSQL);
   END 
END 
Function SQLDelete 
   INT hSQL, iResult;
   hSQL = SQLConnect("DSN=ODBCTest;UID=Dick_C;PWD=pulp");
   IF hSQL <> -1 Then 
      iResult = SQLExec(hSQL, "DELETE FROM tblRecipes WHERE Recipe = 'X1234'");
      SQLDisconnect(hSQL);
   END 
END 


sunplay

  • 精华:1帖
  • 求助:0帖
  • 帖子:44帖 | 1432回
  • 年度积分:0
  • 历史总积分:1732
  • 注册:2002年8月13日
发表于:2007-09-02 16:53:00
17楼
数据不多的话,用DDE,1百个点的话也就是几秒钟的事情。

热门招聘
相关主题

官方公众号

智造工程师