[gelöst] SqlStatementExecutePermission

14. Oktober 2010 11:40

Hallo,

ich versuche gerade, für einen Kunden ein Projekt an eine ältere Axapta Version (3.0) anzupassen. Beim Kompilieren eines Class Objektes erhalte ich folgenden Fehler:
Variable SqlStatementExecutePermission wurde nicht deklariert.

Der Code sieht sinngemäß so aus:
public static server ProdId
Foo( )
{
SqlStatementExecutePermission perm;
;
// some sql stuff
}

Er scheint SqlStatementExecutePermission also nicht als Datentypen zu erkennen. Gab es das in Axapta 3.0 noch nicht? Hieß das da anders? Gibt es etwas, was ich alternativ benutzen kann, um direct squl statements abzuschicken?

Für Hinweise dankbar,
Jutta
Zuletzt geändert von Jutta Jordans am 22. Oktober 2010 10:23, insgesamt 1-mal geändert.

Re: SqlStatementExecutePermission

14. Oktober 2010 12:08

Hi Jutta,

mir ist es erst ab 4.0 bekannt. Hier der Link zur http://msdn.microsoft.com/en-us/library/aa639808.aspx. Dort wird beschrieben, dass es erst in 4.0 eingeführt wurde.

Gruß

Martin

Re: SqlStatementExecutePermission

17. Oktober 2010 23:10

Hi Jutta,

in AX 3.0 gab es das Objekt "SqlStatementExceutePermission" noch nicht.

Wie Martin bereits geschreiben hat, wurde dieses erst in Version 4.0 eingeführt.

Dieses Permission-Objekt wird allerdings nicht verwendet, um ein SQL-Statement gegen die Datenbank abzusetzen, sonden um dem Code, welcher dies macht, entsprechende Berechtigungen zur Ausführung zu geben. Ab AX 4.0 läuft man in einer Fehler, wenn diese Berechtigung nicht mit dem SqlStatementExceutePermission-Objekt vergeben werden. Hintergrund ist, dass nicht einfach mal so Code ausgeführt werden kann/soll, welcher mehr oder minder unkontrolliert mit der Datenabnk arbeiten kann (Sichwort "Böser-Code").

Unter AX 3.0 war eine solche expliziete "Rechtevergabe" noch nicht notwendig.
Somit sollte es theoretisch reichen, wenn du die Aufrufe einfach auskommentierst.
Die eigentliche Datenbankoperation sollte ja über z.B. Connection-Objekt ausgeführt werden.....

Re: SqlStatementExecutePermission

22. Oktober 2010 10:22

Danke, das war die Info, auf die ich gehofft hatte :wink:

Dass es funktioniert, wenn ich den Aufruf einfach auskommentiere, hatte ich inzwischen durch Ausprobieren herausgefunden. Ich war mir nur nicht sicher, ob ich damit irgendwas kaputt gemacht hab.

Ich setz das hier dann mal auf gelöst.

Danke,
Jutta