以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://www.weistock.com/bbs/index.asp)
--  高级功能研发区  (http://www.weistock.com/bbs/list.asp?boardid=5)
----  数据库操作读取记录的问题  (http://www.weistock.com/bbs/dispbbs.asp?boardid=5&id=154126)

--  作者:qq代人发帖
--  发布时间:2017/5/25 14:07:07
--  数据库操作读取记录的问题
找不到任何操作数据库的样例代码,只有官方一点点东西。
现在遇到问题,请各位帮忙:

DATABASE(\'Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\\myModel.mdb\');
//DBTABLE(\'Select f2 From t1 where f1="1"\');

周期:DBVALUE (\'period\');
name:= DBString (\'name\');

现在取得了第一行记录了, 下面的记录该如何取? 看了很久函数,怎么都找不到?

--  作者:奉若圭臬
--  发布时间:2017/5/25 14:14:50
--  

这个问题是我的。请不要回答用VBA了。不想就吃顿饭,还要先去买种子,种庄稼


--  作者:王锋
--  发布时间:2017/5/25 14:21:29
--  

http://www.weistock.com/bbs/dispbbs.asp?boardid=5&Id=401

这里的范例中里的表中不是有多条记录的吗?

 

你只要将StockDate字段中的日期设置好就可以,金字塔运行时会自动将该日期对应到K线位置上


--  作者:奉若圭臬
--  发布时间:2017/5/25 14:44:19
--  
只是想一次查出一批在外部已经清洗分析过的数据,在初始化里一次处理完毕而已,结果到现在都找不到办法。这和StockDate这种用户应用级的东西扯不到一起去。
--  作者:奉若圭臬
--  发布时间:2017/5/25 14:45:34
--  
正因为表里有多条数据,连接一次,一个循环处理完毕,而不是必须等每根K线去连数据库,慢死去。
--  作者:FexTel
--  发布时间:2017/5/25 16:50:00
--  
stockdate只是一种示例方式,你可以指定序列取值。也是要指定字段的,你要在表里面加进去

DATABASE(\'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\test.mdb\');
DBTABLE(\'Select * From zjif06 where 序列=1);
cc:DBVALUE(\'收盘价\');



--  作者:yukizzc
--  发布时间:2017/5/25 17:12:16
--  

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

for i = 1 to 10 DO
begin
DBTABLE(\'Select * From SH600000 where ID=3\');
cc:=DBVALUE(\'STOCKCLOSE\');
msgout(islastbar,NUMTOSTR(cc,2));
end


自己在表里建立一个 ID序号列,然后程序里循环下计算 ,我这边制定了 id=3你可以自行换成前面的i变量

具体sql语句where如何设置条件是变量形式,用户可百度或自行尝试


--  作者:奉若圭臬
--  发布时间:2017/5/25 20:51:03
--  
楼上大侠的答案似乎可以路可以通,可只是把例子中的id=3换成变量,金字塔好像还是不支持 ——必须是一个常量字符串。试了所有的可能,就是不成。 唉,真不知道金字塔支持数据库支持的到底是什么,折磨用户啊。
--  作者:FexTel
--  发布时间:2017/5/26 8:50:30
--  
pel调用数据库本身就属于比较简单的操作,你要完全支持各种应用可以考虑使用VB和C++
--  作者:奉若圭臬
--  发布时间:2017/6/4 17:42:30
--  

最终发现还是需要用VBA才能解决,这个PEL数据库支持去掉吧,实在是彻底的鸡肋。