Numero correlativo utilizando ADO

11/08/2005 - 23:08 por Darwin Quintero | Informe spam
Amigos
Saludos

Tengo estas instrucciones para llevar un unico correlativo:

Lparameters xTabla

#Define AdOpenKeySet 1
#Define AdLockOptimistic 3
#Define AdCmdText 0x0001

LOCAL Cn, Rs, mSql, IdCodigo

Cn = CREATEOBJECT("ADODB.Connection")
Rs = CREATEOBJECT("ADODB.RecordSet")

Cn.Open("Provider=VFPOLEDB.1;Data Source=D:\Sistema\odbc\Datos.dbc")

xSql = "Select * From Contadores Where tabla ='"+xTabla+"'"

Rs.Open(xSql,Cn,AdOpenKeySet,AdLockOptimistic,AdCmdText)

IdCodigo = 0
IF !Rs.eof()
IdCodigo = Rs.Fields(1).value + 1
Rs.Fields(1).Value = IdCodigo
Rs.Update()
ENDIF

Rs.Close()
Cn.Close()
Release Rs, Cn
RETURN IdCodigo

En la instruccion:

Rs.Fields(1).Value = IdCodigo

Me da un error me dice que el Objeto o Proveedor no puede ejecutar la
intruccion requerida.

Algun comentario sobre el error, trabajo con Vfp7

Darwin Quintero
Venezuela

Preguntas similare

Leer las respuestas

#1 Steven Mera
11/08/2005 - 01:21 | Informe spam
Te falta oRs.Edit

IdCodigo = 0
IF !Rs.eof()
oRs.Edit && aqui en esta parte
IdCodigo = Rs.Fields(1).value + 1
Rs.Fields(1).Value = IdCodigo
Rs.Update()
ENDIF

Pruebalo y nos avisas

Saludos !

Steven Mera.
Respuesta Responder a este mensaje
#2 Luis María Guayán
11/08/2005 - 01:23 | Informe spam
Este artículo de la MSKB te ayudará, es código VBS en una página ASP, pero lo
pasas fácilmente a VFP:

http://support.microsoft.com/kb/316910


Luis María Guayán
Tucumán, Argentina
________________________________
SysOp de www.PortalFox.com
Microsoft Visual FoxPro MVP
________________________________
La palabra imposible solo figura
en el diccionario de los tontos


"Darwin Quintero" escribió en el mensaje
news:%23j6sa%
Amigos
Saludos

Tengo estas instrucciones para llevar un unico correlativo:

Lparameters xTabla

#Define AdOpenKeySet 1
#Define AdLockOptimistic 3
#Define AdCmdText 0x0001

LOCAL Cn, Rs, mSql, IdCodigo

Cn = CREATEOBJECT("ADODB.Connection")
Rs = CREATEOBJECT("ADODB.RecordSet")

Cn.Open("Provider=VFPOLEDB.1;Data Source=D:\Sistema\odbc\Datos.dbc")

xSql = "Select * From Contadores Where tabla ='"+xTabla+"'"

Rs.Open(xSql,Cn,AdOpenKeySet,AdLockOptimistic,AdCmdText)

IdCodigo = 0
IF !Rs.eof()
IdCodigo = Rs.Fields(1).value + 1
Rs.Fields(1).Value = IdCodigo
Rs.Update()
ENDIF

Rs.Close()
Cn.Close()
Release Rs, Cn
RETURN IdCodigo

En la instruccion:

Rs.Fields(1).Value = IdCodigo

Me da un error me dice que el Objeto o Proveedor no puede ejecutar la
intruccion requerida.

Algun comentario sobre el error, trabajo con Vfp7

Darwin Quintero
Venezuela


Respuesta Responder a este mensaje
#3 Steven Mera
11/08/2005 - 23:36 | Informe spam
actualmente lo tienes asi
Rs.Open(xSql,Cn,AdOpenKeySet,AdLockOptimistic,AdCmdText)

Cambialo a esta manera

Rs.Open(xSql,Cn,AdOpenKeySet,adLockPessimistic)
o tambien pruebalo tambien asi
Rs.Open(xSql,Cn,AdOpenKeySet,adLockPessimistic,AdCmdText)

Saludos !

Steven Mera.
Respuesta Responder a este mensaje
#4 Steven Mera
11/08/2005 - 23:41 | Informe spam
Agrega esto antes de abrir el recordset.

oRs.CursorLocation = adUseClient

despues de esta liena ya lo abres.(utiliza mejor adLockPessimistic)
Rs.Open(xSql,Cn,AdOpenKeySet,adLockPessimistic,AdCmdText)


Saludos !

Steven Mera.
Respuesta Responder a este mensaje
#5 Darwin Quintero
12/08/2005 - 00:17 | Informe spam
Amigo
Steven Mera

Gracias por la ayuda ya ejecuta bien la rutina y asi quedo:

#Define AdOpenKeySet 1
#Define AdLockOptimistic 3
#Define AdCmdText 0x0001
#Define AdUseClient 3

LOCAL Cn, Rs, xSql, IdCodigo

Cn = CREATEOBJECT("ADODB.Connection")
Rs = CREATEOBJECT("ADODB.RecordSet")

Rs.CursorLocation = AdUseClient

Cn.Open("Provider=VFPOLEDB.1;Data Source=D:\Sistema\odbc\Datos.dbc")

xSql = [Select * From Contadores Where tabla ='DESPACHOS']

Rs.Open(xSql,Cn,AdOpenKeySet,AdLockOptimistic,AdCmdText)

IdCodigo = 0
IF !Rs.eof()
IdCodigo = Rs.Fields(1).value + 1
Rs.Fields(1).Value = IdCodigo
Rs.Update()
ENDIF

Rs.Close()
Cn.Close()
Release Rs, Cn
RETURN IdCodigo

Darwin Quintero
Venezuela



"Steven Mera" escribió en el mensaje
news:%

Agrega esto antes de abrir el recordset.

oRs.CursorLocation = adUseClient

despues de esta liena ya lo abres.(utiliza mejor adLockPessimistic)
Rs.Open(xSql,Cn,AdOpenKeySet,adLockPessimistic,AdCmdText)


Saludos !

Steven Mera.


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