数据库访问例子://连接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
1.某条记录的全部字段的话,只能在读取到记录之后一个个读取。
2.看函数说明的话,DBTABLE返回的是数据集,其他的2个是取得单值的。
3.msgout打印出那么多是因为你使用的是逐K模式,然后你这语句每次读的都是同样的一条记录。取得值是完全一样的。
以下是引用lh1988在2017/7/20 14:57:57的发言:
DBTABLE返回的数据集如何访问呢,比如我前面的代码DBTABLE('Select * From @Code@ Order By StockDate'),应该会取到7条记录,如何遍历取出每条记录的字段值呢?
1.读取到某一条记录之后:使用DBTABLE这个函数分别读取这条记录的各个字段值就行了。返回的值会限定在当前这个记录下的字段范畴内。
2.读取到的数据集,目前基本上只能处理第一条记录(比如排序的第一条记录)。
想要更好的操作数据库,只能用VBA或者C++了。毕竟是easy language 没办法那么灵活多变。
stockdate
必须是标准格式,

此主题相关图片如下:qq图片20170720151429.jpg