Por favor ayuda al grabar un registro...

27/06/2006 - 22:48 por Marcos Galaviz | Informe spam
Intento grabar un registro en la tabla y esto es la parte del codigo pero
segun el error esta en el LockType, ¿alguien me puede ayudar?


Set RS_ALTA = Server.CreateObject("ADODB.Recordset")
RS_ALTA.CursorType = adOpenForwardOnly
RS_ALTA.LockType = adLockOptimistic

RS_ALTA.Open "CLIENTES", CONN1
RS_ALTA.addnew

RS_ALTA("NOMBRE")=NOMBRE
RS_ALTA("REPRESENTANTE")=REPRESENTANTE
RS_ALTA("EMAIL")=EMAIL
RS_ALTA("DIRECCION")=DIRECCION
RS_ALTA("CIUDAD")=CIUDAD
RS_ALTA("ESTADO")=ESTADO
RS_ALTA("CP")=CP
RS_ALTA("TEL1")=TEL1
RS_ALTA("TEL2")=TEL2

RS_ALTA.Update

Preguntas similare

Leer las respuestas

#1 Victor B.
28/06/2006 - 01:36 | Informe spam
Si lo haces con ADODB, te recomiendo dos técnicas:
1º - Usa Recordsets desconectados y no uses un cursor adOpenForwardOnly;
este tipo de cursor tiene la ventaja de ser rápido y manejar la información
del Recordset de manera más compacta y rápida pero su propósito es el de
'navegar' hacia a delante y recorrer sus registros a efectos de consulta. En
vez de ello usa el tipo Static y la propiedad LockType establécela a
'adLockBatchOptimistic'. Una vez 'cargado' el cursor anula la propiedad
Connection y trabajas con él. Por último, vuelves a establecer Connection y
llamas al método UpdateBatch en vez de update. Para que esto funcione, el
cursor debe estar del lado del cliente:
*****
Set RS_ALTA = Server.CreateObject("ADODB.Recordset")
RS_ALTA.CursorType = adOpenStatic
RS_ALTA.LockType = adLockBatchOptimistic
RS_ALTA.CursorLocation = adUseClient
CONN1.Open() 'Abres la conexión
RS_ALTA.Open "CLIENTES WHERE ID=0", CONN1 'Cargas el cursor sin registros
RS_ALTA.ActiveConnection = Nothing
CONN1.Close()
RS_ALTA.addnew

RS_ALTA("NOMBRE")=NOMBRE
RS_ALTA("REPRESENTANTE")=REPRESENTANTE
RS_ALTA("EMAIL")=EMAIL
RS_ALTA("DIRECCION")=DIRECCION
RS_ALTA("CIUDAD")=CIUDAD
RS_ALTA("ESTADO")=ESTADO
RS_ALTA("CP")=CP
RS_ALTA("TEL1")=TEL1
RS_ALTA("TEL2")=TEL2


CONN1.Open()
RS_ALTA.ActiveConnection = CONN1
RS_ALTA.UpdateBatch()
CONN1.Close()

2º.- Puedes usar el método Execute del objeto Connection CONN1 para enviar
una instrucción INSERT. Economizas código pero tienes un menor control de
los conflictos que pueda ocasionar la inserción.
Víctor B.
Desarrollador independiente

"Marcos Galaviz" escribió en el mensaje
news:%
Intento grabar un registro en la tabla y esto es la parte del codigo pero
segun el error esta en el LockType, ¿alguien me puede ayudar?


Set RS_ALTA = Server.CreateObject("ADODB.Recordset")
RS_ALTA.CursorType = adOpenForwardOnly
RS_ALTA.LockType = adLockOptimistic

RS_ALTA.Open "CLIENTES", CONN1
RS_ALTA.addnew

RS_ALTA("NOMBRE")=NOMBRE
RS_ALTA("REPRESENTANTE")=REPRESENTANTE
RS_ALTA("EMAIL")=EMAIL
RS_ALTA("DIRECCION")=DIRECCION
RS_ALTA("CIUDAD")=CIUDAD
RS_ALTA("ESTADO")=ESTADO
RS_ALTA("CP")=CP
RS_ALTA("TEL1")=TEL1
RS_ALTA("TEL2")=TEL2

RS_ALTA.Update

Respuesta Responder a este mensaje
#2 Marcos Galaviz
28/06/2006 - 15:23 | Informe spam
Ya intente este codigo y lo curioso es que me sigue mandando el error en la
linea en donde esta el "LockType" igualmente con el que yo tenia el error me
lo manda en esa linea ¿que podra ser?

Tipo de error:
ADODB.Recordset (0x800A0BB9)
Argumentos incorrectos, fuera del intervalo permitido o en conflicto con
otros.
/systam/agenda/guardar.asp, línea 5




