[GUFA] CursorAdapter
Hola, te respondo las preguntas: 1) los links estaban en español originalmente y fueron luego traducidos al inglés y al portugués. Pero desde hace varios años, el dueño de la revista solamente dejó disponibles las versiones en inglés 2) podés hacer cursor adapters de varias tablas en la sentencia select sql. Pero lo mejor es actualizar una sola tabla, aunque la consulta sea de varias tablas. Los campos de la tabla que vas a actualizar los definís en las propiedades updatefieldlist, updatenamelist y keyfieldlist (en todas ellas tenés que incluir la clave primaria de la tabla, porque si no, no te va a funcionar) También tenés que poner la propiedad sendupdates en true. 3) En cuanto a TierAdapter, preguntales a los autores Rubén Rovira y Martín Salías Saludos Rafael Copquin El 25/07/2012 07:50 p.m., pablo.oviedo escribió: Gracias, empece con cursoradapter y me trabe. Se pueden usar un cursoadapter que incluya columnas de distintas tablas? me tira error cuando quiero refrescar algunos campos del cursor luego de una inserción. También estoy viendo TierAdapter. Los link que me pasaron, es posible que esta información este en español? Existe alguna documentación sobre TierAdapter que describa todas las clases, metodos y propiedades del frameworks a parte del diagrama de UML que esta en el sitio de Martin? saludos -Original Message- From: Rafael Copquin rcopq...@fibertel.com.ar To: GUFA List Member GUFA@mug.org.ar Date: Tue, 24 Jul 2012 16:32:07 -0300 Subject: [GUFA] CursorAdapter Te paso un ejemplo bien completo de cómo lo hago yo: ** creacion de las tablas en sqlserver ** en la vida real tienen más campos, pero estos son los mínimos que deberían tener CREATE TABLE [dbo].[DETALLE]( [FECHA] [date] NOT NULL, [TIPODOC] [char](3) NOT NULL, [DOCNUM] [char](8) NOT NULL, [CODIGO] [char](30) NOT NULL, [CANTIDAD] [int] NOT NULL, [PRECIO] [numeric](10, 4) NOT NULL, [DT] [datetime] NOT NULL, [IDETALLE] [int] IDENTITY(1,1) NOT NULL, [IDCABECERA] [int] NOT NULL, CONSTRAINT [PK_DETALLE] PRIMARY KEY CLUSTERED ( [IDDETALLE] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY], CONSTRAINT [CN_IDDETALLE] UNIQUE NONCLUSTERED ( [IDDETALLE] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] CREATE TABLE [dbo].[CABECERA]( [FECHA] [date] NOT NULL, [CUENTA] [char](4) NOT NULL, [TIPODOC] [char](3) NOT NULL, [DOCNUM] [char](8) NOT NULL, [IVA] [numeric](10, 2) NOT NULL, [TOTAL] [numeric](10, 2) NOT NULL, [IDCABECERA] [int] IDENTITY(1,1) NOT NULL, [DT] [datetime] NOT NULL, CONSTRAINT [PK_IDCABECERA] PRIMARY KEY CLUSTERED ( [IDCABECERA] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] ** lo siguiente se hace en Visual FoxPro ** generación de un cursor adapter para la tabla CABECERA Local cCmd,cSch,cUFL,cUNL,lOK Text to cCmd noshow pretext 15 SELECT FECHA , CUENTA , TIPODOC , DOCNUM , IVA , TOTAL , IDCABECERA , DT FROM CABECERA WHERE 1=0 EndText Text to cSch noshow pretext 15 FECHA D, CUENTA C(4), TIPODOC C(3), DOCNUM C(8), IVA N(10,2), TOTAL N(10,2), IDCABECERA I, DT T EndText Text to cUFL noshow pretext 15 FECHA , CUENTA , TIPODOC , DOCNUM , IVA , TOTAL , IDCABECERA , DT EndText Text to cUNL noshow pretext 15 FECHACABECERA.FECHA, CUENTA CABECERA.CUENTA, TIPODOC CABECERA.TIPODOC, DOCNUM CABECERA.DOCNUM, IVA CABECERA.IVA, TOTALCABECERA.TOTAL, IDCABECERA CABECERA.IDCABECERA, DT CABECERA.DT EndText cUFL= Chrtran( cUFL, Chr(13) + Chr(10), ) cUNL = Chrtran( cUNL, Chr(13) + Chr(10), ) cSch= Chrtran( cSch, Chr(13) + Chr(10), ) cCmd = Chrtran( cCmd, Chr(13) + Chr(10), ) Use in Select() lOK = .t. If !PemStatus(thisform,'oCA',5) thisform.AddProperty('oCA') EndIf Try Thisform.oCA = Createobject(CursorAdapter) lOK = .t. Catch to oErrores MessageBox(No se pudo generar el objeto CursorAdapter+; Chr(13)+oErrores.message,16,Atención,2000) lOK = .f. Finally EndTry If lOK = .t. try With thisform.oCA .DataSourceType = ODBC .DataSource = thisform.nHandle .alias = curCabecera .tables = cabecera .BufferModeOverride = 5 .keyfieldlist= idcabecera .sendupdates = .T. .usetransactions=
[GUFA] error en HTTPservice
loHTTPServiceDeberias intentar registrar nuevamente la libreria. Que version tenes? Pablo Pioli El 25/07/2012 02:41 p.m., eduardo rohr escribió: Hola a todos Tengo este codigo, en el cual se instancia un objeto del tipo HTTPService loHTTPService = Thisform.ObtenerHTTPService() If IsNull(loHTTPService) VentanaError( No se pudo registrar la librería iFox.dll y es necesaria para esta operación. + Chr(13); + Para solucionar este problema ejecute la opción al menos una vez con un usuario + Windows que tenga permisos de Administrador., Thisform.Caption) MostrarEstado() Return .F. EndIf lcFechaDesde = Dtos( lcFechaDesde ) lcFechaHasta = Dtos( lcFechaHasta ) cServer = dfe.ec.gba.gov.ar http://dfe.ec.gba.gov.ar cURL = /DomicilioElectronico/SeguridadCliente/dfeServicioDescargaPadron.do *!* Para bajar Padron Completo Text to XMLConsulta NOSHOW TEXT PRETEXT 7 DESCARGA-PADRON fechaDesdelcFechaDesde/fechaDesde fechaHastalcFechaHasta/fechaHasta /DESCARGA-PADRON EndText cCodigoHash = loManejadorCodigoHash.Encriptar( XMLConsulta ) cFileName = DFEServicioDescargaPadron_ + cCodigoHash + .XML loHTTPService.AddPostField( user, cUserCUIT ) loHTTPService.AddPostField( password, cPassWord ) loHTTPService.AddPostFieldasFile( file, XMLConsulta, cFileName ) Try loHTTPService.IgnoreSSLErrors = .T. cRespuesta = loHTTPService.Post( cServer, cURL, , , 443 ) Catch To loEx VentanaError( Error en metodo HTTPService. Motivo: + loEx.Message, Thisform.Caption ) MostrarEstado() llEjecutaMetodoHTTPService = .F. EndTry el objeto lo instancia correctamente ( loHTTPService es distinto de NULL ) el problema lo tengo en la linea siguiente : loHTTPService.IgnoreSSLErrors = .T. el error que sale es : Codigo de error OLE 0X80020006: Nombre desconocido La pc donde se ejecuta este codigo tiene windows xp instalado. quisiera por favor que me ayude el que pueda paar saber la causa de dicho error . gracias PD: Lo raro es que al editar la dll , veo que la propiedad IgnoreSSLErrors existe
[GUFA] CursorAdapter
Nunca he utilizado un framework de tercero, quizá esto haya perjudicado mis tiempos de desarrollo, algo que no podré evaluar nunca (que hubiera pasado si). Lo que sí puedo afirmar es que los sistemas que realizo los hago todos contra SQL SERVER definiendo CLASES que acceden a los datos y actualizan y borran sin necesidad de ningún framework. Pablo Oviedo, tu pregunta original era: Hola, necesito hacer una aplicación vfox 9 + sqlserver. Pensé usar cursoradapter. No se como hacer un abm maestro-detalle usando cursor adapter, sí pude armar un abm para tablas simples usando cursorAdapter builder. Me puede dar algun ejemplo o algun link para ver? Como seria el manejo de transacciones con CA? saludos, muchas gracias. Seguís necesitando un ejemplo, algo podría pasarte. Saludos. -Mensaje original- De: GUFA@mug.org.ar [mailto:GUFA@mug.org.ar] En nombre de pablo.oviedo Enviado el: miércoles, 25 de julio de 2012 07:50 p.m. Para: GUFA List Member Asunto: [GUFA] CursorAdapter Gracias, empece con cursoradapter y me trabe. Se pueden usar un cursoadapter que incluya columnas de distintas tablas? me tira error cuando quiero refrescar algunos campos del cursor luego de una inserción. También estoy viendo TierAdapter. Los link que me pasaron, es posible que esta información este en español? Existe alguna documentación sobre TierAdapter que describa todas las clases, metodos y propiedades del frameworks a parte del diagrama de UML que esta en el sitio de Martin? saludos -Original Message- From: Rafael Copquin rcopq...@fibertel.com.ar To: GUFA List Member GUFA@mug.org.ar Date: Tue, 24 Jul 2012 16:32:07 -0300 Subject: [GUFA] CursorAdapter Te paso un ejemplo bien completo de cómo lo hago yo: ** creacion de las tablas en sqlserver ** en la vida real tienen más campos, pero estos son los mínimos que deberían tener CREATE TABLE [dbo].[DETALLE]( [FECHA] [date] NOT NULL, [TIPODOC] [char](3) NOT NULL, [DOCNUM] [char](8) NOT NULL, [CODIGO] [char](30) NOT NULL, [CANTIDAD] [int] NOT NULL, [PRECIO] [numeric](10, 4) NOT NULL, [DT] [datetime] NOT NULL, [IDETALLE] [int] IDENTITY(1,1) NOT NULL, [IDCABECERA] [int] NOT NULL, CONSTRAINT [PK_DETALLE] PRIMARY KEY CLUSTERED ( [IDDETALLE] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY], CONSTRAINT [CN_IDDETALLE] UNIQUE NONCLUSTERED ( [IDDETALLE] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] CREATE TABLE [dbo].[CABECERA]( [FECHA] [date] NOT NULL, [CUENTA] [char](4) NOT NULL, [TIPODOC] [char](3) NOT NULL, [DOCNUM] [char](8) NOT NULL, [IVA] [numeric](10, 2) NOT NULL, [TOTAL] [numeric](10, 2) NOT NULL, [IDCABECERA] [int] IDENTITY(1,1) NOT NULL, [DT] [datetime] NOT NULL, CONSTRAINT [PK_IDCABECERA] PRIMARY KEY CLUSTERED ( [IDCABECERA] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] ** lo siguiente se hace en Visual FoxPro ** generación de un cursor adapter para la tabla CABECERA Local cCmd,cSch,cUFL,cUNL,lOK Text to cCmd noshow pretext 15 SELECT FECHA , CUENTA , TIPODOC , DOCNUM , IVA , TOTAL , IDCABECERA , DT FROM CABECERA WHERE 1=0 EndText Text to cSch noshow pretext 15 FECHA D, CUENTA C(4), TIPODOC C(3), DOCNUM C(8), IVA N(10,2), TOTAL N(10,2), IDCABECERA I, DT T EndText Text to cUFL noshow pretext 15 FECHA , CUENTA , TIPODOC , DOCNUM , IVA , TOTAL , IDCABECERA , DT EndText Text to cUNL noshow pretext 15 FECHACABECERA.FECHA, CUENTA CABECERA.CUENTA, TIPODOC CABECERA.TIPODOC, DOCNUM CABECERA.DOCNUM, IVA CABECERA.IVA, TOTALCABECERA.TOTAL, IDCABECERA CABECERA.IDCABECERA, DT CABECERA.DT EndText cUFL= Chrtran( cUFL, Chr(13) + Chr(10), ) cUNL = Chrtran( cUNL, Chr(13) + Chr(10), ) cSch= Chrtran( cSch, Chr(13) + Chr(10), ) cCmd = Chrtran( cCmd, Chr(13) + Chr(10), ) Use in Select() lOK = .t. If !PemStatus(thisform,'oCA',5) thisform.AddProperty('oCA') EndIf Try Thisform.oCA = Createobject(CursorAdapter) lOK = .t. Catch to oErrores MessageBox(No se pudo generar el objeto CursorAdapter+; Chr(13)+oErrores.message,16,Atención,2000) lOK = .f. Finally EndTry If lOK = .t. try With thisform.oCA .DataSourceType = ODBC .DataSource = thisform.nHandle .alias =
[GUFA] CursorAdapter
Sí gracias!!! todo suma. Hasta el momento estoy viendo y haciendo algunas pruebas. Con CA tadavia no logro hacer lo que quiero, con TA todavia me falta leer un poco mas y madurarlo. Si hay otras alternativas, bienvenido sea. saldudos -Original Message- From: Alejandro Paciotti Iacchelli alejandro.pacio...@gmail.com To: GUFA List Member GUFA@mug.org.ar Date: Thu, 26 Jul 2012 10:22:10 -0300 Subject: [GUFA] CursorAdapter Nunca he utilizado un framework de tercero, quizá esto haya perjudicado mis tiempos de desarrollo, algo que no podré evaluar nunca (que hubiera pasado si). Lo que sí puedo afirmar es que los sistemas que realizo los hago todos contra SQL SERVER definiendo CLASES que acceden a los datos y actualizan y borran sin necesidad de ningún framework. Pablo Oviedo, tu pregunta original era: Hola, necesito hacer una aplicación vfox 9 + sqlserver. Pensé usar cursoradapter. No se como hacer un abm maestro-detalle usando cursor adapter, sí pude armar un abm para tablas simples usando cursorAdapter builder. Me puede dar algun ejemplo o algun link para ver? Como seria el manejo de transacciones con CA? saludos, muchas gracias. Seguís necesitando un ejemplo, algo podría pasarte. Saludos. -Mensaje original- De: GUFA@mug.org.ar [mailto:GUFA@mug.org.ar] En nombre de pablo.oviedo Enviado el: miércoles, 25 de julio de 2012 07:50 p.m. Para: GUFA List Member Asunto: [GUFA] CursorAdapter Gracias, empece con cursoradapter y me trabe. Se pueden usar un cursoadapter que incluya columnas de distintas tablas? me tira error cuando quiero refrescar algunos campos del cursor luego de una inserción. También estoy viendo TierAdapter. Los link que me pasaron, es posible que esta información este en español? Existe alguna documentación sobre TierAdapter que describa todas las clases, metodos y propiedades del frameworks a parte del diagrama de UML que esta en el sitio de Martin? saludos -Original Message- From: Rafael Copquin rcopq...@fibertel.com.ar To: GUFA List Member GUFA@mug.org.ar Date: Tue, 24 Jul 2012 16:32:07 -0300 Subject: [GUFA] CursorAdapter Te paso un ejemplo bien completo de cómo lo hago yo: ** creacion de las tablas en sqlserver ** en la vida real tienen más campos, pero estos son los mínimos que deberían tener CREATE TABLE [dbo].[DETALLE]( [FECHA] [date] NOT NULL, [TIPODOC] [char](3) NOT NULL, [DOCNUM] [char](8) NOT NULL, [CODIGO] [char](30) NOT NULL, [CANTIDAD] [int] NOT NULL, [PRECIO] [numeric](10, 4) NOT NULL, [DT] [datetime] NOT NULL, [IDETALLE] [int] IDENTITY(1,1) NOT NULL, [IDCABECERA] [int] NOT NULL, CONSTRAINT [PK_DETALLE] PRIMARY KEY CLUSTERED ( [IDDETALLE] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY], CONSTRAINT [CN_IDDETALLE] UNIQUE NONCLUSTERED ( [IDDETALLE] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] CREATE TABLE [dbo].[CABECERA]( [FECHA] [date] NOT NULL, [CUENTA] [char](4) NOT NULL, [TIPODOC] [char](3) NOT NULL, [DOCNUM] [char](8) NOT NULL, [IVA] [numeric](10, 2) NOT NULL, [TOTAL] [numeric](10, 2) NOT NULL, [IDCABECERA] [int] IDENTITY(1,1) NOT NULL, [DT] [datetime] NOT NULL, CONSTRAINT [PK_IDCABECERA] PRIMARY KEY CLUSTERED ( [IDCABECERA] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] ** lo siguiente se hace en Visual FoxPro ** generación de un cursor adapter para la tabla CABECERA Local cCmd,cSch,cUFL,cUNL,lOK Text to cCmd noshow pretext 15 SELECT FECHA , CUENTA , TIPODOC , DOCNUM , IVA , TOTAL , IDCABECERA , DT FROM CABECERA WHERE 1=0 EndText Text to cSch noshow pretext 15 FECHA D, CUENTA C(4), TIPODOC C(3), DOCNUM C(8), IVA N(10,2), TOTAL N(10,2), IDCABECERA I, DT T EndText Text to cUFL noshow pretext 15 FECHA , CUENTA , TIPODOC , DOCNUM , IVA , TOTAL , IDCABECERA , DT EndText Text to cUNL noshow pretext 15 FECHACABECERA.FECHA, CUENTA CABECERA.CUENTA, TIPODOC CABECERA.TIPODOC, DOCNUM CABECERA.DOCNUM, IVA CABECERA.IVA, TOTALCABECERA.TOTAL, IDCABECERA CABECERA.IDCABECERA, DT CABECERA.DT EndText cUFL= Chrtran( cUFL, Chr(13) + Chr(10), ) cUNL = Chrtran( cUNL, Chr(13) + Chr(10), ) cSch= Chrtran( cSch, Chr(13) + Chr(10), )
[GUFA] CursorAdapter
Rafael, tengo problemas con el refresh, Error: The refresh key defined for table is not found. El codigo es: procedure CACompras lparameters cAlia, cName * cInsCmd, cUpdCmd, cDelCmd pueden ser vacios oCA = createobject(CABase) oCA.Alias = cAlia oCA.CursorSchema = PROVEEDOR C(30),FECHA D, IDPROV I, IDCOM I oCA.InsertCmdRefreshFieldList = IDCOM oCA.name = cName oCA.SelectCmd = select PROVEEDOR, FECHA, IDPROV, IDCOM from compras c inner join proveedores p on c.idprov=p.idpro oCA.Tables = Compras oCA.UpdatableFieldList = FECHA, IDPROV oCA.UpdateCmdRefreshFieldList = FECHA, IDPROV oCA.UpdateCmdRefreshKeyFieldList = IDCOM oCA.UpdateNameList = FECHA Compras.FECHA IDPROV Compras.IDPROV oCA.KeyFieldList = IDCOM oCA.CursorFill() return oCA endproc define class CABase as CursorAdapter procedure init local loConnDataSource, oRS loConnDataSource = createobject('ADODB.Connection') loConnDataSource.ConnectionString = [Provider=SQLNCLI10.1;Integrated Security=SSPI;Persist Security Info=False;] + ; [User ID=;Initial Catalog=Insumos;Data Source=PPC\SQLE;Initial File ] + ; [Name=;Server SPN=;] loConnDataSource.Open() oRS = createobject('ADODB.RecordSet') oRS.CursorLocation = 3 adUseClient oRS.LockType = 3 adLockOptimistic oRS.ActiveConnection = loConnDataSource this.DataSource = oRS this.DataSourceType = ADO this.AllowSimultaneousFetch = .t. this.BreakOnError = .t. this.BufferModeOverride = 3 Optimistic row buffering this.conflictCheckType = 3 Check for both modified record and key uniqueness this.FetchMemo = .f. this.FetchSize = -1 this.MapBinary = .t. this.MapVarchar = .t. this.SendUpdates = .t. this.UseCursorSchema = .t. *oCA.UseDeDataSource = .t. endproc enddefine -Original Message- From: Rafael Copquin rcopq...@fibertel.com.ar To: GUFA List Member GUFA@mug.org.ar Date: Thu, 26 Jul 2012 10:08:00 -0300 Subject: [GUFA] CursorAdapter Hola, te respondo las preguntas: 1) los links estaban en español originalmente y fueron luego traducidos al inglés y al portugués. Pero desde hace varios años, el dueño de la revista solamente dejó disponibles las versiones en inglés 2) podés hacer cursor adapters de varias tablas en la sentencia select sql. Pero lo mejor es actualizar una sola tabla, aunque la consulta sea de varias tablas. Los campos de la tabla que vas a actualizar los definís en las propiedades updatefieldlist, updatenamelist y keyfieldlist (en todas ellas tenés que incluir la clave primaria de la tabla, porque si no, no te va a funcionar) También tenés que poner la propiedad sendupdates en true. 3) En cuanto a TierAdapter, preguntales a los autores Rubén Rovira y Martín Salías Saludos Rafael Copquin El 25/07/2012 07:50 p.m., pablo.oviedo escribió: Gracias, empece con cursoradapter y me trabe. Se pueden usar un cursoadapter que incluya columnas de distintas tablas? me tira error cuando quiero refrescar algunos campos del cursor luego de una inserción. También estoy viendo TierAdapter. Los link que me pasaron, es posible que esta información este en español? Existe alguna documentación sobre TierAdapter que describa todas las clases, metodos y propiedades del frameworks a parte del diagrama de UML que esta en el sitio de Martin? saludos -Original Message- From: Rafael Copquin rcopq...@fibertel.com.ar To: GUFA List Member GUFA@mug.org.ar Date: Tue, 24 Jul 2012 16:32:07 -0300 Subject: [GUFA] CursorAdapter Te paso un ejemplo bien completo de cómo lo hago yo: ** creacion de las tablas en sqlserver ** en la vida real tienen más campos, pero estos son los mínimos que deberían tener CREATE TABLE [dbo].[DETALLE]( [FECHA] [date] NOT NULL, [TIPODOC] [char](3) NOT NULL, [DOCNUM] [char](8) NOT NULL, [CODIGO] [char](30) NOT NULL, [CANTIDAD] [int] NOT NULL, [PRECIO] [numeric](10, 4) NOT NULL, [DT] [datetime] NOT NULL, [IDETALLE] [int] IDENTITY(1,1) NOT NULL, [IDCABECERA] [int] NOT NULL, CONSTRAINT [PK_DETALLE] PRIMARY KEY CLUSTERED ( [IDDETALLE] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY], CONSTRAINT [CN_IDDETALLE] UNIQUE NONCLUSTERED ( [IDDETALLE] ASC )WITH (PAD_INDEX = OFF,
[GUFA] error en HTTPservice
Pablo : Gracias por la respuesta . Verifique con el regedit y la entrada de registro de la libreria apuntaba a una vieja version. saludos El 26 de julio de 2012 10:20, Pablo Pioli ppi...@hotmail.com escribió: loHTTPServiceDeberias intentar registrar nuevamente la libreria. Que version tenes? Pablo Pioli El 25/07/2012 02:41 p.m., eduardo rohr escribió: Hola a todos Tengo este codigo, en el cual se instancia un objeto del tipo HTTPService loHTTPService = Thisform.ObtenerHTTPService() If IsNull(loHTTPService) VentanaError( No se pudo registrar la librería iFox.dll y es necesaria para esta operación. + Chr(13); + Para solucionar este problema ejecute la opción al menos una vez con un usuario + Windows que tenga permisos de Administrador., Thisform.Caption) MostrarEstado() Return .F. EndIf lcFechaDesde = Dtos( lcFechaDesde ) lcFechaHasta = Dtos( lcFechaHasta ) cServer = dfe.ec.gba.gov.ar cURL = /DomicilioElectronico/SeguridadCliente/dfeServicioDescargaPadron.do *!* Para bajar Padron Completo Text to XMLConsulta NOSHOW TEXT PRETEXT 7 DESCARGA-PADRON fechaDesdelcFechaDesde/fechaDesde fechaHastalcFechaHasta/fechaHasta /DESCARGA-PADRON EndText cCodigoHash = loManejadorCodigoHash.Encriptar( XMLConsulta ) cFileName = DFEServicioDescargaPadron_ + cCodigoHash + .XML loHTTPService.AddPostField( user, cUserCUIT ) loHTTPService.AddPostField( password, cPassWord ) loHTTPService.AddPostFieldasFile( file, XMLConsulta, cFileName ) Try loHTTPService.IgnoreSSLErrors = .T. cRespuesta = loHTTPService.Post( cServer, cURL, , , 443 ) Catch To loEx VentanaError( Error en metodo HTTPService. Motivo: + loEx.Message, Thisform.Caption ) MostrarEstado() llEjecutaMetodoHTTPService = .F. EndTry el objeto lo instancia correctamente ( loHTTPService es distinto de NULL ) el problema lo tengo en la linea siguiente : loHTTPService.IgnoreSSLErrors = .T. el error que sale es : Codigo de error OLE 0X80020006: Nombre desconocido La pc donde se ejecuta este codigo tiene windows xp instalado. quisiera por favor que me ayude el que pueda paar saber la causa de dicho error . gracias PD: Lo raro es que al editar la dll , veo que la propiedad IgnoreSSLErrors existe
[GUFA] CursorAdapter
Probaste de _no usar_ las propiedades InsertCmdRefreshFieldList , UpdateCmdRefreshFieldList, UpdateCmdRefreshKeyFieldList (yo jamás las usé y a mi me funcionan los CA) En tu clase de CA ponés la propiedad BufferModeOverride = 3optimistic row buffering Yo la pongo en 5optimistic table buffering En el primer caso la actualización es automática si movés el puntero. En cambio, usando 5 (optimistic table buffering), solamente se actualiza la tabla si le mandás un tableupdate. Además, te actualiza varios registros de una. Rafael Copquin El 26/07/2012 10:52 a.m., pablo.oviedo escribió: oCA.UpdateCmdRefreshKeyFieldList = IDCOM
[GUFA] SQL SERVER
Bueno Pablo, yo uso algo como lo siguiente: *** DEFINE CLASS Pagos AS Custom *** NumeroError = 0 DescripcionError = * nResultado = THISFORM.oPagos.Alta(cComprobante, dFechaPago, nImporte, cCodigoContrato, nDescuento, cDescripcion, cNumeroRecibo) *** PROCEDURE Alta(cComprobante, dFechaPago, nImporte, cCodigoContrato, nDescuento, cDescripcion, cNumeroRecibo) *** * Recibe las variables y llama al procedimiento almacenado SP_Alta_PAGOS * LOCAL nResultado nResultado = -1 * =SQLSETPROP(oAplicacion.Conexion, Transactions, 2) * TEXT TO cInstruccionSql NOSHOW PRETEXT 2 EXECUTE SP_Alta_Pagos @CodigoContrato = ?cCodigoContrato, @CodigoFormaPago = ?cCodigoFormaPago, @Comprobante = ?ALLTRIM(cComprobante), @FechaPago =?DTOC(dFechaPago), @Importe =?nImporte, @Descuento =?nDescuento, @Descripcion =?cDescripcion, @NumeroRecibo=?cNumeroRecibo, @CodigoUsuario =?oAplicacion.CodigoUsuario ENDTEXT * =SQLPREPARE(oAplicacion.Conexion, cInstruccionSql) * nResultado = SQLEXEC(oAplicacion.Conexion) * IF nResultado 0 THIS.ParseaError(ALTA Pagos) =SQLROLLBACK(oAplicacion.Conexion) =SQLSETPROP(oAplicacion.Conexion, Transactions, 1) RETURN -1 ELSE nResultado = 1 ENDIF ETC, ETC, ETC O bien, para traer un cursor con un listado de PAGOS: *** PROCEDURE TraerTodos(sNombreCursor) *** LOCAL nResultado nResultado = -1 * TEXT TO cInstruccionSql TEXTMERGE NOSHOW PRETEXT 2 SELECT FechaPago, CodigoPago, Comprobante, Descripcion, Descuento, Importe, NumeroRecibo FROM Pagos ENDTEXT * nResultado = SQLEXEC(oAplicacion.Conexion, cInstruccionSql, sNombreCursor) * IF nResultado 0 THIS.ParseaError ENDIF * RETURN nResultado * ENDPROC Estoy mil por cien seguro que el framework es muchísimo mejor pero yo así saqué las papas del fuego, desarrollé todo rapidito y eficientemente. Saludos.
[GUFA] CursorAdapter
Fantastico!!!, segui tu sujerencia. Como vos decis, sin esta tres propiedades funciona ok, lo probe con bufferin 3 y 5. Tuve que hacer el refresh programaticamente en el evento AfterInsert Con estas tres propiedades seteadas y teniendo un cursor con columnas de varias tablas no funcionan los refresh(). Sera algun bug de fox? Sigo adelante, ahora pruebo lo de las transacciones!!! saludos, gracias. -Original Message- From: Rafael Copquin rcopq...@fibertel.com.ar To: GUFA List Member GUFA@mug.org.ar Date: Thu, 26 Jul 2012 17:17:27 -0300 Subject: [GUFA] CursorAdapter Probaste de _no usar_ las propiedades InsertCmdRefreshFieldList , UpdateCmdRefreshFieldList, UpdateCmdRefreshKeyFieldList (yo jamás las usé y a mi me funcionan los CA) En tu clase de CA ponés la propiedad BufferModeOverride = 3 optimistic row buffering Yo la pongo en 5optimistic table buffering En el primer caso la actualización es automática si movés el puntero. En cambio, usando 5 (optimistic table buffering), solamente se actualiza la tabla si le mandás un tableupdate. Además, te actualiza varios registros de una. Rafael Copquin El 26/07/2012 10:52 a.m., pablo.oviedo escribió: oCA.UpdateCmdRefreshKeyFieldList = IDCOM
[GUFA] SQL SERVER
Muchas Gracias!! Una consulta, que conviene usar ADO o ODBC? saludos. -Original Message- From: Alejandro Paciotti Iacchelli alejandro.pacio...@gmail.com To: GUFA List Member GUFA@mug.org.ar Date: Thu, 26 Jul 2012 17:18:44 -0300 Subject: [GUFA] SQL SERVER Bueno Pablo, yo uso algo como lo siguiente: *** * *** DEFINE CLASS Pagos AS Custom *** * *** NumeroError = 0 DescripcionError = * nResultado = THISFORM.oPagos.Alta(cComprobante, dFechaPago, nImporte, cCodigoContrato, nDescuento, cDescripcion, cNumeroRecibo) *** * *** PROCEDURE Alta(cComprobante, dFechaPago, nImporte, cCodigoContrato, nDescuento, cDescripcion, cNumeroRecibo) *** * *** * Recibe las variables y llama al procedimiento almacenado SP_Alta_PAGOS * LOCAL nResultado nResultado = -1 * =SQLSETPROP(oAplicacion.Conexion, Transactions, 2) * TEXT TO cInstruccionSql NOSHOW PRETEXT 2 EXECUTE SP_Alta_Pagos @CodigoContrato = ?cCodigoContrato, @CodigoFormaPago = ?cCodigoFormaPago, @Comprobante = ?ALLTRIM(cComprobante), @FechaPago =?DTOC(dFechaPago), @Importe =?nImporte, @Descuento =?nDescuento, @Descripcion =?cDescripcion, @NumeroRecibo =?cNumeroRecibo, @CodigoUsuario =?oAplicacion.CodigoUsuario ENDTEXT * =SQLPREPARE(oAplicacion.Conexion, cInstruccionSql) * nResultado = SQLEXEC(oAplicacion.Conexion) * IF nResultado 0 THIS.ParseaError(ALTA Pagos) =SQLROLLBACK(oAplicacion.Conexion) =SQLSETPROP(oAplicacion.Conexion, Transactions, 1) RETURN -1 ELSE nResultado = 1 ENDIF ETC, ETC, ETC … O bien, para traer un cursor con un listado de PAGOS: *** * *** PROCEDURE TraerTodos(sNombreCursor) *** * *** LOCAL nResultado nResultado = -1 * TEXT TO cInstruccionSql TEXTMERGE NOSHOW PRETEXT 2 SELECT FechaPago, CodigoPago, Comprobante, Descripcion, Descuento, Importe, NumeroRecibo FROM Pagos ENDTEXT * nResultado = SQLEXEC(oAplicacion.Conexion, cInstruccionSql, sNombreCursor) * IF nResultado 0 THIS.ParseaError ENDIF * RETURN nResultado * ENDPROC Estoy mil por cien seguro que el framework es muchísimo mejor… pero yo así saqué las papas del fuego, desarrollé todo rapidito y eficientemente. Saludos.
[GUFA] SQL SERVER
Yo uso: nConexion = SQLSTRINGCONNECT(DRIVER=SQL Server;SERVER=NOMBRE_DE_TU_SERVIDOR;UID=NOMBRE_DE_TU_USUARIO;DATABASE=NOMBRE_DE_TU_BASEDEDATOS;PWD=TU_PASSWORD; y anda como chicotazo. Pero repito...dale para adelante con el framework de los muchachos. Saludos. -Mensaje original- De: GUFA@mug.org.ar [mailto:GUFA@mug.org.ar] En nombre de pablo.oviedo Enviado el: jueves, 26 de julio de 2012 08:14 p.m. Para: GUFA List Member Asunto: [GUFA] SQL SERVER Muchas Gracias!! Una consulta, que conviene usar ADO o ODBC? saludos. -Original Message- From: Alejandro Paciotti Iacchelli alejandro.pacio...@gmail.com To: GUFA List Member GUFA@mug.org.ar Date: Thu, 26 Jul 2012 17:18:44 -0300 Subject: [GUFA] SQL SERVER Bueno Pablo, yo uso algo como lo siguiente: ** * * *** DEFINE CLASS Pagos AS Custom ** * * *** NumeroError = 0 DescripcionError = * nResultado = THISFORM.oPagos.Alta(cComprobante, dFechaPago, nImporte, cCodigoContrato, nDescuento, cDescripcion, cNumeroRecibo) ** * * *** PROCEDURE Alta(cComprobante, dFechaPago, nImporte, cCodigoContrato, nDescuento, cDescripcion, cNumeroRecibo) ** * * *** * Recibe las variables y llama al procedimiento almacenado SP_Alta_PAGOS * LOCAL nResultado nResultado = -1 * =SQLSETPROP(oAplicacion.Conexion, Transactions, 2) * TEXT TO cInstruccionSql NOSHOW PRETEXT 2 EXECUTE SP_Alta_Pagos @CodigoContrato = ?cCodigoContrato, @CodigoFormaPago = ?cCodigoFormaPago, @Comprobante = ?ALLTRIM(cComprobante), @FechaPago =?DTOC(dFechaPago), @Importe =?nImporte, @Descuento =?nDescuento, @Descripcion =?cDescripcion, @NumeroRecibo =?cNumeroRecibo, @CodigoUsuario =?oAplicacion.CodigoUsuario ENDTEXT * =SQLPREPARE(oAplicacion.Conexion, cInstruccionSql) * nResultado = SQLEXEC(oAplicacion.Conexion) * IF nResultado 0 THIS.ParseaError(ALTA Pagos) =SQLROLLBACK(oAplicacion.Conexion) =SQLSETPROP(oAplicacion.Conexion, Transactions, 1) RETURN -1 ELSE nResultado = 1 ENDIF ETC, ETC, ETC … O bien, para traer un cursor con un listado de PAGOS: ** * * *** PROCEDURE TraerTodos(sNombreCursor) ** * * *** LOCAL nResultado nResultado = -1 * TEXT TO cInstruccionSql TEXTMERGE NOSHOW PRETEXT 2 SELECT FechaPago, CodigoPago, Comprobante, Descripcion, Descuento, Importe, NumeroRecibo FROM Pagos ENDTEXT * nResultado = SQLEXEC(oAplicacion.Conexion, cInstruccionSql, sNombreCursor) * IF nResultado 0 THIS.ParseaError ENDIF * RETURN nResultado * ENDPROC Estoy mil por cien seguro que el framework es muchísimo mejor… pero yo así saqué las papas del fuego, desarrollé todo rapidito y eficientemente. Saludos.