IronPython에서 asp.net의 ado.net 트랜잭션을 생성하려고하는데 다음 오류가 발생합니다. "구성원 롤백을 찾을 수 없습니다"IronPython에서 ado.net 트랜잭션을 만들 수 없습니다.
vb.net ado.net 트랜잭션을 사용하여 ironpython ado.net 트랜잭션에서 다른 점을 보려고했지만 차이점을 보거나 사람이 작동하지 않는 이유와 다른 이유를 찾을 수 없습니다. 아마도 내가 뭔가를 보이지 않아요,이 테스트 코드
VB.NET
Partial Class prueba
Inherits sql_conexiones
Sub bt_aceptar_click(ByVal s As Object, ByVal e As EventArgs)
Dim objTransaction As SqlTransaction
Dim conpubs As SqlConnection = New SqlConnection("Persist Security Info=False;Data Source=PABLODALMA;Initial Catalog=SistemaHYM;User ID=sa;Password=usuario;Connect Timeout=180")
Dim strUpdateA As String = "UPDATE bancos SET descripcion_banco = 'prueba' WHERE cod_banco = 1"
Dim strUpdateB As String = "UPDATE bancos SET descripcion_banco = 'pruebados' WHERE cod_banco = 1"
Dim cmdUpdateA As SqlCommand
Dim cmdUpdateB As SqlCommand
cmdUpdateA = New SqlCommand(strUpdateA, conpubs)
cmdUpdateB = New SqlCommand(strUpdateB, conpubs)
conpubs.Open()
objTransaction = conpubs.BeginTransaction
Try
cmdUpdateA.ExecuteNonQuery()
cmdUpdateB.ExecuteNonQuery()
objTransaction.Commit()
Response.Write("ok")
Catch ex As Exception
objTransaction.Rollback()
Response.Write("no ok")
Finally
conpubs.Close()
End Try
End Sub
End Class
IronPython의 다른
import clr
clr.AddReference('System.Data') # Agrega espacio de nombres Data
from System.Data import * #uso esta forma para importar o la otra?
clr.AddReference('System')
import System # Agrega espacio de nombres System
def bt_aceptar_click(sender,e):
objTransaction = System.Data.SqlClient.SqlTransaction
conpubs = System.Data.SqlClient.SqlConnection("Persist Security Info=False;Data Source=PABLODALMA;Initial Catalog=SistemaHYM;User ID=sa;Password=usuario;Connect Timeout=180")
strUpdateA = "UPDATE bancos SET descripcion_banco = 'prueba' WHERE cod_banco = 1"
strUpdateB = "UPDATE bancos SET descripcion_banco = 'pruebados' WHERE cod_banco = 1"
cmdUpdateA = System.Data.SqlClient.SqlCommand(strUpdateA, conpubs)
cmdUpdateB = System.Data.SqlClient.SqlCommand(strUpdateB, conpubs)
conpubs.Open()
objTransaction = conpubs.BeginTransaction
try:
cmdUpdateA.ExecuteNonQuery()
cmdUpdateB.ExecuteNonQuery()
objTransaction.Commit()
Response.Write("ok")
except:
objTransaction.Rollback()
Response.Write("no ok")
else:
conpubs.Close()
뭔가가 객체 관리자는 매우 다른 개체를 보여주는 말할한다. VB.NET은
objTransaction System.Data.SqlClient.SqlTransaction
- 연결 System.Data.SqlClient.SqlConnection
- IsolationLevel READCOMMITTED (4096)
IronPython을 말한다 objTransaction Microsoft는 말할 때 .Scripting.BoundBuiltinFunction은 하위 항목 집합이 더 넓습니다. 이것은 아마도 문제와 관련된 것이지만 기술 수준을 알고있는 것은 아닙니다. "public member"-> instance -> "System.Data.SqlClient.SqlTransaction"과 같은 ado.net 트랜잭션과 관련된 객체에 대한 몇 가지 참조가 있습니다. IronPython이 필요한 객체를 생성하고 있습니까? 아니면 다른 유형의 객체를 생성하고있는 중입니까? 그 때문에 오류가 발생합니다.
들어 BeginTransaction() <다음과 같이, 들어 BeginTransaction 뒤의 괄호를 추가하려고? – JulianM
맞아, 그건 그랬어 :) – Pablo
당신이 대답으로 해설을 게시하면, 나는 그것을 받아 들일 것이다 :) – Pablo