我正在尝试使用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);
当将此print语句输入工作台时(没有" ??"),这些值会成功输入到相应的列中。
我想某个数据类型存在问题,但我似乎无法弄清楚它是什么。 任何建议都会很棒。谢谢
答案 0 :(得分:0)
澳大利亚的一家绘画公司说:“问题已解决”
MT4方查询:
query = StringConcatenate(“insert into”,tablename,“(MQLTime,RTime,Open,High,Low,Close,Volume)值(STR_TO_DATE('”,time,“','%Y。%m。% d%H:%i:%s'),CONCAT('“,RDATE,”','',RTIME,“'),”,open,“,”,high,“,”,low,“,” ,关闭, “”,卷, “);”);
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
再次,谢谢。