Beispiele für SQL-Statements aus AX heraus

Nachstehend Beispiele für den Zugriff auf die AX-Datenbank per SQL-Statement, diese Zugriffe müssen im übrigen immer serverseitig erfolgen (runOn-Property).

Beispiel für ein SELECT-Statement

public void run()
{
    Connection                      connection = new Connection();
    Statement                       stmt = connection.createStatement();
    sqlStatementExecutePermission   sqlStatementExecutePermission;
    str                             sqlStmt;
    resultSet                       resultSet;
    ;
    
    sqlStmt = "SELECT accountNum, name, creditMax FROM custTable;";
    
    sqlStatementExecutePermission = new SqlStatementExecutePermission(sqlStmt);
    sqlStatementExecutePermission.assert();     resultSet = stmt.executeQuery(sqlStmt);

    while (resultSet.next())
    {
        info(strFmt("%1 %2 %3", resultSet.getString(1), resultSet.getString(2), resultSet.getReal(3)));
    }
    CodeAccessPermission::revertAssert();
}

Übrigens: Wenn folgender Fehler beim Abfragen des resultSets auftritt, kann die Ursache ein ungültiges SQL-Statement sein!

Ein Datensatz in  () kann nicht ausgewählt werden.
Die SQL-Datenbank hat einen Fehler gemeldet.

 

Beispiel für ein UPDATE-Statement

public void run()
{
    Connection                      connection = new Connection();
    Statement                       stmt = connection.createStatement();
    sqlStatementExecutePermission   sqlStatementExecutePermission;
    str                             sqlStmt;
    ;

    connection.ttsbegin();

    sqlStmt = "UPDATE custtable SET creditmax = 5000 WHERE accountNum = '100001';";    
    sqlStatementExecutePermission = new SqlStatementExecutePermission(sqlStmt);
    sqlStatementExecutePermission.assert();
    stmt.executeUpdate(sqlStmt);
    CodeAccessPermission::revertAssert();
    
    connection.ttscommit();
}

 

Beispiel für ein DELETE-Statement

public void run()
{
    Connection                      connection = new Connection();
    Statement                       stmt = connection.createStatement();
    sqlStatementExecutePermission   sqlStatementExecutePermission;
    str                             sqlStmt;
    ;
    connection.ttsbegin();    
    
    sqlStmt = "DELETE FROM custtable WHERE accountNum = '902302';";
    sqlStatementExecutePermission = new SqlStatementExecutePermission(sqlStmt);
    sqlStatementExecutePermission.assert();
    stmt.executeUpdate(sqlStmt);

    CodeAccessPermission::revertAssert();

    connection.ttscommit();
}
Dieser Beitrag bezieht sich auf die Version:
Dynamics AX 2009

Kommentar hinzufügen
 
 

 

 
 
 
Beiträge des aktuellen Monats
Mai 2024
MoDiMiDoFrSaSo
 12345
6789101112
13141516171819
20212223242526
2728293031 
 
© 2006-2024 Heinz Schweda | Impressum | Kontakt | English version | Mobile Version
Diese Webseite verwendet Cookies, um Benutzern einen besseren Service anzubieten. Wenn Sie weiterhin auf der Seite bleiben, stimmen Sie der Verwendung von Cookies zu.  Mehr dazu