Список форумов AmiSite.ru AmiSite.ru
Форум по Ами
 FAQ  •  Поиск  •  Пользователи  •  Группы   •  Регистрация  •  Профиль  •  Войти и проверить личные сообщения  •  Вход
 AmiTrans2Quik AFL Plug-in Следующая тема
Предыдущая тема
Начать новую тему  Ответить на тему
Автор Сообщение
zxWizard



Зарегистрирован: 25.09.2011
Сообщения: 46

СообщениеДобавлено: Пт Дек 09, 2011 9:03 pm Ответить с цитатой Вернуться к началу

MOAX писал(а):

По моему, запросы на вставку (INSERT INTO), обновление (UPDATE) и удаление (DELETE) данных в плагине должны работать корректно.
Попробуй, расскажешь.


Ты имеешь виду ODBC/SQL Universal AFL Plugin? или свой ?

Сейчас по экспериментировал нашел ответы на свои вопросы:
Базу нужно еще открывать и odbcOpenDatabase, оба плагина прекрасно работают совместно с одной базой одновременно.
Сейчас использую базу MS SQL Server очень быстро работает по сравнению с Access и масса возможностей в самом SQL.(благо есть знакомые знающие SQL).

MOAX ты говорил чтобы из базы в Ами получить массив нужно иметь ключевое поле в таблице ВРЕМЯ\ДАТА вот здесь не совсем понятно,
время или дата раздельно (22:00:00 это время) или дата (09.12.2011)
или должен быть столбец типа (22:00:00\09.12.2011)?
Посмотреть профиль Отправить личное сообщение
MOAX



Зарегистрирован: 13.03.2011
Сообщения: 44

СообщениеДобавлено: Сб Дек 10, 2011 12:22 pm Ответить с цитатой Вернуться к началу

zxWizard писал(а):
MOAX писал(а):

По моему, запросы на вставку (INSERT INTO), обновление (UPDATE) и удаление (DELETE) данных в плагине должны работать корректно.
Попробуй, расскажешь.


1) Ты имеешь виду ODBC/SQL Universal AFL Plugin? или свой ?

2) MOAX ты говорил чтобы из базы в Ами получить массив нужно иметь ключевое поле в таблице ВРЕМЯ\ДАТА вот здесь не совсем понятно,
время или дата раздельно (22:00:00 это время) или дата (09.12.2011)
или должен быть столбец типа (22:00:00\09.12.2011)?


1) Свой.

2) В моем понимании, массив на AFL должен быть привязан барам, стало быть и поле в БД должно быть DateTime, но не уверен.

Из справки ODBC/SQL Universal AFL Plugin:

Код:
odbcGetArraySQL("SELECT userval1, DATE FROM mytable WHERE SYMBOL='"+Name()+"' ORDER BY DATE ASC");


Тут используют DATE
Посмотреть профиль Отправить личное сообщение
MOAX



Зарегистрирован: 13.03.2011
Сообщения: 44

СообщениеДобавлено: Сб Дек 10, 2011 12:28 pm Ответить с цитатой Вернуться к началу

zxWizard писал(а):

Сейчас использую базу MS SQL Server очень быстро работает по сравнению с Access и масса возможностей в самом SQL.


Скажи, установка и администрирование MS SQL Server - штука муторная?
Ты используешь бесплатную версию Express?
Или для робота, как в примере, смысла нет в сервере БД
Посмотреть профиль Отправить личное сообщение
zxWizard



Зарегистрирован: 25.09.2011
Сообщения: 46

СообщениеДобавлено: Сб Дек 10, 2011 1:11 pm Ответить с цитатой Вернуться к началу

MOAX писал(а):
zxWizard писал(а):

Сейчас использую базу MS SQL Server очень быстро работает по сравнению с Access и масса возможностей в самом SQL.


Скажи, установка и администрирование MS SQL Server - штука муторная?
Ты используешь бесплатную версию Express?
Или для робота, как в примере, смысла нет в сервере БД


1) С установкой и администрированием конечно придется разобраться но во общем не сложно, саму базу в SQL я создал через скрипт для своего привода можешь его качнуть и глянуть в нем есть хорошие идеи по трейлинг стопу.

2) использую бесплатную версию Express.

3) Для твоего примера смысла в SQL нет.
Мне он нужен для Таблицы всех сделок, да и вообще может в будущем откажусь от программ Тех.анализа.
Плюс там есть своя математика и на уровне базы она работает быстрей.
Посмотреть профиль Отправить личное сообщение
zxWizard



Зарегистрирован: 25.09.2011
Сообщения: 46

СообщениеДобавлено: Вс Дек 11, 2011 12:27 am Ответить с цитатой Вернуться к началу

MOAX
Скажи какой таймер использует твой плагин для обновление данных из базы?
ODBC/SQL Universal AFL Plugin на пример 5 секунд, а мне бы хотелось 1 сек.
Посмотреть профиль Отправить личное сообщение
dd



Зарегистрирован: 22.11.2010
Сообщения: 10

СообщениеДобавлено: Ср Дек 28, 2011 5:25 pm Ответить с цитатой Вернуться к началу

Люди, кто-нибудь может написать подробную пошаговую инструкцию по установке и настройке от начала до конца? Пожалуйста! Моя очень хотеть, но ничего не понимать.
Посмотреть профиль Отправить личное сообщение
MOAX



