Problemas con el UPDATE

05/05/2006 - 01:36 por Flavio | Informe spam
Hola a todos, quisiera ver si alguien me puede ayudar.

Al ejecutar un UPDATE sobre una base de datos me manda un "Sintax Error" que
es el siguiente:
Syntax error.
Description: An unhandled exception occurred during the execution of the
current web request. Please review the stack trace for more information about
the error and where it originated in the code.

Exception Details: System.Data.OleDb.OleDbException: Syntax error.

[OleDbException (0x80040e14): Syntax error.]

-

Les envio el codigo que estoy usando a ver si alguien detecta el error que
estoy cometiendo.

Dim comasql As String = "UPDATE clavacce SET cve_acceso = @cveacceso,
inci_caca = @incicaca, fici_caca = @ficicaca WHERE RTRIM(LTRIM(usuario)) = '"
& Trim(listusua) & "' AND estatus <= 'A'"
Dim StrConn As String = Session("ProveedorDeDatos")
Dim conn As System.Data.OleDb.OleDbConnection = New
System.Data.OleDb.OleDbConnection(StrConn)
Dim cmd As System.Data.OleDb.OleDbCommand = New
System.Data.OleDb.OleDbCommand(comasql, conn)
Dim adap As System.Data.OleDb.OleDbDataAdapter = New
System.Data.OleDb.OleDbDataAdapter()
With cmd
.Connection = conn
.CommandText = comasql
.Parameters.Add("@cveacceso", System.Data.OleDb.OleDbType.Char)
.Parameters.Add("@incicaca", System.Data.OleDb.OleDbType.Date)
.Parameters.Add("@ficicaca", System.Data.OleDb.OleDbType.Date)
.Parameters("@cveacceso").Value = nipnuevo
.Parameters("@incicaca").Value = incicaca
.Parameters("@ficicaca").Value = ficicaca
End With
conn.Open()

' OJO: Al ejecutar la linea siguiente es donde me manda el error de sintaxis.
NoReCoSQL = cmd.ExecuteNonQuery()


adap.SelectCommand = cmd
adap.Fill(dsClavAcce, "Tabla")
conn.Close()

Saludos.
 

Leer las respuestas

#1 Alberto Poblacion
05/05/2006 - 08:44 | Informe spam
"Flavio" wrote in message
news:
Al ejecutar un UPDATE sobre una base de datos me manda un "Sintax Error"
[...]
Dim comasql As String = "UPDATE clavacce SET cve_acceso = @cveacceso,
[...]
Dim conn As System.Data.OleDb.OleDbConnection = [...]



Estás usando OleDb, pero estás pasando los parámetros al estilo del
SqlClient (con @). Cuando se usa OleDb, los parámetros usan únicamente una
interrogación (?), y no llevan nombre (se asignan en el mismo orden en que
aparecen en la sentencia).

Por cierto, otra cosa, aunque el error te da antes que eso: Más abajo en
tu código metes la misma sentencia Update en el SelectCommand de un
DataAdapter y haces un Fill. Eso también fallará: en el SelectCommand hay
que meter un Select, no un Update.

Preguntas similares