0

我正在尝试使用 mysql 包装器通过 libmysql.dll 从 MT4 插入一些数据。我已经成功地创建和选择了一个数据库,创建了一个表,甚至从表中检索条目(这些条目是从 mysql 工作台输入到表中的)。我现在无法使用 mt4 中的数据填充表。

问题:运行以下插入查询在 mt4 终端返回错误 1064。

query = StringConcatenate ("insert into ",tablename," (`MQLTime`, `RTime`, `Open`, `High`, `Low`, `Close`, `Volume`) values ​​('" ,time, "','" ,RTIME, "'," ,open, "," ,high, "," ,low, "," ,close, "," ,volume, ");" );

表(和列数据类型)生成如下:

query = StringConcatenate("CREATE TABLE ",dbName,".",tablename," 
    (MQLTime CHAR NOT NULL, RTime CHAR NULL, Open DOUBLE NULL, 
    High DOUBLE NULL, Low DOUBLE NULL, Close DOUBLE NULL, Volume BIGINT NULL, 
    PRIMARY KEY (MQLTime));");

打印到 mt4 终端的插入查询表明错误位于查询的 VALUES 部分(“??”)

insert into EURUSD_M1 (`MQLTime`, `RTime`, `Open`, `High`, 
`Low`, `Close`, `Volume`) values ??('2014.07.30 13:00:00','2014.07.30 13:00:00',1.34018,1.34027,1.34015,1.34027,79);

当这个打印语句被输入到工作台时(没有“??”),值被成功地输入到相应的列中。

我想某处的数据类型存在问题,但我似乎无法弄清楚它是什么。任何建议都会很棒。谢谢

4

1 回答 1

0

正如澳大利亚一家油漆公司所说:“问题解决了”

MT4端查询:

query = StringConcatenate("插入 ",tablename," (MQLTime,RTime,Open,High,Low,Close,Volume) 值 (STR_TO_DATE('",time,"','%Y.%m.%d %H :%i:%s'),CONCAT('",RDATE," ','",RTIME,"'),",open,",",high,",",low,",",close, “,“,体积,”);”);

MT4 输出:

插入 EURUSD_M1 (MQLTime,RTime,Open,High,Low,Close,Volume) 值 (STR_TO_DATE('2014.05.20 01:40:00','%Y.%m.%d %H:%i:%s '),CONCAT('20140520 ','01:40:00'),1.37093,1.37093,1.37092,1.37093,3);

MySQL 输出:

2014-05-19 17:14:00, 20140519 17:14:00, 1.37202, 1.37209, 1.37201, 1.37202, 59

再次谢谢你。

于 2014-08-01T08:52:42.257 回答