"Victor B." escribió en el mensaje
news:OL$
Si lo haces con ADODB, te recomiendo dos técnicas:
1º - Usa Recordsets desconectados y no uses un cursor adOpenForwardOnly;
este tipo de cursor tiene la ventaja de ser rápido y manejar la
información del Recordset de manera más compacta y rápida pero su
propósito es el de 'navegar' hacia a delante y recorrer sus registros a
efectos de consulta. En vez de ello usa el tipo Static y la propiedad
LockType establécela a 'adLockBatchOptimistic'. Una vez 'cargado' el
cursor anula la propiedad Connection y trabajas con él. Por último,
vuelves a establecer Connection y llamas al método UpdateBatch en vez de
update. Para que esto funcione, el cursor debe estar del lado del cliente:
*****
Set RS_ALTA = Server.CreateObject("ADODB.Recordset")
RS_ALTA.CursorType = adOpenStatic
RS_ALTA.LockType = adLockBatchOptimistic
RS_ALTA.CursorLocation = adUseClient
CONN1.Open() 'Abres la conexión
RS_ALTA.Open "CLIENTES WHERE ID=0", CONN1 'Cargas el cursor sin
registros
RS_ALTA.ActiveConnection = Nothing
CONN1.Close()
RS_ALTA.addnew

RS_ALTA("NOMBRE")=NOMBRE
RS_ALTA("REPRESENTANTE")=REPRESENTANTE
RS_ALTA("EMAIL")=EMAIL
RS_ALTA("DIRECCION")=DIRECCION
RS_ALTA("CIUDAD")=CIUDAD
RS_ALTA("ESTADO")=ESTADO
RS_ALTA("CP")=CP
RS_ALTA("TEL1")=TEL1
RS_ALTA("TEL2")=TEL2


CONN1.Open()
RS_ALTA.ActiveConnection = CONN1
RS_ALTA.UpdateBatch()
CONN1.Close()

2º.- Puedes usar el método Execute del objeto Connection CONN1 para enviar
una instrucción INSERT. Economizas código pero tienes un menor control de
los conflictos que pueda ocasionar la inserción.
Víctor B.
Desarrollador independiente

"Marcos Galaviz" escribió en el mensaje
news:%
Intento grabar un registro en la tabla y esto es la parte del codigo pero
segun el error esta en el LockType, ¿alguien me puede ayudar?


Set RS_ALTA = Server.CreateObject("ADODB.Recordset")
RS_ALTA.CursorType = adOpenForwardOnly
RS_ALTA.LockType = adLockOptimistic

RS_ALTA.Open "CLIENTES", CONN1
RS_ALTA.addnew

RS_ALTA("NOMBRE")=NOMBRE
RS_ALTA("REPRESENTANTE")=REPRESENTANTE
RS_ALTA("EMAIL")=EMAIL
RS_ALTA("DIRECCION")=DIRECCION
RS_ALTA("CIUDAD")=CIUDAD
RS_ALTA("ESTADO")=ESTADO
RS_ALTA("CP")=CP
RS_ALTA("TEL1")=TEL1
RS_ALTA("TEL2")=TEL2

RS_ALTA.Update





Respuesta Responder a este mensaje
#3 Matías Iacono
28/06/2006 - 15:43 | Informe spam
Que valor tienen las variables adLockOptimistic y adOpenForwardOnly?

Recuerda que no se manejan enumeraciones implicitas en ASP. Por lo que debes
pasarle el valor numerico real.

En definitiva sería lo mismo si haces:

RS_ALTA.CursorType = 2
RS_ALTA.LockType = 1



Aunque debo reconocer que no se cual es el numero correcto. :)

Saludos.

Matías Iacono
Microsoft MVP ASP/ASP.net
"Marcos Galaviz" escribió en el mensaje
news:%
Intento grabar un registro en la tabla y esto es la parte del codigo pero
segun el error esta en el LockType, ¿alguien me puede ayudar?


Set RS_ALTA = Server.CreateObject("ADODB.Recordset")
RS_ALTA.CursorType = adOpenForwardOnly
RS_ALTA.LockType = adLockOptimistic

RS_ALTA.Open "CLIENTES", CONN1
RS_ALTA.addnew

RS_ALTA("NOMBRE")=NOMBRE
RS_ALTA("REPRESENTANTE")=REPRESENTANTE
RS_ALTA("EMAIL")=EMAIL
RS_ALTA("DIRECCION")=DIRECCION
RS_ALTA("CIUDAD")=CIUDAD
RS_ALTA("ESTADO")=ESTADO
RS_ALTA("CP")=CP
RS_ALTA("TEL1")=TEL1
RS_ALTA("TEL2")=TEL2

RS_ALTA.Update

Respuesta Responder a este mensaje
#4 Marcos Galaviz
28/06/2006 - 17:01 | Informe spam
y como confirmo ese valor que mencionas?

"Matías Iacono" escribió en el mensaje
news:
Que valor tienen las variables adLockOptimistic y adOpenForwardOnly?

Recuerda que no se manejan enumeraciones implicitas en ASP. Por lo que
debes pasarle el valor numerico real.

En definitiva sería lo mismo si haces:

RS_ALTA.CursorType = 2
RS_ALTA.LockType = 1



Aunque debo reconocer que no se cual es el numero correcto. :)

Saludos.

