Как из MQL4 обращаться в базу данных , ORACL , MSSQL, MySQL - страница 7

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

Здравствуйте, господа, уже задавал вопрос в параллельной ветке, но, пожалуй, повторюсь...

MySQL ограничивает максимальное чисто столбцов в таблице, если быть точнее, то максимальное возможное количество столбцов 1000, кто-нибудь знает, как это ограничение можно снять и можно ли вообще? Если нет, то какая БД позволяет создавать таблицы с более чем 3000 столбцов?

Много столбцов? Значить база плохо планирована - нужна нормализация.

 
Itso >>:

Много столбцов? Значить база плохо планирована - нужна нормализация.

Itso, не уверен, что вы прочитали предыдущее сообщение, поэтому повторюсь - нормализация БД ни к чему не приведет... Нормализация необходима для устранения избыточности, данная БД избыточностью не обладает, соответственно нет необходимости приводить ее к НФ,в любом случае решение найдено... Не самое, на мой взгляд, красивое но других вариантов пока нет - использование битовой маски... Так как столбцы могли бы принемать значения 1|0 было принято решение использовать один столбец, в котором будет битовая маска из 0 и 1...

В любом случае, спасибо

 
TheVilkas >>:


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


А как осуществить чтение из БД?
 
Twilight писал(а) >>

А как осуществить чтение из БД?

Select

 
Itso >>:

Select


с самим SQL я знаком

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

Вставка в БД работает
//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)";

А вот выборка уже нет


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

Comment(test3);
Sleep(15);



Возвращает 1


пробывал менять в строке Execute(CommandText,adAsyncFetch); второй параметр вот на эти

adCmdText(1) - текстовое определение команды или хранимой процедуры.
adCmdTable(2) - создать SQL-запрос, который вернёт все строки указанной таблицы.
adCmdStoredProc(4) - хранимая процедура.
adCmdUnknown(8) - тип команды неизвестен (по умолчанию).
adAsyncExecute(16) - асинхронное выполнение команды.
adExecuteNoRecords(128) - не возвращать строки.

Все равно выводит черти что

Я подозревая, что Execute возвращает массив данных и его как то надо обрабатывать

 

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

 
sergeev >>:

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



на 5 и 6 страницы пример с My SQL и с другой библиотекой

А я обсуждаю для MS SQL с АДОlib библиотекой.

Пример с АДолиб содержит только загрузку в БД а выгрузку как делать не знаю

 

Ну так кто нибудь знает как реализовать чтение из MS SQL?

Очень прошу помочь в решение этой задачи.

 
Twilight >>:


Можно конечно использовать вариант с MySQL но во время чтения данных из БД перед значением выводится Иэроглифы
 

А что вы конкретно имеете в наработке по данному вопросу MS SQL? 

приведите код и покажите где у вас не работает. будем разбираться.