Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
come leggere il risultato della funzione mysql_fetch_row in MQL4 ?
Attualmente sto sviluppando uno script per lavorare con un database MySQL per leggere, inserire, cancellare e modificare.
Lo script è grande, ma l'essenza del lavoro con il database sarà comprensibile, credo, da una sola funzione.
Tuttavia, in questo esempio viene restituito l'ID del record dalla tabella, ma non sarà un problema da rifare, mi ricordo e il testo e i numeri restituiti dal database, tutto funziona.
ha fatto un piccolo esperimento investigativo
Ho creato una tabella con due campi
INT id; TEXT user
ci sono due righe nella tabella
id user
1 aaa
2 bbb
1. Quando si interroga "SELECT id FROM table", la funzione fetch_row restituisce (indirizzo)(indirizzo) 1 (indirizzo)(indirizzo) 2
2. La query "SELECT user FROM table", la funzione fetch_row restituisce (indirizzo) aaa (indirizzo) bbb
In generale, questo può essere gestito, l'unico peccato è che ritorna in stringa
Se interrogo due campi "SELECT id, user FROM table", la funzione restituisce (indirizzo) 1 (indirizzo) (indirizzo) (indirizzo) 2
4. Se si scambiano i campi "SELECT user, id FROM table", la funzione restituisce (indirizzo) aaa (indirizzo) bbb
si scopre che solo il primo campo della stringa è chiaramente visibile e viene aggiunto un altro indirizzo di 4 byte.
ha fatto un piccolo esperimento investigativo
ha creato una tabella con due campi
INT id; TEXT utente
la tabella ha due righe
id utente
1 aaa
2 bbb
1. Quando si interroga "SELECT id FROM table" la funzione fetch_row restituisce (indirizzo)(indirizzo) 1 (indirizzo)(indirizzo) 2
2. Quando si richiede "SELECT user FROM table" la funzione fetch_row restituisce (indirizzo) aaa (indirizzo) bbb
Generalmente può essere gestita, ma il ritorno è in stringa
3. se la funzione restituisce due campi "SELECT id, user FROM table", restituisce (indirizzo) 1 (indirizzo) (indirizzo) 2
4. Se scambiamo i campi "SELECT user, id FROM table", la funzione restituisce (indirizzo) aaa (indirizzo) bbb
si scopre che solo il primo campo della stringa viene visto esplicitamente e viene aggiunto un altro indirizzo di 4 byte.
Come si fa a inserire questo nel programma dopo?
In pratica scriverò numeri in virgola mobile e li leggerò.
Attualmente sto sviluppando uno script per lavorare con un database MySQL per leggere, inserire, cancellare e modificare.
Lo script è grande, ma l'essenza del lavoro con il database sarà comprensibile, credo, da una sola funzione.
È vero, questo esempio restituisce ID record dalla tabella, ma per rifare nessun problema, mi ricordo e testo e numeri restituiti dal database, tutto ha funzionato.
Questo è un esempio interessante, ma non mostra come leggere i dati numerici.
In pratica, voglio usare una base con una tabella di tre colonne per due sole azioni:
1) Leggere le prime due colonne (indice e la prima colonna numerica)
Poi scegliete il numero più rilevante dalla colonna numerica all'interno del programma MQ4
2) Leggere dall'indice di quel numero il numero della seconda colonna.
Quali funzioni dovrei usare per questo? E funzionano normalmente nella DLL specificata?
Questo è un esempio interessante, ma non mostra come leggere i dati numerici.
avete scritto una riga di codice per vedere cosa viene restituito e come?
HIDDEN ha già dato una soluzione completa per leggere un campo dal database.
Se potete aiutare a scrivere un convertitore da ansi a unicode per MKL5, il cui codice è riportato nel post precedente. Vi invierò il codice di lavoro per MKL4, vi aiuterà anche quando scriverete la classe per MKL5.
MQL5 ha funzioni per convertire l'unicode. Vedere /en/docs/convert/chararraytostring e /en/docs/convert/string tochararray
Dichiarare array uchar invece di stringhe nell'importazione di funzioni.
Nelle funzioni di importazione, non dichiarare stringhe, ma array di tipo uchar
Il problema è, purtroppo, che queste stringhe sono restituite come risultato di una funzione, non come uno dei suoi & parametri.
mysql_fetch_row restituisce un puntatore a un array di stringhe - char**
--------
qualcuno sa se ci sono funzioni di basso livello del kernel che possono restituire una stringa char ** da un array di char?
(come strcpy, strcat...)
e allo stesso modo da un array int* - qualche funzione lib per ottenere il suo elemento specifico?
anche se la funzione stessa non è progettata direttamente per questa operazione :)
Implementazione completa del codice....
dump SQL del database
Risultato del lavoro