Discussão do artigo "Como acessar o banco de dados MySQL a partir do MQL5 (MQL4)" - página 13
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
win 7 x64 - mt5 x64 versão mais recente (v5 b1455)
Não consigo acessar o MySQL, mas isso não é uma pena.
Servidor: Localhost via soquete UNIX
Tipo de servidor: Servidor Percona
Versão do servidor: 5.5.35-33.0-log - Percona Server (GPL), Release rel33.0, Revisão 611
Versão do protocolo: 10
Usuário: ***
Codificação do servidor: UTF-8 Unicode (utf8)
Aqui está o x64 recompilado para MQL5
Pavel, experimente.
não há mais problemas com a conexão da dll
tudo funciona, obrigado
não há mais problemas com a conexão da dll
tudo funciona, obrigado
Sempre fico feliz em ajudar.
Boa sorte com seus projetos.
Obrigado, eu li o artigo. O autor do artigo atual, que entrou no site ....., fez uma observação muito boa e estragou tudo. e estragou tudo).
Eu mesmo já me deparei mais de uma vez com o problema de colisões nele. Por exemplo, se um robô de negociação estiver anexado a diferentes gráficos, mas usar a mesma base, e o acesso for feito a uma tabela de uso geral (digamos, registro/alteração de sessões, contas), em qualquer caso, você receberá um erro como "tabela bloqueada". E não importa se todas as transações foram concluídas, se os cursores foram fechados e se o banco de dados foi aberto no modo compartilhado.
O comentarista provavelmente não entendeu as configurações do sqlite, que resolvem todas as colisões por meio da compilação para o modo com bloqueios ou por meio de pragma.
Posso dizer que trabalho há vários anos em projetos pesados com multithreading de leitura/gravação simultânea e não há problemas, o principal é ter as mãos direitas.
O comentarista provavelmente não entendeu as configurações do sqlite, que resolvem todas as colisões por meio da compilação para o modo com bloqueios ou por meio de pragma.
Posso dizer que tenho trabalhado por vários anos em projetos pesados com multithreading de leitura/gravação simultânea e não há problemas, o principal é ter as mãos direitas.
o_O
Se for o caso, posso pegar esse projeto para o SQLite, escrever scripts de teste/EA e, se houver bloqueios novamente, podemos resolver isso juntos (se você não se importar) e fornecer uma solução de software para a comunidade.
Talvez valha a pena prestar atenção a isso, pois há algumas vantagens de um BD (autonomia, SQL, mobilidade, capacidade de incorporação etc.).
Na verdade, peguei uma DLL pronta do SQLite (não o código-fonte) e não a recompilei, apenas trabalhei com a API C++.
o_O
Se for o caso, posso pegar esse projeto para o SQLite, escrever scripts de teste/EA e, se houver bloqueios novamente, podemos resolver isso juntos (se você não se importar) e fornecer uma solução de software para a comunidade.
Talvez valha a pena prestar atenção a isso, pois há algumas vantagens de um BD (autonomia, SQL, mobilidade, capacidade de incorporação etc.).
Na verdade, eu peguei uma DLL pronta do SQLite (não o código-fonte) e não a recompilei, apenas trabalhei com a API C++.
Seria realmente interessante se o "mito" do bloqueio do SQLite fosse confirmado ou desfeito. Se não fosse por essa incerteza, ou por soluções para resolvê-la, o SQlite é uma opção muito atraente para a interoperabilidade. Seria interessante saber também algo sobre seu desempenho, por exemplo, em comparação com o mesmo banco de dados com o Access. É claro, se alguém tiver tempo real e vontade de fazer esse trabalho.
Ainda há questões sobre a conexão da base a softwares de terceiros, que podem ser conectados a qualquer banco de dados - Access, SQL Server, Oracle e assim por diante. O SQLite tem um driver instalado no computador, como o OLEDB ou, pelo menos, o ODBC? E no mesmo Access, vários aplicativos podem gravar e ler no mesmo banco de dados de forma assíncrona por meio de diferentes interfaces sem nenhum problema. Suspeito que isso talvez não funcione com o SQLite.
Seria realmente interessante se o "mito" do bloqueio do SQLite fosse confirmado ou desfeito. Se não fosse por essa incerteza, ou por soluções para eliminá-la, o SQlite é uma opção muito atraente para a interoperabilidade. Também seria interessante saber algo sobre seu desempenho, por exemplo, em comparação com o mesmo banco de dados com o Access. É claro, se alguém tiver tempo real e vontade de fazer esse trabalho.
Ainda há questões sobre a conexão da base a softwares de terceiros, que podem ser conectados a qualquer banco de dados - Access, SQL Server, Oracle e assim por diante. O SQLite tem um driver instalado no computador, como o OLEDB ou pelo menos o ODBC? E no mesmo Access, vários aplicativos podem gravar e ler no mesmo banco de dados de forma assíncrona por meio de diferentes interfaces sem nenhum problema. Suspeito que isso talvez não funcione com o SQLite.
Bem, o OLEDB para SQLite está disponível, basta pesquisar no Google. A propósito, uma ideia interessante é executar scripts de teste sobre localização por meio do OLEDB para o SQLite.... pervertida, é claro, mas todos nós somos pervertidos aqui....
E sobre o acesso nativo, acredito que, com esforços conjuntos, podemos obter um resultado positivo. É só uma questão de tempo, não vou conseguir fazer isso esta semana... talvez no fim de semana eu consiga algum tempo...
Bem, o OLEDB para SQLite está disponível, basta pesquisar no Google. A propósito, é interessante a ideia de executar scripts de teste sobre loc via OLEDB para SQLite.... pervertida, é claro, mas todos nós somos pervertidos aqui....
E com relação ao acesso nativo, acredito que, com esforços conjuntos, podemos obter um resultado positivo. É só uma questão de tempo, não poderei fazer isso esta semana... talvez no fim de semana eu consiga alocar tempo...
Tenho um aplicativo que cria um banco de dados e grava (não lê) nele grandes quantidades de informações em várias tabelas. Se eu conseguir encontrar um driver OLEDB instalado no computador e visível por meio das configurações do aplicativo, o SQLite poderá ser facilmente testado sem travamentos. Da mesma forma, você pode se conectar ao SQLite pelo mesmo Access e tentar ler e modificar tabelas em paralelo. Algo para medir, é claro, não será possível.
Dei uma olhada na Internet. De imediato, não foi possível encontrar esse provedor OLEDB. Todos os outros OLEDB DLLs, que só podem ser usados a partir de linguagens de programação, pelo que entendi.
começaram a aparecer o tempo todo, o que isso significa?
Quando executo meu código nesta linha.
if(DB==-1){DB=MySqlConnect(Host, User, Password, Database, Port, Socket, ClientFlag);}
res = MySqlCursorOpen(DB, "SELECT id, account, symbol FROM `current` WHERE account="+account);