以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (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=2423) |
-- 作者:xtortoise -- 发布时间:2010/8/10 13:22:58 -- [求助]如何成功将数据写入数据库? DATABASE(\'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\Test.mdb\'); 没办法写入数据,错误在哪,请教!
请版主给予一个具体可用的例子,感谢 [此贴子已经被作者于2010-8-10 13:23:45编辑过]
|
-- 作者:admin -- 发布时间:2010/8/10 16:35:01 -- DBEXECUTE(\'insert into RB(stockclose) values(close)\');
这里的close是字符串变量,无论哪个数据库都不会认得
DATABASE(\'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\Test.mdb\');
再试 |
-- 作者:xtortoise -- 发布时间:2010/8/10 17:07:38 -- 没搞明白 INSERT INTO 语句为: INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
我将stockclose定义数据类型为:数字 ; close 是我要写入的收盘价也应该是:数字
如果使用NUMTOSTR(close,2) 不就是字符值? [此贴子已经被作者于2010-8-10 17:08:42编辑过]
|
-- 作者:admin -- 发布时间:2010/8/10 17:13:24 -- 建议你先补习基础的编程语言的基本语法结构,字符串和变量的主要区别。 |
-- 作者:xtortoise -- 发布时间:2010/8/11 9:12:20 -- 加载公式提示 : 没有为命令对象设置命令。 |
-- 作者:admin -- 发布时间:2010/8/11 22:45:22 --
|
-- 作者:xtortoise -- 发布时间:2010/8/12 14:17:57 -- 增加中间一列后,可成功写入数据; 但写入数据的结果与想实现的效果有较大出入;
在实时的接收行情中加载公式,软件基本上就不可能运行甚至崩溃; 打开数据库查看,里面是有数据,而且当相多,细心看会发现有周期重复的数据;
个人的想法是将当前周期的数值写入数据库,下一个周期的数值增加入下一条记录; 但看到的结果却是每一个周期,语句就将从第一个周期至当前周期的每个数值一个个写入数据库,然后下一个周期又重复一次,是否就这个原因导致运行不了崩溃?
如果只要实现我原有想法,只将当前周期记录写入,过往的记录不再重复写入应该如何编写?
|
-- 作者:admin -- 发布时间:2010/8/12 14:34:31 -- 你这是想抓取行情数据,目前来看只能用VBA来实现 |
-- 作者:wattwei -- 发布时间:2010/8/12 21:20:37 -- 有一种办法可以不取过去的数据 加上语句 DATABASE(\'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\Test.mdb\'); DBTABLE2(\'Select * From RB\'); If Not(IsLastBar) Then exit; DBEXECUTE(\'insert into RB(stockclose) values(\'&NUMTOSTR(close,2)&\')\'); 这一语句的意思是只考虑最后一个数据BAR 但是实验下来的效果不理想,即使是最后一个bar,金字塔也要操作多次,估计了下大概2秒钟一次。如果是等时间间隔(需admin确认),这种方法可能可以用来采集些盘口数据。 如果想对应一根K线,仅仅采集一次数据,如何实现,方法如下 1.在数据表中加多个数据项,cnt,设定为索引不重复 2.改写公式DBEXECUTE(\'insert into RB(cnt,stockclose) values(\'&NUMTOSTR(barpos-1,0)&\',\'&NUMTOSTR(ref(close,1),5)&\')\'); 利用索引不重复的机理,使每个bar的数据仅写入表一次。注意写入数据要使用ref(...,1),由于当前的bar的数据没有完全形成,只能记录上一根bar的数据 |
-- 作者:xtortoise -- 发布时间:2010/8/13 9:18:38 -- 为了不使行情软件负担过重,影响数据的接收,已将工作迁到VBA上去了;
但遇到一个问题:使用RegReportNotify触发事件,执行写入数据的动作; 查看数据库,发现同一条记录有不定数量的重复记录数(大概1~5条),这怎会事? |