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

 
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?

Un sacco di colonne? Quindi il database è mal progettato - ha bisogno di normalizzazione.

 
Itso >> :

Un sacco di colonne? Significa che il database è mal progettato - è necessario normalizzarlo.

Itso, non sono sicuro che tu abbia letto il post precedente, quindi lo ripeto - la normalizzazione del database non porterà a nulla... La normalizzazione è necessaria per eliminare la ridondanza, questo database non è ridondante, rispettivamente, non c'è bisogno di portarlo a NF, in ogni caso, la soluzione si trova ... Non il più bello secondo me, ma non ci sono ancora altre opzioni - usando una bitmask... Poiché le colonne potrebbero assumere valori 1|0 si è deciso di usare una colonna con una bitmask di 0 e 1...

Comunque, grazie

 
TheVilkas >>:


string CommandText="INSERT INTO Rates (TimeCurrent,AccountCompany,Symb,DateTimeRate,Ask,Bid) "+
"VALUES("+TimeCurrent()+",'"+Company+"','"+Symb+"','"+DateTimeRate+"',"+Ask+","+Bid+")";
Execute(CommandText,adAsyncFetch);
Sleep(15);


Come faccio a leggere dal database?
 
Twilight писал(а) >>

Come faccio a leggere dal database?

Seleziona

 
Itso >>:

Select


Ho familiarità con SQL stesso

stringa Company=AccountCompany();
stringa Symb=Symbol();

L'inserimento nel database funziona
//string CommandText="INSERT INTO Rates (TimeCurrent,AccountCompany,Symb,DateTimeRate,Ask,Bid) "+
//"VALUES("+TimeCurrent()+",'"+Company+"','"+Symb+"','"+DateTimeRate+"',"+Ask+","+Bid+")";
//string CommandText="INSERT INTO [test].[dbo].[test] ([test]) VALUES (22)";

Ma non ho familiarità con il campionamento.


string CommandText="SELECT [test] FROM [test].[dbo].[test] where test=5";
stringa test3;
test3=Execute(CommandText,adAsyncFetch);

Commento(test3);
Dormire(15);



Ritorna 1


Ho provato a cambiare Execute(CommandText,adAsyncFetch); il secondo parametro a questi

adCmdText(1) - definizione testuale del comando o della stored procedure.
adCmdTable(2) - crea una query SQL che restituisce tutte le righe della tabella specificata.
adCmdStoredProc(4) - Procedura memorizzata.
adCmdUnknown(8) - tipo di comando sconosciuto (predefinito).
adAsyncExecute(16) - esecuzione asincrona del comando.
adExecuteNoRecords(128) - non restituisce stringhe.

Esce ancora quella dannata cosa.

Sospetto che Execute restituisca un array di dati e che debba essere processato in qualche modo

 

c'è un esempio a pagina 5 e un altro a pagina 6

 
sergeev >>:

тут же на 5 странице пример и на 6 ещё один



alle pagine 5 e 6 un esempio con My SQL e un'altra libreria

E discuto per MS SQL con la libreria ADOLIB.

L'esempio con ADolib contiene solo il caricamento in un DB e lo scaricamento perché non so

 

Qualcuno sa come implementare la lettura da MS SQL?

Per favore aiutatemi a risolvere questo problema.

 
Twilight >>:


Puoi ovviamente usare l'opzione MySQL, ma quando leggi i dati dal database, i geroglifici sono visualizzati davanti al valore
 

Cosa ha da dire esattamente su MS SQL?

Dammi il codice e mostrami dove non funziona, e lo esamineremo.