Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Actualizar DBF desde SQL Server (Como Hacer)

212 views
Skip to first unread message

Jorge Aguilar

unread,
Sep 12, 2007, 2:44:10 PM9/12/07
to
Hola a todos tengo que realizar unas actualizacion en unos dbfs y me sale un error bastante raro, sin embargo cuando hago un insert, no hay ningun problema al respecto, le adjunto los querys.
Tengo Windows 2003 Small Business, SQL Server SP4, Visual Fox Pro Oledb Instalado.
 
----- Query 1
SELECT  *
FROM OpenDataSource('VFPOLEDB','Data Source=C:\dbfs;Mode=Read;User ID=;Password=;DSN=')...tabgener

------Query 1 Funciona correctamente
 
------Query 2
INSERT INTO OpenDataSource('VFPOLEDB','Data Source=C:\dbfs;Mode=Read;User ID=;Password=;DSN=')...tabgener
SELECT  *
FROM OpenDataSource('VFPOLEDB','Data Source=C:\dbfs;Mode=Read;User ID=;Password=;DSN=')...tabgener
where tab_clave='00'
------- Query 2 Funciona Correctamente
 
-----Query 3
update OpenDataSource('VFPOLEDB','Data Source=C:\dbfs;Mode=Read;User ID=;Password=;DSN=')...tabgener
set tab_user='SISTEMAS'
where tab_clave='00'
Sale el Siguiente mensaje de Error
Servidor: mensaje 7333, nivel 16, estado 2, línea 1
No se puede obtener una fila con un marcador del proveedor OLE DB 'VFPOLEDB'.
[OLE/DB provider returned message: La operación de múltiples pasos de OLE DB generó errores. Compruebe los valores de estado de OLE DB si es posible. No se realizó ningún trabajo.]
-------- Query 3 Presenta Errores
Alguna Sugerencia
Gracias
Jorge

Jorge Aguilar

unread,
Sep 13, 2007, 2:59:46 PM9/13/07
to
Ya esta solucionado por si alguien le interesa.
 
--Añado el Servidor Vinculado, esto solo se realiza una Vez
EXEC master..sp_addlinkedserver 'SISCOM','','MSDASQL',null,null,'Driver={Microsoft Visual FoxPro Driver};SourceDB=C:\DBFS\;SourceType=DBF;NULL' 
--Realizo el Select
Select * from OPENQUERY(SISCOM,'Select * from tabgener where tab_clave="99"')
--Realizo el Update
update OPENQUERY(SISCOM,'Select * from tabgener where tab_clave="99"')
 Set tab_user = 'JORGE', tab_fuact = getdate()
--Realizo el Insert
Declare @tab_clave varchar(2),
            @tab_descri varchar(60),
            @tab_refer varchar(3),
            @tab_user varchar(10)
Set @tab_clave = '99'
Set @tab_descri='PRUEBA DEL SISTEMA'
Set @tab_refer = ''
Set @tab_user = 'USUARIO'
insert openquery(SISCOM, 'select * from tabgener where 1=0')  values (@tab_clave, @tab_descri, @tab_refer, @tab_user, getdate())
--Realizo el Select
Select * from OPENQUERY(SISCOM,'Select * from tabgener where tab_clave="99"')
 
"Jorge Aguilar" <jagu...@hushpuppiesperu.com> escribió en el mensaje news:ePd$ywW9HH...@TK2MSFTNGP06.phx.gbl...
0 new messages