Come accedere al database da MQL4 , ORACL, MSSQL, MySQL - pagina 6

 

funziona tutto e la base si sta gonfiando! :)

Buona fortuna.

 
TheVilkas писал(а) >>

funziona tutto e la base si sta gonfiando! :)

Buona fortuna.

Punteggio !!!

Esempio davvero funzionante.

Grazie

 

URRÀ! Il mio database ha funzionato bene anche attraverso libmysql.dll. Non capisco perché il risultato viene restituito con geroglifici all'inizio e poi con le informazioni desiderate. Rielaborato il codice di cui sopra.

Richiesta: "SELECT concat(';',concat_ws(';',date,title,impact)) DA calendario DOVE (data tra ADDDATE( ORA( ), INTERVALLO -4 GIORNO ) E ADDDATE( ORA( ), INTERVALLO +2 GIORNO ) AND (currency='"+symb1+"' XOR currency='"+symb2+"') ORDER BY date"

Codice:

 for (int i=0; i< numOfRows; i++) { 
      row = mysql_fetch_row( result); 
      //add_news(row); 
   
   int begin = StringFind( row, DELIM)+1; 
   int end = StringFind( row, DELIM, begin);   
      ArrayResize( News_Array, i+1);
      News_Array[ i,0] = StringSubstr( row, begin, end- begin);  // fills datetime data in compatible format
         begin = end+1; 
         end = StringFind( row, DELIM, begin); 
      News_Array[ i,1] = StringSubstr( row, begin, end- begin);   // fills description data
         begin = end+1; 
         end = StringFind( row, DELIM, begin);       
      News_Array[ i,2] = StringSubstr( row, begin, end- begin);  // fills rating data
      if (StringSubstr( row, begin, end- begin) == "High") Event_Rating_No = "3";
      if (StringSubstr( row, begin, end- begin) == "Medium") Event_Rating_No = "2";
      if (StringSubstr( row, begin, end- begin) == "Low") Event_Rating_No = "1";   
      
         begin = end+1; 
         end = StringFind( row, DELIM, begin);      
      
      News_Array[ i,3] = Event_Rating_No;  // number equivalent for ratings
      News_Array[ i,4] = "0";  // used for prevents repetition of alerts
                
        } 


Buona fortuna a tutti!

 
GarF1eld >> :

BTRVODKAex

Per questo scopo viene scritta una dll intermedia in c++\cli. Non si può chiamare direttamente il codice gestito da mql.



Perché non posso usare C#? E dove posso trovare letteratura su come scrivere una DLL in C++ per MT4?

 
BTRVODKAex >> :

Perché non posso usare C#? E dove posso trovare letteratura su come scrivere dll in C++ per MT4?

Rispondendo alla mia stessa domanda: "interferisce con il marshalling quando si chiamano le funzioni" :)

>> è andato a imparare il C++.

 

Ciao Signori, ho già fatto una domanda in un thread parallelo, ma probabilmente la ripeterò...

MySQL limita il numero massimo di colonne puramente in una tabella, per essere più precisi, il numero massimo possibile di colonne è 1000, qualcuno sa come questa restrizione può essere rimossa ed è possibile? Se no, quale database permette di creare tabelle con più di 3000 colonne?

 
toxa.forex >> :

Ciao Signori, ho già fatto una domanda in un thread parallelo, ma probabilmente la ripeterò...

MySQL limita il numero massimo di colonne puramente in una tabella, per essere più precisi, il numero massimo possibile di colonne è 1000, qualcuno sa come questa restrizione può essere rimossa ed è possibile? Se no, quale database permette di creare tabelle con più di 3000 colonne?

Oracle

 
HIDDEN >> :

Oracle

HIDDEN, grazie per la risposta, ma potresti essere un po' più specifico, a quale oracolo ti riferisci? Oracle 9i ha la stessa limitazione, max 1000 colonne in una tabella...

 
toxa.forex >> :

HIDDEN, grazie per la risposta, ma potresti essere un po' più specifico, a quale oracolo ti riferisci? Oracle 9i ha la stessa limitazione, max 1000 colonne in una tabella...

E le versioni successive.

Non ho lavorato molto con Oracle. In generale, l'idea mi gira in testa che se hai bisogno di 3000 colonne, allora c'è qualcosa a cui non hai pensato.... Dovresti suddividere le informazioni in tabelle e ottimizzare le tue query, poi puoi generare qualsiasi cosa dal database.

Perché versare l'intera bottiglia in un ditale, non capisco.


Spiegate i vostri scopi e obiettivi, forse non avete affatto bisogno di un database.

 
HIDDEN >> :

E le versioni successive.

Io stesso non ho quasi mai lavorato con Oracle. In generale, penso che se hai bisogno di 3000 colonne, è qualcosa a cui non hai pensato -.... Dovresti suddividere le informazioni per tabelle, ottimizzare le tue query. Puoi generare qualsiasi cosa tu voglia dal database.

Perché versare l'intera bottiglia in un ditale, non capisco.


Spiegate i vostri scopi e obiettivi, forse non avete affatto bisogno di un database.

Non ho scoperto le versioni successive di Oracle, ma sospetto che le restrizioni sul numero di colonne siano ancora in vigore...

Sì, dividere le informazioni in tabelle è certamente possibile, ma è la soluzione meno desiderabile, poiché aumenterà significativamente il tempo di elaborazione delle query a causa dell'aumento delle chiamate al database... L'ottimizzazione delle query non ti aiuterà, qualsiasi NF tu voglia ridurre a...

E stiamo parlando di una rete neurale, usare un database non è davvero necessario qui, ma secondo me, è la migliore opzione per memorizzare più di 3000 parametri...

Motivazione: