Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-09-2008
klionsis klionsis is offline
Miembro
 
Registrado: may 2006
Posts: 50
Poder: 21
klionsis Va por buen camino
He probado de la siguiente manera:

Código Delphi [-]
DataModule1.InsProd.SQL.Add('insert into Productos in "c:\Actualizacion\Tablas\Productos.DBF" select * from Productos');
      DataModule1.InsProd.ExecSQL;

Elimine la creacion de la tabla en tiempo de ejecucion ya que la tabla ya se encuentra en el lugar ("c:\Actualizacion\Tablas\Productos.DBF")

pero la aplicacion me informa esto:

"Invalid use of keyword. Token: in..."

Evidentemente hay un problema con la localizacion de la tabla.


como podré solucionarlo ?
Responder Con Cita
  #2  
Antiguo 19-09-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
pero...probaste la consulta 'select ... into'?
Responder Con Cita
  #3  
Antiguo 19-09-2008
klionsis klionsis is offline
Miembro
 
Registrado: may 2006
Posts: 50
Poder: 21
klionsis Va por buen camino
no, entiendo que en la conssulta que te estoy mostrando está el select necesario para realizar la insercion, lo tome como si fuera de la seguiente manera


Código SQL [-]
Insert into Tabla select * from Tabla2

desde esta inserción básica le he agregado el in RutaArchivo como me habias indicado.

A esto te referis?


Gracias.
Responder Con Cita
  #4  
Antiguo 19-09-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
saldras antes de dudas probandolo...
Responder Con Cita
  #5  
Antiguo 19-09-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
creo que tanto el insert into como el select into te da error si la tabla ya existe en el fichero.
Responder Con Cita
  #6  
Antiguo 19-09-2008
klionsis klionsis is offline
Miembro
 
Registrado: may 2006
Posts: 50
Poder: 21
klionsis Va por buen camino
Pero por lo que estoy entendiendo hay otra alternativa de como hacer estos a parte de la que estoy tratando de hacer funcionar, el "Select into", si es así no se como prodria aplicarla. Vos podrias con los datos que tengo mas arriba darme un ejemplo de lo que me queres decir??

Quizas estoy haciendo algo mal... lo estoy probando y no me funciona.


Muchas gracias nuevamente, je.

Saludos.
Responder Con Cita
  #7  
Antiguo 19-09-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
es que no tiene mucho secreto mas...es aquella consulta, tal cual. te tendria que funcionar si la tabla no existe dentro de productos.dbf...a mi, al menos, me funciona asi, y lo uso bastante. Busca el parametro 'in' de sql, que es para acceder a bases de datos externas a la conectada (aunque es bastante entendible ya por los ejemplos) a ver si sacas algo en claro.

Te pongo un ejemplo en la que uso esta forma

Código Delphi [-]
        s := ExtractFileName(OpenDialog1.Filename);             // Nom de l'arxiu
        p := ExtractFilePath(OpenDialog1.Filename);             // path de l'arxiu
        ...
        c.Connected := false;                                   // Fem conexió a l'arxiu
        c.LoginPrompt := false;
        c.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Password="";User ID=Admin;'+
        'Data Source='+ ExtractFilePath(OpenDialog1.Filename) + ';Mode=Share Deny None;Extended Properties="text;HDR=Yes;FMT=Fixed";'+
        'Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDBatabase Password="";'+
        'Jet OLEDB:Engine Type=96;Jet OLEDBatabase Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;'+
        'Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;'+
        'Jet OLEDB:Encrypt Database=False;Jet OLEDBon''t Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;'+
        'Jet OLEDB:SFP=False';
        c.Connected := true;
        ...
        q.Connection := c;                                      // insert massiu a ARTICLES_TMP
        q.Active := false;
        q.SQL.Text :=  'select ' +
                        'id, '+
                        'cod_mar, ' +
                        'cod_fam, ' +
                        'IIF((select marge from MARQUES in ''' + str_articles + ''' where id = cod_mar),'+
                        '(select marge from MARQUES in ''' + str_articles + ''' where id = cod_mar),0) as marge_tmp, '+
                        '(select id_linia from FAMILIES in ''' + str_articles + ''' where id = cod_fam) as cod_lin, '+
                        '(select DESCR from FAMILIES in ''' + str_articles + ''' where id = cod_fam) as FAMILIA, ' +
                        '(select DESCR from MARQUES in ''' + str_articles + ''' where id = cod_mar) as MARCA, ' +
                        'Trim(IIF(DESCR1,Trim(DESCR1),'' '') + '' '' + IIF(DESCR2,Trim(DESCR2),'' '')) as DESCR,' +
                        'PMin, ' +
                        'PRec, ' +
                        'PBase, ' +
                        'iif(iif(PMin > PRec,PMin,PRec) = 0, PBASE * 116/(100 - marge_tmp),iif(PMin > PRec,PMin,PRec)) as PVP,'+
                        'iif(stock = ''&'',true,false) as STOCK ' +
                        'into ARTICLES_TMP in ''' + str_articles + ''' from ' + s;
        q.ExecSQL;
        ...

como ves, en esencia es lo mismo que te he puesto, solo que calcula los argumentos que necesito. A ver si el unico problema que vas a tener es que usas las comillas dobles. Prueba de hacer + QuotedStr(Ruta_archivo_destino,'''') o bien poner las comillas tal como se ponen en una cadena (''')

Última edición por coso fecha: 19-09-2008 a las 17:19:59.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Insercion de datos con un dbgrid luxus Conexión con bases de datos 2 26-10-2006 17:02:55
insercion de datos en navision mak8888 Conexión con bases de datos 9 02-02-2006 08:47:53
Seleccionar registros en una tabla, envio, e insercion en otra tabla!! EfrainSanmiguel Conexión con bases de datos 3 21-10-2004 01:12:43
Urgente. insercion en tabla de SQL sin orden asendente? danytorres SQL 5 19-12-2003 23:08:18
Controlar insercion de fecha y hora en una tabla paradox Muten Tablas planas 7 13-08-2003 17:42:53


La franja horaria es GMT +2. Ahora son las 04:43:58.


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