Rss & SiteMap

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

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

标题:数据库访问函数具体用法

1楼
lh1988 发表于:2017/7/20 14:10:53
数据库访问例子:
//连接d:\test.mdb数据库
DATABASE('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\test.mdb');
//检索数据库表
DBTABLE('Select * From @Code@ Order By StockDate');
//读取STOCKCLOSE字段数据
//cc:=DBVALUE('STOCKCLOSE');
cc:=DBSTRING('stockdate');
MSGOUT(1,cc);
----------------------
比如当前读取名为SH600000表,表中有7条记录:
SH600000
stockdate stockopen stockhigh stocklow stockclose stockvolume stockamount stockadvance stockdecline stockopenint stockqt stockopenv stockopena
2008/12/8 星期一 13.85 14.81 13.85 14.77 1574854 2251423232 1 1 0 2796 15094 21009634
2008/12/5 星期五 13.25 13.7 13.2 13.57 881932 1187705856 2336 2263 0 2851 6318 8371350
2008/12/4 星期四 13.24 13.94 13.17 13.36 1895744 2556767744 2288 2390 0 2850 13445 17801180
2008/12/3 星期三 12.31 12.94 12.23 12.9 1284943 1611821824 2343 2304 0 2876 5951 7325274
2008/12/2 星期二 11.87 12.28 11.69 12.07 728934 872567232 2337 2193 0 2850 7924 9405752
2008/12/1 星期一 11.9 12.3 11.63 12.19 624735 750631872 2288 2154 0 2772 3606 4290583
2008/11/28 星期五 12.65 12.65 11.9 11.99 1122281 1359461120 2657 1930 0 2923 3878 4905670
我想访问每条记录的每个字段,怎么写?DBTABLE、DBVALUE、DBSTRING的返回值是类型是表格吗?
上述代码我在调试(模式使用的选中的逐K线,仅刷最后一根K线)时,MSGOUT(1,cc);为什么打出很多条相同的记录,如下(部分):

2017/07/20 13:55:51  2008-12-08 00:00:00
2017/07/20 13:55:51  2008-12-08 00:00:00
2017/07/20 13:55:51  2008-12-08 00:00:00
2017/07/20 13:55:51  2008-12-08 00:00:00
2017/07/20 13:55:51  2008-12-08 00:00:00
2017/07/20 13:55:51  2008-12-08 00:00:00
2017/07/20 13:55:51  2008-12-08 00:00:00
2017/07/20 13:55:51  2008-12-08 00:00:00
2017/07/20 13:55:51  2008-12-08 00:00:00
2017/07/20 13:55:51  2008-12-08 00:00:00
2017/07/20 13:55:51  2008-12-08 00:00:00
2017/07/20 13:55:51  2008-12-08 00:00:00
2017/07/20 13:55:51  2008-12-08 00:00:00
2017/07/20 13:55:51  2008-12-08 00:00:00
2017/07/20 13:55:51  2008-12-08 00:00:00
2017/07/20 13:55:51  2008-12-08 00:00:00
2017/07/20 13:55:51  2008-12-08 00:00:00
2017/07/20 13:55:51  2008-12-08 00:00:00
2017/07/20 13:55:51  2008-12-08 00:00:00
2017/07/20 13:55:51  2008-12-08 00:00:00
2017/07/20 13:55:51  2008-12-08 00:00:00
2017/07/20 13:55:51  2008-12-08 00:00:00
2楼
FireScript 发表于:2017/7/20 14:50:20

1.某条记录的全部字段的话,只能在读取到记录之后一个个读取。

2.看函数说明的话,DBTABLE返回的是数据集,其他的2个是取得单值的。

3.msgout打印出那么多是因为你使用的是逐K模式,然后你这语句每次读的都是同样的一条记录。取得值是完全一样的。

3楼
lh1988 发表于:2017/7/20 14:57:57
DBTABLE返回的数据集如何访问呢,比如我前面的代码DBTABLE('Select * From @Code@ Order By StockDate'),应该会取到7条记录,如何遍历取出每条记录的字段值呢?
4楼
FireScript 发表于:2017/7/20 15:13:09
以下是引用lh1988在2017/7/20 14:57:57的发言:
DBTABLE返回的数据集如何访问呢,比如我前面的代码DBTABLE('Select * From @Code@ Order By StockDate'),应该会取到7条记录,如何遍历取出每条记录的字段值呢?

1.读取到某一条记录之后:使用DBTABLE这个函数分别读取这条记录的各个字段值就行了。返回的值会限定在当前这个记录下的字段范畴内。

2.读取到的数据集,目前基本上只能处理第一条记录(比如排序的第一条记录)。

 

想要更好的操作数据库,只能用VBA或者C++了。毕竟是easy language 没办法那么灵活多变。

5楼
yukizzc 发表于:2017/7/20 15:15:06

stockdate

必须是标准格式,


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20170720151429.jpg
图片点击可在新窗口打开查看
共5 条记录, 每页显示 10 条, 页签: [1]


Powered By Dvbbs Version 8.3.0
Processed in 0.03125 s, 2 queries.