Matías Iacono
Microsoft MVP ASP/ASP.net
"Marcos Galaviz" escribió en el mensaje
news:%
Intento grabar un registro en la tabla y esto es la parte del codigo pero
segun el error esta en el LockType, ¿alguien me puede ayudar?


Set RS_ALTA = Server.CreateObject("ADODB.Recordset")
RS_ALTA.CursorType = adOpenForwardOnly
RS_ALTA.LockType = adLockOptimistic

RS_ALTA.Open "CLIENTES", CONN1
RS_ALTA.addnew

RS_ALTA("NOMBRE")=NOMBRE
RS_ALTA("REPRESENTANTE")=REPRESENTANTE
RS_ALTA("EMAIL")=EMAIL
RS_ALTA("DIRECCION")=DIRECCION
RS_ALTA("CIUDAD")=CIUDAD
RS_ALTA("ESTADO")=ESTADO
RS_ALTA("CP")=CP
RS_ALTA("TEL1")=TEL1
RS_ALTA("TEL2")=TEL2

RS_ALTA.Update





Respuesta Responder a este mensaje
#5 Victor B.
28/06/2006 - 17:14 | Informe spam
Tal y como te dice Matías, debes usar los valores numéricos que representan
las enumeraciones de ADO, ya que no están contempladas en ASP de forma
predeterminada:
adOpenStatic = 3
adLockBatchOptimistic = 4
adUseClient = 3


Víctor B.
Desarrollador independiente
"Marcos Galaviz" escribió en el mensaje
news:%
Ya intente este codigo y lo curioso es que me sigue mandando el error en
la linea en donde esta el "LockType" igualmente con el que yo tenia el
error me lo manda en esa linea ¿que podra ser?

Tipo de error:
ADODB.Recordset (0x800A0BB9)
Argumentos incorrectos, fuera del intervalo permitido o en conflicto con
otros.
/systam/agenda/guardar.asp, línea 5




"Victor B." escribió en el mensaje
news:OL$
Si lo haces con ADODB, te recomiendo dos técnicas:
1º - Usa Recordsets desconectados y no uses un cursor adOpenForwardOnly;
este tipo de cursor tiene la ventaja de ser rápido y manejar la
información del Recordset de manera más compacta y rápida pero su
propósito es el de 'navegar' hacia a delante y recorrer sus registros a
efectos de consulta. En vez de ello usa el tipo Static y la propiedad
LockType establécela a 'adLockBatchOptimistic'. Una vez 'cargado' el
cursor anula la propiedad Connection y trabajas con él. Por último,
vuelves a establecer Connection y llamas al método UpdateBatch en vez de
update. Para que esto funcione, el cursor debe estar del lado del
cliente:
*****
Set RS_ALTA = Server.CreateObject("ADODB.Recordset")
RS_ALTA.CursorType = adOpenStatic
RS_ALTA.LockType = adLockBatchOptimistic
RS_ALTA.CursorLocation = adUseClient
CONN1.Open() 'Abres la conexión
RS_ALTA.Open "CLIENTES WHERE ID=0", CONN1 'Cargas el cursor sin
registros
RS_ALTA.ActiveConnection = Nothing
CONN1.Close()
RS_ALTA.addnew

RS_ALTA("NOMBRE")=NOMBRE
RS_ALTA("REPRESENTANTE")=REPRESENTANTE
RS_ALTA("EMAIL")=EMAIL
RS_ALTA("DIRECCION")=DIRECCION
RS_ALTA("CIUDAD")=CIUDAD
RS_ALTA("ESTADO")=ESTADO
RS_ALTA("CP")=CP
RS_ALTA("TEL1")=TEL1
RS_ALTA("TEL2")=TEL2


CONN1.Open()
RS_ALTA.ActiveConnection = CONN1
RS_ALTA.UpdateBatch()
CONN1.Close()

2º.- Puedes usar el método Execute del objeto Connection CONN1 para
enviar una instrucción INSERT. Economizas código pero tienes un menor
control de los conflictos que pueda ocasionar la inserción.
Víctor B.
Desarrollador independiente

"Marcos Galaviz" escribió en el mensaje
news:%
Intento grabar un registro en la tabla y esto es la parte del codigo
pero segun el error esta en el LockType, ¿alguien me puede ayudar?


Set RS_ALTA = Server.CreateObject("ADODB.Recordset")
RS_ALTA.CursorType = adOpenForwardOnly
RS_ALTA.LockType = adLockOptimistic

RS_ALTA.Open "CLIENTES", CONN1
RS_ALTA.addnew

RS_ALTA("NOMBRE")=NOMBRE
RS_ALTA("REPRESENTANTE")=REPRESENTANTE
RS_ALTA("EMAIL")=EMAIL
RS_ALTA("DIRECCION")=DIRECCION
RS_ALTA("CIUDAD")=CIUDAD
RS_ALTA("ESTADO")=ESTADO
RS_ALTA("CP")=CP
RS_ALTA("TEL1")=TEL1
RS_ALTA("TEL2")=TEL2

RS_ALTA.Update









Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida