O artigo é muito útil e eu o consultarei muitas vezes para criar meus próprios bancos de dados.
Ainda é um pouco cedo para isso, mas, em geral, você já pode sentir o poder da quinta versão.
Alexander, por favor, me ajude nesta situação...
Preciso, por exemplo, salvar uma matriz em um banco de dados. Escrevi um script.
Ele tem a seguinte aparência:
#property copyright "Copyright 2010, MetaQuotes Software Corp." #property link "http://www.mql5.com" #property version "1.00" #include <Object.mqh> #include <Arrays\List.mqh> // conectar componentes OleDb #include <Ado\Providers\OleDb.mqh> #include <Ado\Data.mqh> double PriceBuffer[]; //+------------------------------------------------------------------+ //| Função de início do programa de script| //+------------------------------------------------------------------+ void OnStart() { long n1=100; MqlRates rates[]; ArraySetAsSeries(rates,true); double nClose[]; ArrayResize(nClose,n1); ArrayResize(t,n1); CSymbolInfo m_smbinf; m_smbinf.Name(Symbol()); int dg=m_smbinf.Digits(); int copied=CopyRates(Symbol(),0,0,n1,rates); for(int i=0;i<n1;i++) nClose[i]=rates[i].close; // formar a tabela a ser passada para SaveDataToDb CAdoTable *table=new CAdoTable(); table.Columns().AddColumn("Price",ADOTYPE_DOUBLE); ArrayResize(PriceBuffer,n1); // preencher a tabela com dados dos buffers for(int i=1; i<n1; i++) { CAdoRecord *row=table.CreateRecord(); row.Values().GetValue(0).SetValue(PriceBuffer[i]); table.Records().Add(row); } }
Mas, na compilação, ocorre o seguinte erro: "'Values' - cannot call protected member function".
O erro está relacionado à linha:
row.Values().GetValue(0).SetValue(PriceBuffer[i]);
Embora na função CBsvEngine::SaveData(void)
essas linhas funcionaram normalmente:
// preencher a tabela com dados dos buffers for(int i=1; i<TicksInBuffer; i++) { CAdoRecord *row=table.CreateRecord(); row.Values().GetValue(0).SetValue(TickBuffer[i].time); row.Values().GetValue(1).SetValue(TickBuffer[i].bid); row.Values().GetValue(2).SetValue(VolumeBuffer[i]); table.Records().Add(row); }
Ótimo artigo! Infelizmente, estou tendo o mesmo problema que Denkir comentou na versão russa deste artigo.
Ele não compila, dando o erro:
'Values' - cannot call protected member function.
Associado a essas linhas em CBsvEngine::SaveData(void)
Eu realmente adoraria que isso funcionasse. Muito obrigado!
Ele não compila, dando o erro:
'Values' - cannot call protected member function.
Associado a essas linhas em CBsvEngine::SaveData(void)
row.Values().GetValue(0).SetValue(TickBuffer[i].time); row.Values().GetValue(1).SetValue(TickBuffer[i].bid); row.Values().GetValue(2).SetValue(VolumeBuffer[i]);E também o mesmo erro associado a várias chamadas para 'Values()' em CDbDataAdapter::Fill(CAdoTable *table) no arquivo DbDataAdapter.mqh
Eu realmente adoraria que isso funcionasse. Muito obrigado!
Ele pode ser executado no testador de estratégia? Quando uso o adoSuite no testador de estratégia, ele sempre encerra o programa.
Automated-Trading:
Infelizmente, a compilação 586 tem um erro na chamada de funções de DLLs de 32 bits. Isso será corrigido na próxima versão.
Infelizmente, isso não foi resolvido após a última atualização. Alguma solução ou recomendação? Quanto tempo isso pode levar? Disseram-me para esperar até a próxima compilação e ela veio sem resolver o problema.
Infelizmente, a compilação 586 tem um erro na chamada de funções de DLLs de 32 bits. Isso será corrigido na próxima versão.
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Novo artigo Aplicação prática de bancos de dados para análise de mercado foi publicado:
Trabalhar com dados se tornou a tarefa principal para o software moderno - tanto para aplicativos autônomos quanto para os de rede. Para solucionar esse problema um software especializado foi criado. São sistemas de gerenciamento de banco de dados (DBMS) que podem estruturar, sistematizar e organizar dados para seu armazenamento e processamento. Quanto aos negócios, a maioria dos analistas não utiliza bancos de dados em seu trabalho. Mas existem tarefas para as quais essa solução teria que ser útil. Este artigo fornece um exemplo de indicadores que podem salvar e carregar dados da partir de bancos de dados com ambas arquiteturas cliente-servidor ou arquivo-servidor.
Autor: Alexander