您现在的位置是:主页 > MT5交易平台 >

如何从MQL5MQL4访问MySQL数据库

2022-05-15 12:02MT5交易平台 人已围观

简介如何从MQL5MQL4访问MySQL数据库 怎样从MQL5MQL4探访MySQL数据库PAGE/NUMPAGES怎样从MQL5(MQL4)探访MySQL数据库先容MQL与数据库的交互题目并非新事物,但它们照旧是合系的。愚弄数据库​​可能极大...

  如何从MQL5MQL4访问MySQL数据库怎样从MQL5MQL4探访MySQL数据库PAGE/NUMPAGES怎样从MQL5(MQL4)探访MySQL数据库先容MQL与数据库的交互题目并非新事物,但它们照旧是合系的。愚弄数据库​​可能极大加强MetaTrader的可塑性:存储并剖释代价史书,从一个买卖平台拷贝买卖至另一个平台,供应及时报价/买卖,正在效劳器端按期举行深度剖释准备,运用web本领监督并长途局限账户。总之,有很众种操纵试验从MQL和MySQL的组合之中获益,极少计划曾经正在代码库里展现。比方 HYPERLINK

  PAGE/NUMPAGES怎样从MQL5(MQL4)探访MySQL数据库先容MQL与数据库的交互题目并非新事物,但它们照旧是合系的。愚弄数据库​​可能极大加强MetaTrader的可塑性:存储并剖释代价史书,从一个买卖平台拷贝买卖至另一个平台,供应及时报价/买卖,正在效劳器端按期举行深度剖释准备,运用web本领监督并长途局限账户。总之,有很众种操纵试验从MQL和MySQL的组合之中获益,极少计划施工施工计划施工计划类型布局施工计划营销筹办计划范本施工结构计划(施工计划)曾经正在代码库里展现。比方 HYPERLINK包装-用于MetaTrader4的链接库 便是如许的项目,很众圭臬员起初自身开采,正在异日还可扩充。我以为,这种处理计划的舛错之一是分派特别数组用来从数据库中读数据。另一个项目 HYPERLINK日记1-用于MetaTrader4的EA 愈加专业,它不运用包装来探访规范篮球课程规范儿科分级照顾规范分级照顾细化规范党员勾当室成立尘肺规范片链接库libmysql.dll。是以,它不行正在MetaTrader4编译版600+上事务,因为 char 字符类型曾经被 wchar_t 取代,且运用 int 类型取代了 TMYSQL 布局指针,导致正在项目中发作内存暴露(内存分派不行局限/开释)。另一个风趣的项目是 HYPERLINK链接库-用于MetaTrader5的链接库。它是相当卓着的完毕。但是作家列出了极少舛错,正在运用时有强制范围。任何人若需求正在他们的项目中运用数据库,有两个选项:要么开采自身的处理计划,并会意它的每一个个人,或者运用/改编任何第三方处理计划,会意怎样运用它们并检测是否会阻滞他们的项目。正在我开采一个相当纷乱的主动买卖时,就要面临如许的须要性和两个选项。遵从现有项目原委探索,且探索了良众的处理计划后,我认识到,已涌现的实践计划均无助于把我的主动买卖晋升到“专业秤谌”。其余,也有些虚假的计划,比方:运用规范libmysql.dll推广DML/DDL操作(插入/更新/删除数据,正在数据库中创修/毁灭对象),以及将数据检索(SELECT)的完毕行为HTTP哀告(运用inet.dll)与MySQL效劳器端的web效劳器上的PHP剧本通讯。而SQL查问被写正在PHP剧本中。换句话说,要运转该项目,必然需求包管下述一起部件打算安妥,设备好并运转:MySQL效劳器,Apache/IISWeb效劳器,正在效劳器端的PHP/ASP剧本...大批本领的组合。当然,正在某些情形下,这是可能给与的,但当独一的做事便是从数据库中查问数据-那么这些全偶然旨。其余,撑持云云累赘的计划也消耗岁月。大个人的计划正在插入数据,创修对象等等操作时没有题目。题目正在于数据查问,由于数据将会被返回移用境遇。我以为出于此目标而运用数组是不实在践的和未便利的,简陋的来历便是正在主圭臬的开采/调试/撑持进程中,数据库查问是可能变动的,而您也要确切局限为数组分派的内存..那么,这些可能,并且必必要避免。下文辩论的MQLMySql的接口基于OraclePL/SQL,MSSQLT-SQL,AdoDB等产物内运用的规范方法-运用逛标。这个接口的开采倾向是易于编程和维持,再加上起码元部件。它行为DLL包装器完毕,相连规范链接库libmysql.dll,且接口函数荟萃行为一个.mqh文献。1.MQLMySQL接口正在MetaTrader终端之间交互(通过MQL圭臬)可能正在如下元部件的助助下完毕:1.接口库MQLMySQL.mqh.运用 #include 语句将它加到项目工程里,而且可能遵照您的喜欢举行编削。它包罗的指令用于导入MQLMySQL.dll动态库的函数,以及移用它们和打点毛病的函数。2.MQLMySQL.dll动态库。这是一个包装器,用来探访规范库libmysql.dll的性能。其余,MQLMySQL.dll链接库打点操作的结果并共享探访数据库的相连和逛标。这意味着您可能正在同偶尔间创修和运用众个相连(来自一个或众个MQL圭臬),保留少量的掀开逛标,查问一个或众个数据库。互斥则用于隔离探访共享资源。3.规范动态链接库libmysql.dll是当地探访驱动器。您可能从任何MySql数据库的发外处所C:\Windows\Sytem32或\MQL5\Libraries(对待MetaTrader4正在\MQL4\Libraries)中拷贝它。本相上,它卖力发送查问到数据库并回收检索结果。让咱们来详述重心,诸如:掀开/闭塞相连,推广DML/DDL查问和数据检索。1.1.掀开和闭塞相连该MySqlConnect函数曾经完毕了掀开与MySQL数据库的相连:类型名称参数描画intMySqlConnect该性能已完毕与数据库的相连并返回一个相连标识符。这个ID正在数据库查问时需求。正在相连腐烂情形下,则返回值-1。对待毛病详情,查验变量 MySQLErrorNumber 和 MySqlErrorDescription。规范地,这个函数正在MQL圭臬打点 OnInit() 事情时移用。string pHost这是MySQL效劳器的域名或IP地方string pUser数据库用户名(比方,root)string pPassword数据

  轮回内将数据赋值给MQL变量。闭塞逛标。当然,这是常用筹备,因而并非每种情形都需求统共操作。比方,假如您计划确认外中存正在一行数据(遵照纵情规范),这对待打算查问足够了,掀开逛标,取得行数并闭塞逛标。本相上,强制个人是-打算SELECT语句,掀开和闭塞逛标。什么是逛标?它是针对一片具有逻辑合连的内存区域的援用,实践上-结果数值的荟萃。当您发送SELECT查问,数据库为结果分派内存并创修行指针,您可能愚弄其正在数据行之间搬动。是以,可能按程序探访遵照查问界说的部队的每一行。(SELECT语句的ORDERBY子句)。以下接口函数用于数据检索:掀开逛标:类型名称参数描画intMySqlCursorOpen这个函数为SELECT查问掀开一个逛标,若凯旋则返回逛标标识符。不然,函数返回-1。为了查找毛病来历,运用变量 MySQLErrorNumber 和MySqlErrorDescription。int pConnection数据库相连标识符string pQuerySQL查问(SELECT语句)得到查问返回的行数:类型名称参数描画intMySqlCursorRows这个函数返回查问的检索行数。int pCursorID由 MySqlCursorOpen 返回的逛标标识符取查问数据行:类型名称参数描画boolMySqlCursorFetchRow从查问返回的数据荟萃中取一行数据。正在凯旋推广之后,您可能将数据赋值到MQL变量。若凯旋函数返回true,不然返回false。int pCursorID由 MySqlCursorOpen 返回的逛标标识符取查问数据行之后,赋值到MQL变量:类型名称参数描画intMySqlGetFieldAsInt函数以 HYPERLINK数据类型返回数据外字段的值。int pCursorID由 MySqlCursorOpen 返回的逛标标识符int pField正在SELECT中的字段号码(肇始编号为0)doubleMySqlGetFieldAsDouble函数以 HYPERLINK数据类型返回数据外字段的值。int pCursorID由 MySqlCursorOpen 返回的逛标标识符int pField正在SELECT中的字段号码(肇始编号为0)datetimeMySqlGetFieldAsDatetime函数以 HYPERLINK数据类型返回数据外字段的值。int pCursorID由 MySqlCursorOpen 返回的逛标标识符int pField正在SELECT中的字段号码(肇始编号为0)stringMySqlGetFieldAsString函数以 HYPERLINK数据类型返回数据外字段的值。int pCursorID由 MySqlCursorOpen 返回的逛标标识符int pField正在SELECT中的字段号码(肇始编号为0)一起MySQL返回的数据都有当地外达方法(不光外达为字符串)。是以,运用这些函数,您可能将所选的数据转换为所需的类型。独一不敷的是,正在SELECT清单中,用列编号(肇始编号为0)取代了它的名字。但是,当开采一个操纵圭臬时,打算SELECT语句并获取结果简直都正在一个页面,因而当您规章数据获取逻辑时,您可能看到SELECT查问。是以,您总能大白正在SELECT清单中的字段数目(这种方法也同样合用于探访AdoDB的数据)。好了,这个人可能正在自此编削。它对计划中的性能开采只是略有影响。闭塞逛标:类型名称参数描画voidMySqlCursorClose这个函数闭塞指定的逛标并开释内存。int pCursorID由 MySqlCursorOpen 返回的逛标标识符闭塞逛标是一个要害操作。 不要忘掉闭塞逛标。设念一下您掀开了一个逛标,并忘掉闭塞它。设念,每次即时报价来到,打点 HYPERLINK事情时,数据都要通过逛标检索,而且每次都掀开一个新逛标,并为其分派内存(客户端与效劳器端两者不异)。正在某偶尔刻,效劳器将拒绝效劳,由于来到掀开逛标范围,而且导致缓存区溢出。当然,这有点夸诞,如许的结果大概正在与libmysql.dll直接事务的光阴展现。但是,MQLMySQL.DLL动态链接库为逛标分派内存,并将正在超过了答允的范围时拒绝掀开新逛标。当推广实践做事时,保留2-3个掀开逛标就足够了。每

  ,Query);Cursor=MySqlCursorOpen(DB,Query);if(Cursor>

  ,Query);Cursor=MySqlCursorOpen(DB,Query);if(Cursor=0)    {    Rows=MySqlCursorRows(Cursor);    Print(Rows,row(s)selected.);    for(i=0;i

  [版权声明] 本站一起材料为用户分享发作,若涌现您的权益被侵犯,请干系客服邮件,咱们尽疾打点。

  本作品所浮现的图片、画像、字体、音乐的版权大概需版权方出格授权,请留意运用。

Tags: mt5交易商  mql5手机版 

上一篇:没有了

下一篇:没有了

广告位
    广告位
    广告位