Зарегистрирован: 13.03.2011
Сообщения: 44

СообщениеДобавлено: Ср Дек 28, 2011 8:57 pm Ответить с цитатой Вернуться к началу

dd писал(а):
Люди, кто-нибудь может написать подробную пошаговую инструкцию по установке и настройке от начала до конца? Пожалуйста! Моя очень хотеть, но ничего не понимать.


А что не понятно?
Задавай вопросы - отвечу.
Посмотреть профиль Отправить личное сообщение
zxWizard



Зарегистрирован: 25.09.2011
Сообщения: 46

СообщениеДобавлено: Сб Янв 14, 2012 11:58 pm Ответить с цитатой Вернуться к началу

Добрый день MOAX
Возникла проблема с atqOdbcNum( strQuery );
у тебя написано:
Цитата:
Возвращаемое значение: .... в случае ошибки Null (Empty).


Но она в случае ошибки возвращает "мусор" далеко не Null, а у меня в коде она используется для прерывания цикла в итого получаем не нужный проход цикла.

Можно ли как то это поправить в твоем плагине?

И еще можно ли получить исходный код твоего плагина?
Посмотреть профиль Отправить личное сообщение
MOAX



Зарегистрирован: 13.03.2011
Сообщения: 44

СообщениеДобавлено: Вс Янв 22, 2012 11:27 am Ответить с цитатой Вернуться к началу

zxWizard писал(а):
Добрый день MOAX
Возникла проблема с atqOdbcNum( strQuery );
у тебя написано:
Цитата:
Возвращаемое значение: .... в случае ошибки Null (Empty).


Но она в случае ошибки возвращает "мусор" далеко не Null, а у меня в коде она используется для прерывания цикла в итого получаем не нужный проход цикла.


А в каком случае возникает мусор:
- отсутствует запись в БД ?
- строковое или целое значение получаешь из БД ?
Посмотреть профиль Отправить личное сообщение
zxWizard



Зарегистрирован: 25.09.2011
Сообщения: 46

СообщениеДобавлено: Чт Янв 26, 2012 11:11 pm Ответить с цитатой Вернуться к началу

MOAX писал(а):

А в каком случае возникает мусор:
- отсутствует запись в БД ?
- строковое или целое значение получаешь из БД ?


- мусор возникает когда выполняется запрос который ни находит данных удовлетворяющих условию ( WHERE ) , а должен возвращать Null
- получаю целое числовое значение из БД

Эта проблема конкретно в функции atqOdbcNum,
заменил ее на atqOdbcStr с тем же условиям поиска она правильно возвращает пустую стороку "" если нет данных,
просто если значение есть приходится строку в число конвертировать по этому и хотел использовать atqOdbcNum.
Посмотреть профиль Отправить личное сообщение
MOAX



Зарегистрирован: 13.03.2011
Сообщения: 44

СообщениеДобавлено: Пт Янв 27, 2012 6:00 pm Ответить с цитатой Вернуться к началу

zxWizard писал(а):

- мусор возникает когда выполняется запрос который ни находит данных удовлетворяющих условию ( WHERE ) , а должен возвращать Null
- получаю целое числовое значение из БД

Эта проблема конкретно в функции atqOdbcNum,
заменил ее на atqOdbcStr с тем же условиям поиска она правильно возвращает пустую стороку "" если нет данных,
просто если значение есть приходится строку в число конвертировать по этому и хотел использовать atqOdbcNum.


Тут помочь не могу, числовое значение не может быть Null.
Посмотреть профиль Отправить личное сообщение
MOAX



Зарегистрирован: 13.03.2011
Сообщения: 44

СообщениеДобавлено: Пт Янв 27, 2012 6:26 pm Ответить с цитатой Вернуться к началу

Вообще, если используешь циклы - попробуй работать с базой данных через ADO прямо из Ами.

Пример:
Код:

oConnection = CreateObject( "ADODB.Connection" );
if( IsNull( oConnection ))
{
    PopupWindow(  "ADODB.Connection = 0", "Test ADO", 30 );
}
else
{
    oConnection.Open( "Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:\\TestADO.mdb" );
    sSQL = "SELECT * FROM TestTable";
    oRecordset = oConnection.Execute( sSQL );
    if( IsNull( oRecordset ))
    {
        PopupWindow(  "ADODB.Recordset = 0", "Test ADO", 30 );
    }
    else
    {
        oRecordset.MoveFirst();
        sText = "";
        while( oRecordset.EOF != -1 )
        {
            oFields = oRecordset.Fields;
            oItem  = oFields.Item( "sTicker" );
            sText   = sText + oItem.Value;
            oItem  = oFields.Item( "iTotalNet" );
            sText   = sText + " = " + oItem.Value + ";\n";
            oRecordset.MoveNext();
        }
        oRecordset.Close();
        oConnection.Close();
        if( sText != "" )
        {
            PopupWindow( sText, "Test ADO", 30 );
        }
   

    }
}


PS. Файл не нашел, перепечатывал с листочка, могут быть ошибки, но код рабочий.
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



Следующая тема
Предыдущая тема
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы не можете скачивать файлы


Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme :: Часовой пояс: GMT + 3

File Attachment © by Meik Sievertsen