SQL Server View in AX?

25. Mai 2012 12:03

Hallo,

ich arbeite seit kurzem mit AX (komme an sich aus der C#, SQL-Welt) und erforsche gerade das Thema Views.

Ist es eigentlich möglich eine auf dem SQL Server erstellt View auch in AX zu nutzen?
Dadurch wäre es dann beispielsweise möglich Indizierte Views zu nutzen... Ich habe einen Artikel gefunden, der aber nur für NAV gilt (http://dynamicsuser.net/blogs/waldo/arc ... s-nav.aspx)

Gruß,
Frank

25. Mai 2012 12:45

[Beitrag aus dem Forum NAV 4.xx nach AX 4.xx verschoben.]

Gruß, Natalie
MSDynamics.de-Team

Re: SQL Server View in AX?

30. Mai 2012 10:32

Hi,

ja, man kann Views des SQL Servers in AX verwenden.

Aber. :-)
Mann muss sich die Frage stellen, ob dies für einen konkrete Problemstellung sinnvoll ist. Damit es keine Probleme zwischen AX und dem SQL Server gibt, muss AX alle Objekte der Datenbank "kennen".
legt man nun einen Index im SQL Server an, welchen AX nicht kennt (oder auch unter bestimmten Umständen eine View), kommt es beim nächsten Synchronisieren zu einem großen Probleme, da alle nicht in AX durchgeführten Änderungen verschwunden sind.

Aus meiner Erfahrung werden aber auch nur in "Sonderfällen" SQL Server Seitige Lösungen (wie eine View die nicht aus AX angelegt wird) benötigt.

Re: SQL Server View in AX?

30. Mai 2012 11:08

Hallo!
Vielen Dank der Antwort.

Ich würde trotzdem gerne wissen, wie ich eine SQL-Server-View in AX ansprechen kann. Die einzige Möglichkeit die ich gefunden habe, wäre folgende (Code kann nicht in einem Job ausgeführt werden und die "RunOn"-Eigenschaft der Klasse muss auf "Server" gesetzt werden):

Code:
static void Test()
{
    Connection Con = new Connection();
    Statement Stmt = Con.createStatement();
    SqlStatementExecutePermission exe;
    ResultSet rs ;
    ;

    exe = new SqlStatementExecutePermission('SELECT * FROM TESTVIEW');
    exe.assert();

    rs = Stmt.executeQuery('SELECT * FROM TESTVIEW');

    while ( rs.next() )
    {
        print rs.getString(1);
    }

    rs.close();
    Con = null;
}


Gruß,
Frank

Re: SQL Server View in AX?

3. Juni 2012 13:35

Hi,

fpeters@eno.de hat geschrieben:Ich würde trotzdem gerne wissen, wie ich eine SQL-Server-View in AX ansprechen kann. Die einzige Möglichkeit die ich gefunden habe, wäre folgende (Code kann nicht in einem Job ausgeführt werden und die "RunOn"-Eigenschaft der Klasse muss auf "Server" gesetzt werden):


eigentlich sollten man nach meiner Meinung Jobs auch nicht für "produktiven Code" verwenden.
Weiterhin macht es auch Sinn, solchen Code auf dem Server ausführen zu lassen um keine unnötigen Verbindungen von einem Client zur Datenbank aufzubauen. Alle Datenbankverbindungen in AX werden immer nur vom Server (AOS) erstellt.

Schau dir aber mal einen etwas älteren Beitrag in meinem Blog an (Ein kurzer Einblick in ADO).
Auch dieser Beitrag hier eines anderen Blogs könnte dir helfen (Connecting to Databases through X++).

In AX 4.0 und AX 2009 sollte dieser Weg auch funktioniren.

Re: SQL Server View in AX?

4. Juni 2012 08:03

Hallo!
Erstmal vielen Dank für die Antworten / Links!

akuehn hat geschrieben:Schau dir aber mal einen etwas älteren Beitrag in meinem Blog an (Ein kurzer Einblick in ADO).
Auch dieser Beitrag hier eines anderen Blogs könnte dir helfen (Connecting to Databases through X++).

Das ich nochmal auf das alte ADO treffe ;). Ist zwar schon Jahre her (VB6 lässt grüßen), aber das krieg ich hin :).

akuehn hat geschrieben:eigentlich sollten man nach meiner Meinung Jobs auch nicht für "produktiven Code" verwenden.
Weiterhin macht es auch Sinn, solchen Code auf dem Server ausführen zu lassen um keine unnötigen Verbindungen von einem Client zur Datenbank aufzubauen. Alle Datenbankverbindungen in AX werden immer nur vom Server (AOS) erstellt.

Ist derzeit auch nur für die Tests vorgesehen... Allerdings: Aus welchem Grund sollte man Jobs nicht für "produktiven Code" verwenden?

Gruß,
Frank