|
|
#5 |
|
Участник
|
Не помогло
Вот тестовый пример, аналогичный описываемой задаче: X++: public server static void testSQL() { Set permissionSet = new Set(Types::Class); Connection connection; Statement statement; str query; TestTable3798 testTable; //test table (SaveDataPerCompany = No) with one field str[10] named Field1 ; query += "BEGIN TRY \n"; query += "BEGIN TRANSACTION; \n"; query += "SELECT TOP 1 * FROM CustTable; \n"; query += "INSERT INTO TESTTABLE3798 (Field1, RecId) VALUES ('test', 123456); \n" ; query += "SELECT TOP 1 * FROM SYSTEMSEQUENCES WHERE NAME = -1; \n"; //query with error query += "COMMIT TRANSACTION; \n"; query += "END TRY \n"; query += "BEGIN CATCH \n"; query += "ROLLBACK TRANSACTION; \n"; query += "THROW; \n"; query += "END CATCH \n"; connection = new Connection(); statement = connection.createStatement(); permissionSet.add(new SqlStatementExecutePermission(query)); CodeAccessPermission::assertMultiple(permissionSet); statement.executeUpdate(query); CodeAccessPermission::revertAssert(); } Код: BEGIN TRY
BEGIN TRANSACTION;
SELECT TOP 1 * FROM CustTable;
INSERT INTO TESTTABLE3798 (Field1, RecId) VALUES ('test', 123456);
SELECT TOP 1 * FROM SYSTEMSEQUENCES WHERE NAME = -1;
COMMIT TRANSACTION;
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION;
THROW;
END CATCHЦитата:
(1 row(s) affected)
(1 row(s) affected) (0 row(s) affected) Msg 245, Level 16, State 1, Line 5 Conversion failed when converting the nvarchar value 'Event' to data type int. |
|
|
| Теги |
| error, executeupdate, sql, statement, transact sql, transaction |
|
|
|