AXForum  
Zurück   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Kennwort vergessen?
Registrieren Forum Rules Hilfe Benutzerliste Heutige Beiträge Suchen

 
 
Themen-Optionen Thema durchsuchen Ansicht
Alt 27.03.2013, 12:46   #1  
iCloud ist offline
iCloud
Enjoy!
Benutzerbild von iCloud
MCP
Злыдни
 
195 / 112 (4) +++++
Registriert seit: 06.03.2012
! ax2009, CLR-функция
Привет коллеги, помогите разобраться.

У меня на SQL есть табличная CLR-функция, которая принимает параметры (@startDate и @endDate). Условно назовем её dbo.GetTransactions.
Пример вызова:
select DATE, CODE, COMPANY, TRANSACTIONS from dbo.GetTransactions('2013-02-01', '2013-02-28');

Структура таблицы в SQL.
DATE - дата (тип поля - date)
CODE - код ресторана в RKeeper (тип поля - int)
COMPANY - код компании (nvarchar(255))
TRANSACTIONS - количество чеков (int)

Пытался сделать через Statement так:
X++:
static void test_getSQLData_v2(Args _args)
{
    UserConnection                  connection;
    Statement                       stmt;
    SqlStatementExecutePermission   sqlStatementExecutePermission;
    TransDate                       fromDate = 01\02\2013,
                                    toDate   = 28\02\2013;
    Str                             _sql;
    ResultSet                       resultSet;
    ;

    try
    {
        _sql = strfmt("select DATE, CODE, COMPANY, TRANSACTIONS from dbo.GetTransactions('%1', '%2')",
                   date2str(fromDate, 321, 2, 3, 2, 3, 4),
                   date2str(toDate,   321, 2, 3, 2, 3, 4));
        connection = new Connection();
        connection.ttsbegin();
        sqlStatementExecutePermission = new SqlStatementExecutePermission(_sql);
        sqlStatementExecutePermission.assert();
        stmt = connection.createStatement();
        
        resultSet = stmt.executeQuery(_sql);

        connection.ttscommit();
        stmt.close();
        CodeAccessPermission::revertAssert();
        
        while(resultSet.next())
        {
            print resultSet.getString(1);
        }
    }
    catch(Exception::Error)
    {
        error(_sql);
        error(stmt.getLastErrorText());
    }
}
Для решения данной задачи, т. к. придется хранить полученные данные, создал таблицу с соответствующими полями. Как правильно достать данные?
Подскажите, правильно ли копаю.
Alt 27.03.2013, 12:56   #2  
iCloud ist offline
iCloud
Enjoy!
Benutzerbild von iCloud
MCP
Злыдни
 
195 / 112 (4) +++++
Registriert seit: 06.03.2012
Ошибка вываливается на моменте resultSet = stmt.executeQuery(_sql);

Сбой запроса на разрешение типа "SqlStatementExecutePermission".
(S)\Classes\SqlStatementExecutePermission\demand
(S)\Classes\Statement\executeQuery
(C)\Jobs\N_TurnoverGetSQLData_v2 - line 23
Alt 27.03.2013, 13:29   #3  
belugin ist offline
belugin
Участник
Benutzerbild von belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4.622 / 2925 (107) +++++++++
Registriert seit: 16.01.2004
Blog-Einträge: 5
Попробуйте выполнить код на сервере: http://msdn.microsoft.com/en-us/library/bb190039.aspx
Alt 27.03.2013, 13:44   #4  
iCloud ist offline
iCloud
Enjoy!
Benutzerbild von iCloud
MCP
Злыдни
 
195 / 112 (4) +++++
Registriert seit: 06.03.2012
К сожалению не помогло, но спасибо за помощь!
Alt 27.03.2013, 13:45   #5  
belugin ist offline
belugin
Участник
Benutzerbild von belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4.622 / 2925 (107) +++++++++
Registriert seit: 16.01.2004
Blog-Einträge: 5
ошибка та же?
Alt 27.03.2013, 13:48   #6  
iCloud ist offline
iCloud
Enjoy!
Benutzerbild von iCloud
MCP
Злыдни
 
195 / 112 (4) +++++
Registriert seit: 06.03.2012
Да. 1 в 1.
Alt 27.03.2013, 13:52   #7  
iCloud ist offline
iCloud
Enjoy!
Benutzerbild von iCloud
MCP
Злыдни
 
195 / 112 (4) +++++
Registriert seit: 06.03.2012
подменяю запрос на простой типа select * from dbo.LedgerTrans, аналогичная штука.
Alt 27.03.2013, 13:52   #8  
belugin ist offline
belugin
Участник
Benutzerbild von belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4.622 / 2925 (107) +++++++++
Registriert seit: 16.01.2004
Blog-Einträge: 5
Коллстек должен быть другим - с буковкой (S)
Alt 27.03.2013, 14:34   #9  
iCloud ist offline
iCloud
Enjoy!
Benutzerbild von iCloud
MCP
Злыдни
 
195 / 112 (4) +++++
Registriert seit: 06.03.2012
Zitat:
Zitat von belugin Beitrag anzeigen
Коллстек должен быть другим - с буковкой (S)
Извинияюсь за неандертальство, а можно пояснить?
Alt 27.03.2013, 14:53   #10  
belugin ist offline
belugin
Участник
Benutzerbild von belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4.622 / 2925 (107) +++++++++
Registriert seit: 16.01.2004
Blog-Einträge: 5
Было

(S)\Classes\SqlStatementExecutePermission\demand
(S)\Classes\Statement\executeQuery
(C)\Jobs\N_TurnoverGetSQLData_v2 - line 23

Должно быть

(S)\Classes\SqlStatementExecutePermission\demand
(S)\Classes\Statement\executeQuery
(S)\Jobs\N_TurnoverGetSQLData_v2 - line 23

Это значит, что оно действительно стало выполняться на сервере
This post has been rated by: iCloud (2).
Alt 27.03.2013, 15:20   #11  
iCloud ist offline
iCloud
Enjoy!
Benutzerbild von iCloud
MCP
Злыдни
 
195 / 112 (4) +++++
Registriert seit: 06.03.2012
Спасибо огромное, все заработало, да проблема была именно с (S) выполнением!
Stichworte
clr

 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
ax-erp: Dynamics Ax Musings: X++ in the .NET CLR : Life in the Fast Lane Blog bot DAX Blogs 0 19.11.2012 20:11
axinthefield: Choosing a Single Deployment or Multiple Deployments of AX2009 Blog bot DAX Blogs 0 15.06.2011 03:25
Функция global::valueFromXMLNode() в Ax2009 работает не корректно someOne DAX: Программирование 3 09.12.2010 15:58
emeadaxsupport: Working with CLR Exceptions in Dynamics AX X++ code Blog bot DAX Blogs 0 22.07.2010 19:06
Arijit Basu: Microsoft Dynamics AX CLR Interop Blog bot DAX Blogs 0 07.10.2007 01:03

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Gehe zu

Рейтинг@Mail.ru
Alle Zeitangaben in WEZ +3. Es ist jetzt 02:31 Uhr.
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.