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);

この print ステートメントがワークベンチに入力されると ("??" なしで)、値が適切な列に正常に入力されます。

どこかにデータ型の問題があると思いますが、それが何であるかを理解できないようです。どんな提案も素晴らしいでしょう。ありがとうございました

4

1 に答える 1

0

オーストラリアの塗装会社の言葉: 「問題は解決しました」

MT4 側クエリ:

query = StringConcatenate ("insert into ",tablename," (MQLTime,RTime,Open,High,Low,Close,Volume) values (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 に答える