Выписывать реестры ADO и VB 6.0

Я работаю с VB 6.0 и Классическим ADO, пробую вводить данные, но использую параметры.

Связь

Public cn As ADODB.Connection
Public rs As ADODB.Recordset

Public Function Conectar() As Boolean
    'TODO: Add 'Conectar' body here.
    Set cn = New ADODB.Connection
    Set rs = New ADODB.Recordset
    rs.CursorLocation = adUseClient
    cn.Open "Provider=SQLNCLI10;Server=DESKTOP-SRPQ8P3\Kuky;Database=PruebaVB6;Trusted_Connection=yes;"
End Function


Public Sub Desconectar()
    'TODO: Add 'Desconectar' body here.
    On Local Error Resume Next
    rs.Close
    Set rs = Nothing
    cn.Close
    Set cn = Nothing
End Sub

Метод

Public Sub Create(entity As persona)
'TODO: Add 'Create' body here.
On Error GoTo tratarError
Dim cmd As New Command
Conectar
With cmd
    .ActiveConnection = cn
    .CommandText = "INSERT INTO Personas(Nombre, Direccion, Telefono) VALUES(@Nombre, @Direccion, @Telefono)"
    .CommandType = adCmdText
    .NamedParameters = True
    .Parameters.Append .CreateParameter("@Nombre", adVarChar, adParamInput, 100, entity.Nombre)
    .Parameters.Append .CreateParameter("@Direccion", adVarChar, adParamInput, 150, entity.Direccion)
    .Parameters.Append .CreateParameter("@Telefono", adVarChar, adParamInput, 50, entity.Telefono)
    .Execute
End With
On Error GoTo 0
Exit Sub
Desconectar
tratarError:
    MsgBox Err.Description
End Sub

Ошибка, которую он показывает мне, состоит в том, чтобы он объявил переменную @Nombre

3
задан 14.04.2017, 08:18
0 ответов

Я смог решать это помещая закладки

.CommandText = "INSERT INTO Personas(Nombre, Direccion, Telefono) VALUES(?, ?, ?)"
2
ответ дан 03.12.2019, 17:54
  • 1
    ¿ У кого-то какая-то другая альтернатива есть? –  02.01.2017, 05:56
  • 2
    Видимо, ADO clá sico он не манипулирует pará метры по именам, если только не будет говориться об одном призыве к stored procedure. Así в который я верю, что твой solució n - правильный. –  02.01.2017, 16:46
  • 3
    @sstan, верно с stored procedure у меня нет проблем также как и implemto в вопросе функционирует хорошо. –  03.01.2017, 02:50

Ты должен создавать параметр перед тем, как выполнять консультацию. Именно поэтому тебя не распознает имя переменной @nombre, потому что он пробует вводить стоимость в переменной, которая даже не является очевидной.

0
ответ дан 03.12.2019, 17:54

Теги

Похожие вопросы