Cómo acceder a la base de datos desde MQL4 , ORACL , MSSQL, MySQL - página 7

 
toxa.forex писал(а) >>

Hola Señores, ya hice una pregunta en un hilo paralelo, pero probablemente la repita...

MySQL restringe el número máximo de columnas puramente en una tabla, para ser más precisos, el número máximo posible de columnas es 1000, ¿alguien sabe cómo se puede eliminar esta restricción y si es posible? Si no es así, ¿qué base de datos permite crear tablas con más de 3000 columnas?

¿Muchas columnas? Por lo tanto, la base de datos está mal planificada: necesita una normalización.

 
Itso >> :

¿Muchas columnas? Significa que la base de datos está mal planificada: hay que normalizarla.

Itso, no estoy seguro de que hayas leído el post anterior, así que lo repetiré: la normalización de la base de datos no conducirá a nada... La normalización es necesaria para eliminar la redundancia, esta base de datos no es redundante, respectivamente, no hay necesidad de llevarla a NF, en cualquier caso, la solución se encuentra ... No es la más bonita en mi opinión, pero no hay otras opciones todavía - usando una máscara de bits... Como las columnas podían tomar valores 1|0 se decidió utilizar una columna con una máscara de bits de 0 y 1...

De todos modos, gracias

 
TheVilkas >>:


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


¿Cómo se lee desde la base de datos?
 
Twilight писал(а) >>

¿Cómo se lee desde la base de datos?

Seleccione

 
Itso >>:

Select


Estoy familiarizado con el propio SQL

string Empresa=CuentaEmpresa();
string Symb=Símbolo();

La inserción en la base de datos funciona
//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)";

Pero no estoy familiarizado con el muestreo.


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

Comentario(test3);
Dormir(15);



Devoluciones 1


He intentado cambiar el Execute(CommandText,adAsyncFetch); el segundo parámetro a estos

adCmdText(1) - definición de texto del comando o procedimiento almacenado.
adCmdTable(2) - crea una consulta SQL que devuelve todas las filas de la tabla especificada.
adCmdStoredProc(4) - Procedimiento almacenado.
adCmdUnknown(8) - tipo de comando desconocido (por defecto).
adAsyncExecute(16) - ejecución asíncrona del comando.
adExecuarSinRegistros(128) - no devuelve cadenas.

Sigue dando salida a la maldita cosa.

Sospecho que Execute devuelve un array de datos y debería ser procesado de alguna manera

 

hay un ejemplo en la página 5 y otro en la página 6

 
sergeev >>:

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



en las páginas 5 y 6 un ejemplo con My SQL y otra biblioteca

Y discuto para MS SQL con la biblioteca ADOLIB.

El ejemplo con ADolib contiene sólo la carga en una DB y la descarga ya que no sé

 

Entonces, ¿alguien sabe cómo implementar la lectura desde MS SQL?

Por favor, ayúdenme a resolver este problema.

 
Twilight >>:


Por supuesto, puede utilizar la opción de MySQL, pero al leer los datos de la base de datos, se muestran jeroglíficos delante del valor
 

¿Qué tiene que decir exactamente sobre MS SQL?

Dame el código y muéstrame dónde no funciona, y lo investigaremos.