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 ステートメントがワークベンチに入力されると ("??" なしで)、値が適切な列に正常に入力されます。
どこかにデータ型の問題があると思いますが、それが何であるかを理解できないようです。どんな提案も素晴らしいでしょう。ありがとうございました