tag:blogger.com,1999:blog-6027720561701794729.post7794469444880731882..comments2020-06-28T18:21:38.926+09:00Comments on 『Expert advisor』は、おもしろい!: Sqlite3を使って相互のデータを確認できるか試してみた。bighopehttp://www.blogger.com/profile/12010565338366501707noreply@blogger.comBlogger14125tag:blogger.com,1999:blog-6027720561701794729.post-56534050420561992922012-04-20T13:13:21.834+09:002012-04-20T13:13:21.834+09:00ご返信ありがとうございます。
技術がないのでコンパイルはできませんがsqlite3_step が ...ご返信ありがとうございます。<br /><br />技術がないのでコンパイルはできませんがsqlite3_step が SQLITE_DONEであれば0を返すようにすれば正常になるようですね。<br /><br />いただいた前バージョンを使用させていただきます。cupienoreply@blogger.comtag:blogger.com,1999:blog-6027720561701794729.post-63537165108253656452012-04-20T09:51:55.330+09:002012-04-20T09:51:55.330+09:00cupieさんへ
はじめまして。
ご質問の内容ですが、v2.0は、下記の様になっているのが原因だと思...cupieさんへ<br />はじめまして。<br />ご質問の内容ですが、v2.0は、下記の様になっているのが原因だと思います。コメントなど書き換えていませんでした。。orz <br />バージョンを落して頂けると対応できると思います。以下が以前のバージョンです。<br />https://docs.google.com/file/d/0B42sh1xkCfgtbFNfZTV0TTlUS1NRNHJlYnlaNHRWQQ/edit<br /><br /><br />////////////////////////////////////////////////////////////////////////////<br />//int sqlite_next_row_n (int sleeptime,int handle_db,int handle_qr);<br />// ※sleeptime(停止時間(ms)<br />// ※次の行を取得する 。<br />// ※戻り値(1:あり 0:なし)<br />////////////////////////////////////////////////////////////////////////////<br />__declspec(dllexport) int __stdcall sqlite_next_row_n (int sleeptime,int handle_db,int handle_qr){<br /> sqlite3_stmt *stmt = (sqlite3_stmt*)handle_qr;<br /> sqlite3 *db = (sqlite3*)handle_db;<br /> int ret = 0;<br /> int i = 0;<br /> <br /> while(sqlite3_step (stmt)<100){<br /> while(sqlite3_busy_timeout(db,sleeptime)!=0){<br /> if(i>1000)return -1;<br /> i++;<br /> }<br /> if(ret>1000)return 0;<br /> ret++;<br /> }<br /> return 1;<br /> //ret = sqlite3_step (stmt);<br /> //return ret == SQLITE_ROW ? 1 : 0;<br /> //return ret;<br />}bighopehttps://www.blogger.com/profile/12010565338366501707noreply@blogger.comtag:blogger.com,1999:blog-6027720561701794729.post-1963888282240158502012-04-20T02:37:31.362+09:002012-04-20T02:37:31.362+09:00すいません、上記ぐだぐだ書きましたが
sql = "SELECT s_date, valu...すいません、上記ぐだぐだ書きましたが<br />sql = "SELECT s_date, value FROM tblA"; <br />handle_query =sqlite_query_n (handle_db, sql, cols);<br /> <br />while (sqlite_next_row_n (1, handle_db, handle_query) == 1)<br />{<br />//hoge hoge<br />}<br />でなぜかループがずっと続くのが原因のようでした。<br />原因がわかりましたらご教示ください。cupienoreply@blogger.comtag:blogger.com,1999:blog-6027720561701794729.post-24426939944242135332012-04-20T01:56:09.575+09:002012-04-20T01:56:09.575+09:00はじめまして。
expert advisorからdbを使いたく、こちらのラッパーを利用させていただ...はじめまして。<br /><br />expert advisorからdbを使いたく、こちらのラッパーを利用させていただいてるのですが上手くいかないことがあります。<br /><br />テーブルに2000個ぐらいレコードがあり、SQLで<br />SELECT * FROM tblTest LIMIT 10<br />として、sqlite_next_row_nがずっと回ってしまいます(おそらく2000回)。レコードは10個分しか返っていないようで、10個のレコードが200回ループしているようです。<br /><br />ついでですがsqlite3.mqhのsqlite_query_nのコメントに戻り値がhandle_dbと書いてありますがhandle_qrですよね。<br /><br />今後の進化に大変期待をしております。cupienoreply@blogger.comtag:blogger.com,1999:blog-6027720561701794729.post-41951484512796686932012-04-19T16:17:40.531+09:002012-04-19T16:17:40.531+09:00Hi, reptile
There is a problem in b418. It is bett...Hi, reptile<br />There is a problem in b418. It is better not to use <br />http://forum.mql4.com/47037/page2<br />To copy the library is the only sqlite3_wrapper.dll<br />(´・ω・)b good luck!bighopehttps://www.blogger.com/profile/12010565338366501707noreply@blogger.comtag:blogger.com,1999:blog-6027720561701794729.post-23781915874487963942012-04-19T02:17:19.914+09:002012-04-19T02:17:19.914+09:00Many thanks bighope! I was in hope you can help an...Many thanks bighope! I was in hope you can help and.. now EventHist works and export to sqlite ok! <br />Strange case.. start works after I found build 418 and instal this.Then b419 ok.Poor MQ : )<br />For other user.Coz this case is crazy and complicated.I sugest to copy all files to \experts\libraries what provide bighope I don't know why but when i made this everything works ok.. I repeat this case many time with other instances of mt4 418/9 and when I copied all then works if not or selected files when I want found what realy is need then no reaction.. very strange.. coz I belived that only .dll and .def is need. After copy all I deleted other and only .dll in \experts\libraries and work!OMG.. crazy mt4.And don't forgot about sqlite3.dll in amin folder of mt4 :D If this not helps windows\system32..<br /><br />Once again thx bighope!<br />Bigchaos in this comment but I tested this wraper many times on few builds and always something was wrong :D Today looks work.Backing to coding..reptilehttps://www.blogger.com/profile/07294073688662746080noreply@blogger.comtag:blogger.com,1999:blog-6027720561701794729.post-53499170863337620262012-04-18T11:44:08.271+09:002012-04-18T11:44:08.271+09:00Hi, reptile
I made the save the file. Please confi...Hi, reptile<br />I made the save the file. Please confirm.<br />This HistData.db was created in 419build.<br />As an example, I have created a data USDJPYM5.<br />The input is not a problem.<br />Output, there is a problem listed in the blog.<br />Thank you for your comment!<br />https://docs.google.com/open?id=0B42sh1xkCfgtdkdib3hpMU1TTTAbighopehttps://www.blogger.com/profile/12010565338366501707noreply@blogger.comtag:blogger.com,1999:blog-6027720561701794729.post-75008032939285036402012-04-18T05:02:03.746+09:002012-04-18T05:02:03.746+09:00Can you provide HistData.db ?
Is this wraper worki...Can you provide HistData.db ?<br />Is this wraper working good with 419build? I have script EventHist script + db and no reaction..reptilehttps://www.blogger.com/profile/07294073688662746080noreply@blogger.comtag:blogger.com,1999:blog-6027720561701794729.post-17392075011221813322012-03-31T23:02:21.737+09:002012-03-31T23:02:21.737+09:00kartzさんへ
貴重な情報をありがとうございます。
SQLの文法エラーに関しては、以下のコード...kartzさんへ<br /><br />貴重な情報をありがとうございます。<br /><br />SQLの文法エラーに関しては、以下のコードを作成し確認しています。(SQLを固定してみました。)しかし、結果は、同じ現象が発生します。。orz<br /><br />https://docs.google.com/open?id=0B42sh1xkCfgteXQ4bjJ3bEpRN21GVEhyazJBSllJQQ<br /><br /><br />【複数のプロセスから同時に使用】は、知りませんでした。。。orz<br /><br />DBの保存場所のファイルシステムは、、NTFSを選択しているので問題ないはずです。<br /><br />最後の『SQLiteは別のプロセスによってロックされているファイルにアクセスしようとすると、 デフォルトの動作では、SQLITE_BUSY返します。sqlite3_busy_handler()またはsqlite3_busy_timeout()API関数を使用してCコードからこの動作を調整することができます。』<br /><br />これが原因ぽいですね。<br /><br />busy関数を使て調整してみます^^;<br /><br /><br />2012年3月31日22:59<br />削除bighopehttps://www.blogger.com/profile/12010565338366501707noreply@blogger.comtag:blogger.com,1999:blog-6027720561701794729.post-28655602873687549442012-03-31T17:37:48.133+09:002012-03-31T17:37:48.133+09:00もしかして…。
ご存じとは思いますが、SQLite を複数のプロセスから同時に使用する際の注意点に...もしかして…。<br /><br />ご存じとは思いますが、SQLite を複数のプロセスから同時に使用する際の注意点については SQLite の FAQ をご覧下さい。<br /><br />http://www.sqlite.org/faq.html#q5kartznoreply@blogger.comtag:blogger.com,1999:blog-6027720561701794729.post-23801898346520135302012-03-31T16:32:25.684+09:002012-03-31T16:32:25.684+09:00こんにちは。
> 確認した内容を記載します。
> ※409:更新時に挙動が不安定となっ...こんにちは。<br /><br />> 確認した内容を記載します。<br />> ※409:更新時に挙動が不安定となった。不安定の原因は、足の作成タイミングのズレが原因?<br /><br />limit=iBars(Symb,Tframe)-counted_bars-1;<br />の下に、<br />if (limit <= 0) return(0);<br />が要るんじゃないでしょうか。SQL の文法違反になりますので。<br /><br />入れたら 409 で更新時も動きました。kartznoreply@blogger.comtag:blogger.com,1999:blog-6027720561701794729.post-79251388646975841402012-03-30T01:47:06.901+09:002012-03-30T01:47:06.901+09:00どういたしまして。
自分のコメントを読み直して気が付きましたが、
C/C++ ではなく MQL4 ...どういたしまして。<br /><br />自分のコメントを読み直して気が付きましたが、<br />C/C++ ではなく MQL4 なので、<br /><br />「table が未定義状態で …」<br /> ↓<br />「table が未設定 (空文字列) で …」<br /><br />と訂正しておきます orz。kartznoreply@blogger.comtag:blogger.com,1999:blog-6027720561701794729.post-53050597875623255942012-03-30T01:25:39.483+09:002012-03-30T01:25:39.483+09:00kartzさんへ
ご指摘ありがとうございます。
コードを修正致しました。
何度もすみません。
作動状...kartzさんへ<br />ご指摘ありがとうございます。<br />コードを修正致しました。<br />何度もすみません。<br />作動状況について再確認いたします。bighopehttps://www.blogger.com/profile/12010565338366501707noreply@blogger.comtag:blogger.com,1999:blog-6027720561701794729.post-31564779863729216772012-03-30T00:15:59.813+09:002012-03-30T00:15:59.813+09:00こんばんは。
export_sqlite.mq4 を拝見して、気付いた箇所だけコメントします。実行...こんばんは。<br /><br />export_sqlite.mq4 を拝見して、気付いた箇所だけコメントします。実行はしていません。<br /><br />if(handle_db == 0){<br /> string table = StringConcatenate(Symb,Tframe);<br /> handle_db = sqlite_open_n (DB);<br />}<br />(中略)<br />query = StringConcatenate(…, table, …);<br /><br />となっていますが、2回目には handle_db != 0 のはずですので、table が未定義状態でクエリに突入してしまいます。動いていたのは、たまたま table が上書きされずに内容が保持されていたためだと思います。<br /><br />static string とするのが簡単ですかね。<br /><br />table を大域変数にして、sqlite_open_n() は init() に入れる方が、deinit() の sqlite_close_n() とバランスがとれるような気もしますが。kartznoreply@blogger.com