SAP com VB6 VB.NET Diferença de comportamento
Private Sub Form_Terminate()
SAPBAPIControl.Connection.Logoff
End Sub
Private Sub SAPLogonControl_Click()
Set SAPBAPIControl.Connection = SAPLogonControl.NewConnection
SAPBAPIControl.Connection.Client = "100"
If SAPBAPIControl.Connection.Logon(0, False) Then
MsgBox SAPBAPIControl.Connection.IsConnected
End If
End Sub
em VB.NET 2010 I write:
Public Class MainForm
Private Sub MainForm_FormClosing(sender As Object, e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
AxSAPBAPIControl1.Connection.Logoff()
End Sub
Private Sub AxSAPLogonControl1_ClickEvent(sender As Object, e As System.EventArgs) Handles AxSAPLogonControl1.ClickEvent
AxSAPBAPIControl1.Connection = AxSAPLogonControl1.NewConnection()
AxSAPBAPIControl1.Connection.Client = "100"
If AxSAPBAPIControl1.Connection.Logon(0, False) Then
MsgBox(AxSAPBAPIControl1.Connection.IsConnected)
End If
End Sub
End Class
e acabar com:
O VB6 funciona. Alguém tem uma ideia de como transferir o objecto de ligação para a outra classe em VB.NET Obrigado. pela ajuda.Eine Ausnahme (erste Chance) des Typs "System.AccessViolationException " ist in mscorlib.dll aufgetreten. em .Cliente = " 100 "
2 answers
AxSAPBAPIControl1 = AxSAPBAPIControl1.Connection = AxSAPLogonControl1.NewConnection()
Eu acho que AxSAPBAPIControl1 lhe dá um objeto de conexão e não se modifica a si mesmo - então você está abrindo uma nova conexão, que nunca é usada, e então o AxSAPBAPIControl1 "desconectado" é usado. Não conheço SAP-Com, mas este tipo de krad está a acontecer em msoffice.interop acontece às vezes. Por favor, dê-me algum feedback.
Em vez de VB.NET 2010 tente com C# e deixe-nos saber se você ainda tem o mesmo problema. quando vou tentar usar vb.net para a baixa comunicação, o meu programa caiu, em seguida, mudou algumas partes do código para dll em C# e tudo funcionou.
Antes de criar um dll, deve tentar traduzir o exemplo publicado para C# e depois ver se foi corrigido {[[2]} Saúde.