Wie greift man auf die Datenbank von MQL4 , ORACL , MSSQL, MySQL zu? - Seite 6

 

alles funktioniert, und der Boden wird aufgeplustert! :)

Viel Glück!

 
TheVilkas писал(а) >>

alles funktioniert, und der Boden wird aufgeplustert! :)

Viel Glück!

Treffer !!!

Ein wirklich funktionierendes Beispiel.

Danke

 

HOORAY! Meine Basis funktionierte auch problemlos über libmysql.dll. Ich verstehe nicht, warum das Ergebnis mit Hieroglyphen am Anfang und dann mit den richtigen Informationen zurückgegeben wird. Der obige Code wurde überarbeitet.

Anfrage: "SELECT concat(';',concat_ws(';',date,title,impact)) FROM kalender WHERE (Datum zwischen ADDDATE( NOW( ), INTERVAL -4 DAY ) AND ADDDATE( NOW( ), INTERVAL +2 DAY ) AND (currency='"+symb1+"' XOR currency='"+symb2+"') ORDER BY date"

Code:

 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
                
        } 


Viel Glück an alle!

 
GarF1eld >> :

BTRVODKAex

Zu diesem Zweck wird eine Zwischen-DLL in C++++cli geschrieben. Sie können verwalteten Code nicht direkt aus mql aufrufen.



Warum kann ich nicht C# verwenden? Und wo finde ich Literatur zum Schreiben einer DLL in C++ für MT4?

 
BTRVODKAex >> :

Warum kann ich nicht C# verwenden? Und wo kann ich Literatur über das Schreiben von dll in C++ für MT4 finden?

Um meine eigene Frage zu beantworten: "Es stört das Marshalling beim Aufruf von Funktionen" :)

>> ging, um C++ zu lernen.

 

Hallo meine Herren, ich habe bereits eine Frage in einem anderen Thread gestellt, aber ich werde sie wahrscheinlich wiederholen...

MySQL beschränkt die maximale Anzahl von reinen Spalten in einer Tabelle, genauer gesagt, die maximal mögliche Anzahl von Spalten ist 1000, weiß jemand, wie diese Beschränkung aufgehoben werden kann und ist es überhaupt möglich? Wenn nicht, welche Datenbank erlaubt es Ihnen, Tabellen mit mehr als 3000 Spalten zu erstellen?

 
toxa.forex >> :

Hallo meine Herren, ich habe bereits eine Frage in einem anderen Thread gestellt, aber ich werde sie wahrscheinlich wiederholen...

MySQL beschränkt die maximale Anzahl von reinen Spalten in einer Tabelle, genauer gesagt, die maximal mögliche Anzahl von Spalten ist 1000, weiß jemand, wie diese Beschränkung aufgehoben werden kann und ist es überhaupt möglich? Wenn nicht, welche Datenbank erlaubt es Ihnen, Tabellen mit mehr als 3000 Spalten zu erstellen?

Oracle

 
HIDDEN >> :

Oracle

HIDDEN, danke für die Antwort, aber könnten Sie etwas genauer sagen, auf welches Orakel Sie sich beziehen? Oracle 9i hat die gleiche Beschränkung, maximal 1000 Spalten in einer Tabelle...

 
toxa.forex >> :

HIDDEN, danke für die Antwort, aber könnten Sie etwas genauer sagen, auf welches Oracle Sie sich beziehen? Oracle 9i hat die gleiche Einschränkung, maximal 1000 Spalten in einer Tabelle...

Und die späteren Versionen.

Ich habe selbst noch nicht viel mit Oracle gearbeitet. Generell spukt mir der Gedanke im Kopf herum, dass, wenn man 3000 Spalten braucht, man etwas nicht bedacht hat.... Sie sollten die Informationen in Tabellen aufschlüsseln und Ihre Abfragen optimieren. Dann können Sie alles aus der Datenbank generieren.

Warum die ganze Flasche in einen Fingerhut füllen, verstehe ich nicht.


Erklären Sie Ihre Ziele, vielleicht brauchen Sie gar keine Datenbank.

 
HIDDEN >> :

Und die späteren Versionen.

Ich selbst habe kaum je mit Oracle gearbeitet. Im Allgemeinen denke ich, dass Sie an etwas nicht gedacht haben, wenn Sie 3000 Spalten benötigen -.... Sie sollten die Informationen nach Tabellen aufschlüsseln und Ihre Abfragen optimieren. Sie können aus der Datenbank alles generieren, was Sie wollen.

Warum die ganze Flasche in einen Fingerhut füllen, verstehe ich nicht.


Erklären Sie Ihre Ziele, vielleicht brauchen Sie gar keine Datenbank.

Ich habe nichts über spätere Versionen von Oracle herausgefunden, aber ich vermute, dass die Beschränkungen für die Anzahl der Spalten immer noch bestehen...

Ja, die Aufteilung von Informationen in Tabellen ist sicherlich möglich, aber es ist die am wenigsten wünschenswerte Lösung, da sie die Verarbeitungszeit von Abfragen aufgrund der vermehrten Aufrufe an die Datenbank deutlich erhöht... Die Optimierung von Abfragen wird Ihnen nicht helfen, egal auf welche NF Sie sie reduzieren wollen...

Und da es sich um ein neuronales Netz handelt, ist die Verwendung einer Datenbank hier wirklich nicht notwendig, aber meiner Meinung nach die beste Option, um mehr als 3000 Parameter zu speichern...