Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MS SQL Server
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #4  
Antiguo 10-10-2015
aromigaret aromigaret is offline
Miembro
 
Registrado: jun 2011
Posts: 74
Poder: 16
aromigaret Va por buen camino
Despues de mucho investigar encontre la solucion. La dejo por si alguien lo necesita. Es para Sql server 2008 en adelante

Primero hay que ejecutar en sql

sp_configure 'show advanced options', 1
reconfigure
go
exec sp_configure 'Ad Hoc Distributed Queries',1
go
reconfigure
go

Esto es para habilitar la opcion Ad Hoc la cual permite la comunicacion con entornos externos de sql

Luego escribir para crear el procedimiento almacenado

Código SQL [-]
CREATE PROCEDURE [dbo].[VOLCAR]
  @ARCHIVO NCHAR(30),          -- NOMBRE DEL .DBF A ACCEDER
  @PATH NCHAR(20),               -- DIRECTORIO DONDE SE ENCUENTRA  POR EJEMPLO 'C:\PEDIDOS\'
  @PEDIDO NCHAR(50)             -- TABLA DONDE DESCARGAR EL CONTENIDO DE  @ARCHIVO
    
AS
BEGIN 
  DECLARE @sql char(400) 
  DECLARE @Driver sysname 
  DECLARE @Cadena sysname 
  DECLARE @Sentencia CHAR(100)
  
  SET NOCOUNT ON;  
  
  EXECUTE ('CREATE TABLE '+ @PEDIDO + '(CANTIDAD NUMERIC(8,2),ARTICULO NCHAR(60), MARCA NCHAR(15), CODIGONUM NCHAR(5))')  
  
  SET @Driver= '''' + 'Microsoft.Jet.OLEDB.4.0' + '''' 
  SET @Cadena= '''' + 'dBase IV; HDR=NO;IMEX=2; DATABASE=' + @PATH + ''''   
  SET @Sentencia= '''' + 'SELECT CANTIDAD,ARTICULO,MARCA,CODIGONUM FROM ' + @ARCHIVO + ''''    
  SET @sql='INSERT INTO ' + @PEDIDO + ' select * FROM OPENROWSET(' + @Driver + ', ' + @Cadena + ', ' + @Sentencia + ')' 
  
  execute (@sql)

y el llamado del procedimeinto desde Delphi es :

Código Delphi [-]
        PROCEDIMIENTO.ProcedureName:='VOLCAR';
        PROCEDIMIENTO.Parameters.Refresh;
        PROCEDIMIENTO.Parameters.ParamByName('@PATH').Value:= 'c:\pedidos\';          // DIRECTORIO DONDE SE ENCUENTRA LA TABLA .DBF
        PROCEDIMIENTO.Parameters.ParamByName('@ARCHIVO').Value:= ARCHIVO_DBF;   // CON LA EXTENSION .DBF INCLUIDA EN EL NOMBRE EJEMPLO 'BASE.DBF'
        PROCEDIMIENTO.Parameters.ParamByName('@PEDIDO').Value:= MIBASENUEVA ;   // LA TABLA DONDE SE GUARDARA LOS DATOS DE LA 'BASE.DBF'
        PROCEDIMIENTO.ExecProc;

Espero que le sea util a alguien.
Saludos
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
ver los directorio de un FTP kurono Varios 3 08-09-2010 06:32:04
ocultar Directorio shoulder Varios 2 15-04-2008 04:45:55
Directorio virtual Roilo Internet 4 21-06-2007 22:51:48
Descompartir Directorio Ledian_Fdez API de Windows 1 09-11-2006 00:02:13
Guardar directorio Fat Varios 5 25-07-2006 19:42:12


La franja horaria es GMT +2. Ahora son las 18:11:38.


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