Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共11 条记录, 每页显示 10 条, 页签: [1] [2]
[浏览完整版]

标题:请问能加快读取MDB数据库的频率吗?

1楼
tdk1 发表于:2014/5/7 10:36:06
在分笔周期把处理好的数据写入MDB数据厍,写入数据正常.但通过公式读取时发现每隔4至5秒才会刷新一次数据,请问如何才能做到实时刷新呢?
2楼
王锋 发表于:2014/5/7 10:55:06
你在什么地方读取了,建议把你的情况详细描述
3楼
tdk1 发表于:2014/5/7 11:30:14

zjif00
stockdate vclose m30 u30 l30
2014-05-07 11:12:39 2143.8 2347 104
2014-05-07 11:12:40 2144.2 1332 843
2014-05-07 11:12:40 2144.2 1328 843
2014-05-07 11:12:41 2143.8 2347 104
2014-05-07 11:12:42 2144.2 1289 852
2014-05-07 11:12:42 2144 2072 362
2014-05-07 11:12:43 2144.2 1268 852
2014-05-07 11:12:43 2144 2048 362
2014-05-07 11:12:43 2144 2048 362
2014-05-07 11:12:44 2144.2 1251 852
2014-05-07 11:12:45 2144.2 1218 852

在金字塔通过函数:

DBEXECUTE('insert into zjif00(stockdate,vclose,m30,u30) values(cdate('&day1[DATACOUNT]&'),'&numtostr(c[DATACOUNT],1)&','&numtostr(UPVOL,0)&','&numtostr(DOWNVOL,0)&')');

写入,结果是正常的.

 

在同一个金字塔用如下公式读取:

//连接数据库
DATABASE('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\asset.mdb');
//检索数据库表
DBTABLE('Select * From ZJIF00 Order By StockDate');
//读取数据

UPVOL:DBVALUE('M30');
DOWNVOL:DBVALUE('U30');

 

有4至5秒钟显示直线,然后变回正确图形,又有4至5秒钟直线,再变回正确图形.

 

详细我录了视频,必要的话可通过QQ和邮件发过去的,请在信息告知Q号或邮箱,谢谢!!

 

4楼
王锋 发表于:2014/5/7 11:51:28

怀疑是写库的部分跟读取部分冲突了导致的.

你试试将写库PEL公式代码关掉,只保留读库代码再看看

5楼
tdk1 发表于:2014/5/7 12:27:08

我用的是两个公式,一个写一个读.关了写厍的公式就没数字更新啦.....

你们可否测试一下:在分笔周期下用一公式写入收盘价,再用另一公式读出,在数据库里数据正确的前提下,一样都会有4至5秒才刷一次的情况.延时过长这个功能基本没法用了.

6楼
王锋 发表于:2014/5/7 19:02:28

方便的话,把你的公式和数据库附件传到论坛吧,我们测测

7楼
王锋 发表于:2014/5/8 15:31:12

公式1

RUNMODE : 0;

DATABASE('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\test.mdb');

GLOBALVARIABLE : x=0;
if ISLASTBAR then
begin
if x != time then
begin
x := time;
myDate := NUMTOSTR(year,0)&'/'&NUMTOSTRex(month,0,2)&'/'&NUMTOSTRex(day,0,2)&' '&NUMTOSTRex(hour,0,2)&':'&NUMTOSTRex(minute,0,2)&':'&NUMTOSTRex(second,0,2);

mysql:='insert into zjif00(stockdate,vclose) values(#'&myDate&'#,'&NUMTOSTR(c,2)&')';
//MSGOUT(1,mysql);
DBEXECUTE(mysql);
end
end

公式2

DATABASE('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\test.mdb');

//检索数据库表
DBTABLE('Select * From ZJIF00 Order By StockDate');
//读取数据

UPVOL:DBVALUE('vCLOSE');

 

我们用简单的上述公式进行测试,没发现你说的问题.

注意公式1涉及2个函数目前版本没有,请等待3.2BETA3版发布后即可正常使用.

 

数据库附件请见附件

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:test.rar

8楼
BBGGG 发表于:2015/11/20 17:03:19
 edfffffffffffffff
9楼
BBGGG 发表于:2015/11/20 17:07:04
 是慢几秒钟,和楼主说的一样
10楼
王锋 发表于:2015/11/20 17:08:52
accss数据库本身没法针对高频的,如果是要高频处理,建议采取不要使用数据库。
共11 条记录, 每页显示 10 条, 页签: [1] [2]


Powered By Dvbbs Version 8.3.0
Processed in 0.05469 s, 3 queries.