Почему при обновлении поля выдается ошибка Binding Collection - PullRequest
0 голосов
/ 30 октября 2018

У меня есть приложение VB6, которое подключается к серверу SQL Server с помощью ADODB 2.8 . Я объявил привязки и наборы записей. Информация отображается правильно. Тем не менее, когда я пытаюсь обновить любое поле, я получаю сообщение об ошибке:

Ошибка сбора привязки

Поле не может быть изменено, Имя свойства привязки: текст, Имя поля: DTMOUVEMEN

Я почти уверен, что это как-то связано с тем, как создается ADODB.Recorset, но я понятия не имею, VB6 - не моя область знаний.

Текстовое поле в моей форме, привязанное к ADODC, выглядит следующим образом

  Begin VB.TextBox DTMOUVEMENT 
     BackColor       =   &H00E0E0E0&
     DataField       =   "DTMOUVEMEN"
     DataSource      =   "DataTYPEMOUVEMENTADO"
     Height          =   315
     Left            =   2820
     Locked          =   -1  'True
     TabIndex        =   1
     TabStop         =   0   'False
     Text            =   "DTMOUVEMENT"
     Top             =   2820
     Width           =   2895
  End

Компонент ADODC определен так

Begin MSAdodcLib.Adodc DataTYPEMOUVEMENTADO 
  Height          =   330
  Left            =   5800
  Top             =   2500
  Width           =   2295
  _ExtentX        =   4048
  _ExtentY        =   582
  ConnectMode     =   0
  CursorLocation  =   3
  IsolationLevel  =   -1
  ConnectionTimeout=   15
  CommandTimeout  =   30
  CursorType      =   3
  LockType        =   3
  CommandType     =   8
  CursorOptions   =   0
  CacheSize       =   50
  MaxRecords      =   0
  BOFAction       =   0
  EOFAction       =   0
  ConnectStringType=   1
  Appearance      =   1
  BackColor       =   -2147483643
  ForeColor       =   -2147483640
  Orientation     =   0
  Enabled         =   -1
  Connect         =   ""
  OLEDBString     =   ""
  OLEDBFile       =   ""
  DataSourceName  =   ""
  OtherAttributes =   ""
  UserName        =   ""
  Password        =   ""
  RecordSource    =   ""
  Caption         =   "DataTYPEMOUVEMENTADO"
  BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
     Name            =   "MS Sans Serif"
     Size            =   8.25
     Charset         =   0
     Weight          =   400
     Underline       =   0   'False
     Italic          =   0   'False
     Strikethrough   =   0   'False
  EndProperty
  _Version        =   393216
End

Компонент ADODC связывается следующим образом

strSQL = "here goes the sql query"
Set adoRS = New ADODB.Recordset
With adoRS
    .CursorLocation = adUseServer
    .CursorType = adOpenDynamic
    .LockType = adLockOptimistic
    .Open strSQL, adoDbConn 
End With
Set Me.DataTYPEMOUVEMENTADO.Recordset = adoRS

Соединение определяется так

    Set adoDbConn = New ADODB.Connection

    ' Specify the OLE DB provider.
    adoDbConn.Provider = "sqloledb"
    adoDbConn.Mode = adModeReadWrite
    adoDbConn.Open "connection string data"

1 Ответ

0 голосов
/ 02 ноября 2018

Хорошо, я обнаружил ошибку. Для этого конкретного случая SQL-запрос был определен неправильно, поэтому в наборе записей Adodc не было задано поле DTMOUVEMEN .

...