Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-11-2014
bucanero bucanero is offline
Miembro
 
Registrado: nov 2013
Ubicación: Almería, España
Posts: 208
Poder: 11
bucanero Va camino a la fama
Realizar un MERGE con los ADOConnection

Buenas,

Estoy intentando realizar un MERGE a una tabla en un servidor MSSQL a traves de los componentes ADO, en particular la consulta es

Código SQL [-]
merge STOCKS as target
using (values ('X3', '03', '2014-11-27', 'SA123', 3))  as source 
(EMPRESA,ALMACEN,FECHA,ARTICULO,UNIDADES)   on 
   target.empresa= source.empresa and 
   target.almacen=source.almacen and 
   target.fecha=source.fecha and 
   target.articulo=source.articulo
when matched then
    update
    set UNIDADES = source.UNIDADES
when not matched then
    insert (EMPRESA,ALMACEN,FECHA,ARTICULO,UNIDADES)
    values (
      source.EMPRESA,
      source.ALMACEN,
      source.FECHA,
      source.ARTICULO,
      source.UNIDADES,
    );

Pero siempre obtengo el error "Sintaxis incorrecta cerca de la palabra 'merge'"
He intentado ejecutarlo desde los componentes ADOCommandText, ADOQuery y directamente ejecutandolo con el ADOConnection.Execute siempre con el mismo resultado.

Dicha instrucción SQL es correcta y si la ejecuto en la aplicación Microsoft SQL Server Management Studio, se ejecuta sin problemas y obtengo los resultados esperados de inserción/actualización.

Esta consulta es en MSSQL es equivalente a hacer en MySQL un
Código SQL [-]
INSERT INTO .. ON DUPLICATE KEY UPDATE...

Comentar que estoy usando Delphi XE4, de servidor de datos MSSQL2005 y la conexión al servidor la realizo directamente a través de SQL NATIVE CLIENT.

También he intentando ejecutar dicha consulta con los componentes ZEOS, pero el resultado nuevamente ha sido el mismo.

Me da la impresión que el error al darlo en español lo este generando el SQL NATIVE CLIENT, pero ya lo actualice a la ultima versión del mismo, sin obtener ningún cambio.

Y buscando en google sobre este error tampoco he obtenido resultados.

Gracias anticipadas por su ayuda.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Merge Module Firebird mjjj Firebird e Interbase 5 29-01-2008 14:15:27
InstallShield y BDE Merge Module manitoba Varios 0 14-03-2007 19:02:50
Mail Merge con Word JavierSotillos Varios 0 20-10-2006 12:19:43
merge mail PiPerraK Varios 4 30-08-2005 16:53:11
Merge Modules son necesarios? m@r Varios 2 14-01-2005 16:08:20


La franja horaria es GMT +2. Ahora son las 14:40:27.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi