por favor ayudenme

14/07/2003 - 15:42 por Roberto Kanashiro | Informe spam
Por que cuando intento grabar con ADO me sale este
error "Insufficient base table information for updating or
refreshing." pero cuando lo hago asi

oConnect.Execute "UPDATE tabusu SET cargo = '" +
txtCargo.Text + "'"
oConnect.Execute "COMMIT"

No tengo ningun problema a que se debe esto

Salu2

Preguntas similare

Leer las respuestas

#1 Victor Koch
14/07/2003 - 15:51 | Informe spam
Seguramente cuando abris el recordset no estas trayendo los campos definidos
como PK, es decir no se los estas incluyendo en el SELECT.

Un saludo, Víctor Koch.


"Roberto Kanashiro" escribió en el mensaje
news:08e901c34a0d$cf4c4be0$
Por que cuando intento grabar con ADO me sale este
error "Insufficient base table information for updating or
refreshing." pero cuando lo hago asi

oConnect.Execute "UPDATE tabusu SET cargo = '" +
txtCargo.Text + "'"
oConnect.Execute "COMMIT"

No tengo ningun problema a que se debe esto

Salu2
Respuesta Responder a este mensaje
#2 Leonardo Azpurua
14/07/2003 - 16:30 | Informe spam
"Roberto Kanashiro" escribió en el mensaje
news:08e901c34a0d$cf4c4be0$
Por que cuando intento grabar con ADO me sale este
error "Insufficient base table information for updating or
refreshing." pero cuando lo hago asi

oConnect.Execute "UPDATE tabusu SET cargo = '" +
txtCargo.Text + "'"
oConnect.Execute "COMMIT"

No tengo ningun problema a que se debe esto

Salu2



Roberto:

El resultado de ejecutar la instrucción en cuestión será hacer el contenido
de la columna cargo igual al valor actual de txCargo.Text PARA TODOS LOS
REGISTROS contenidos en la tabla tabusu. No creo que quieras hacer eso :-)

Habría que ver el diseño de la tabla, y conocer cual es el SGBD que estas
usando y el proveedor en cuestión. Pero todo sugiere que lo que te apunta
Víctor es correcto.

Con frecuencia, cuando intentas ejecutar una actualización mediante comandos
en ADO (con .Update), el proveedor ensambla una instrucción SQL que es
transmitida al servidor para que la ejecute. Al no tener definida una clave
principal, no hay una manera inequívoca de identificar el registro, y antes
que hacer una trastada, se genera un error.

Tal vez si redisñeas la tabla, agregndo un campo autonumérico (o identity)
que luego definas compo clave primaria, podrías ejecutar la instrucción
correctamente.

Salud!

Leonardo
MS MVP
Respuesta Responder a este mensaje
#3 Victor Koch
14/07/2003 - 16:51 | Informe spam
Tenes en la tabla tabusu definida una clave primaria unica, PK, para
identificar en forma unica al registro?.

Un saludo, Víctor Koch.


"Roberto Kanashiro" escribió en el mensaje
news:000401c34a11$6df4b900$
Lo tengo definido de esta manera.

Dim rsUsuarios As New ADODB.Recordset
rsUsuarios.Open "SELECT * FROM tabusu", oConnect,
adOpenDynamic, adLockOptimistic

como hago para abrirlo con PK

Gracias
Respuesta Responder a este mensaje
#4 Leonardo Azpurua
14/07/2003 - 17:53 | Informe spam
Hola, Roberto:

Según lo que describes, no existe ninguna razón "lógica" para ese error.

Al seleccionar todos los campos del registro, y tener el registro una clave
primaria definida, ya existe suficiente información para registrar cualquier
cambio. Asegurate de que el campo Departamento no tenga alguna restricción o
relación que esté impidiendo la actualización (con alguna frecuencia la
descripcion de los errores no tiene nada que ver con el error real).

Probablemente se trate de algún error en la implementación del proveedor.

La única solución que se me ocurre es que reemplaces la actualización
mediante instrucciones de ADO por un comando SQL, tal como describes en tu
primer post (agregando el WHERE, porque si no vas a hacer un desastre ;-)

Salud!

Leonardo
MS MVP

"Roberto Kanashiro" escribió en el mensaje
news:089601c34a17$3b767cb0$
Hola amigo, gracias por tu respuesta, mira la base de
datos que estoy usando esta hecho en SYBASE y lo abro de
la suguiente manera:

Dim oConnect As New ADODB.Connection
Dim rsUsuarios As New ADODB.Recordset

oConnect.CursorLocation = adUseClient
oConnect.Open "Provider=ASAProv.80; Data
Source=sql_comercial", "dba", "sql"

rsUsuarios.Open "SELECT * FROM tabusu", oConnect,
adOpenDynamic, adLockPessimistic

La Tabla TABUSU tiene un PK que es codusu, y lo que
intento hacer en este ejemplo es editar los datos de un
registro ya existente, es ahi donde me genera el error.

Lo que no se, es como abrir y traer el PK.

Gracias por las respuestas
Respuesta Responder a este mensaje
#5 Edgar Contreras
15/07/2003 - 02:49 | Informe spam
Roberto...

Si deseas puedes mandarme el codigo completo donde realizas dicha
actualizacion y la estructura de la tabla en la base de datos. Yo trabajo
con Sybase y jamas me he encontrado con ese error. He manejado el Sybase SQL
Anywhere 5.0 y el Sybase Studio 11.0 y en ambos me funcionan perfectamente
los comandos.

Si me mandas eso al correo lo reviso e intento
ayudarte a resolverlo.

Saludos.

Saludos.
Edgar Contreras


(Guía de netiquette del foro)
http://perso.wanadoo.es/rubenvigon/foro

"La informacion es presentada como es y sin garantia alguna"



"Roberto Kanashiro" wrote in message
news:08e901c34a0d$cf4c4be0$
Por que cuando intento grabar con ADO me sale este
error "Insufficient base table information for updating or
refreshing." pero cuando lo hago asi

oConnect.Execute "UPDATE tabusu SET cargo = '" +
txtCargo.Text + "'"
oConnect.Execute "COMMIT"

No tengo ningun problema a que se debe esto

Salu2
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida