Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-03-2008
whatson whatson is offline
Miembro
 
Registrado: dic 2007
Posts: 19
Poder: 0
whatson Va por buen camino
Actualizar lista de precios MySql

Buen dia para todos.

Tengo la necesidad de actualizar los precios de los articulos desde Excel.

El problema es de que son al rededor de 15,000 articulos que se verifican cada 15 dias en promedio.
Me gustaria poder hacer un recorrido de cada line de excel para que me localize y compare los articulos con una tabla llamada prods de MySql.

Y que los Articulos que fueran encontrados Me los enviara directamente a otra hoja de excel, con estos datos;

Articulo DescripcionActual DescripcionNueva PrecioActual PrecioNuevo

Los articulos que no fueran encontrados Me los pasara a una hoja diferente de excel. (Que se supone serian articulos nuevos).

Articulo Descripcion Precio

Se me ocurre la posibilidad de exportar primero a una tabla nueva en MySql y posteriormente hacer una comparacion entre las
dos tablas para lograr el resultado deseado.
No considero muy conveniente de que este programa haga las actualizaciones de precio automaticamente, por si la lista del
proveedor estubiera incorrecta.
Los campos que utilizaria de la tabla PRODS serian unicamente "articulo","Descrip","precio".
Utilizaria para la exportacion simple si fuera el caso de la "comparacion entre tablas", este ejemplo que nos proporciono Roman http://www.clubdelphi.com/foros/show...44&postcount=5


Código Delphi [-]

Código Delphi [-]
while not AdoDataSet1.EoF do
begin
Table1.Append;
Table1.Fields[0].Value := AdoDataSet1.Fields[0].Value;
Table1.Fields[1].Value := AdoDataSet1.Fields[1].Value;
Table1.Fields[2].Value := AdoDataSet1.Fields[2].Value;
...
AdoDataSet1.Next;
end;






No se si estoy planteando este proyecto de forma correcta. Me gustaria recibir sus comentarios al respecto, asi como alguna
idea para lograr llevar estos datos a excel para su modificacion y su posterior actualizacion directa.

Nota. Necesito la comparacion para poder definir ciertos filtros posteriores, Ejemplo: Si precio de articulo "x" no es mayor o menor a .05% , el precio no sera modificado.

Gracias.

Última edición por whatson fecha: 05-03-2008 a las 19:54:13.
Responder Con Cita
  #2  
Antiguo 07-03-2008
whatson whatson is offline
Miembro
 
Registrado: dic 2007
Posts: 19
Poder: 0
whatson Va por buen camino
Question Tomé la desición de exportar a la tabla primero

De nuevo gracias por su tiempo.

Tengo un proble ma para exportar desde excel
Me puediera ayudar con este codigo para localizar la causa de que Me este mandando error en que se "estan duplicando los datos en el campo llave 1". ( SQL Error: Duplicate entry 'For Key 1').





Código Delphi [-]
procedure TFormPrincipal.BitBtnCargaClick(Sender: TObject);
var Hoja : OleVariant;
     nFil  : Integer; 
     xVal : String;
begin
      // Crea objeto Excel.
      try
      Excel := CreateOleObject('Excel.Application');
      except
           showmessage('No se pudo crear el Objecto Excel.');
           Exit;
      end;
      Excel.Workbooks.Open('C:\ExportaLista.xls'); // Abre libro Excel
      Hoja := Excel.Worksheets.Item['DATOS']; // Abre Hoja 'Datos'.
     Hoja.Activate; 
     with FormPrincipal.ZTableProdsPaso do
         begin
            if Active then
               Close;
               Open;
               nFil:= 2;
               repeat
                 FormPrincipal.ZQueryProds.Open;
                 FormPrincipal.ZQueryProds.Insert;
                 FormPrincipal.ZQueryProds.FieldByName('ARTICULO').asString := Excel.Cells[nFil,1].Value;
                 FormPrincipal.ZQueryProds.FieldByName('DESCRIP').asString := Excel.Cells[nFil,2].Value;
                 FormPrincipal.ZQueryProds.FieldByName('LINEA').asString := Excel.Cells[nFil,3].Value;
                 FormPrincipal.ZQueryProds.FieldByName('FAMILIA').asString := Excel.Cells[nFil,4].Value;
                 FormPrincipal.ZQueryProds.FieldByName('SUBFAMILIA').asString := Excel.Cells[nFil,5].Value;
                 FormPrincipal.ZQueryProds.FieldByName('COSTO').asString := Excel.Cells[nFil,6].Value;
                 FormPrincipal.ZQueryProds.FieldByName('LISTAPROVEEDOR').asString := Excel.Cells[nFil,7].Value;
                 FormPrincipal.ZQueryProds.Post;
 
                 nFil:= nFil + 1;
                 xVal:= VarToStr(Excel.Cells[nFil,7].Value);
                 until (xVal = '0');

            // Cierra archivo excel.
            try
            Excel.Quit;
            except
                    ShowMessage('Excel no se pudo finalizar.');
                    Excel.Visible := True;
            end;
     end;
end;



Gracias por sus comentarios o sugerencias.

Última edición por whatson fecha: 07-03-2008 a las 17:45:52.
Responder Con Cita
  #3  
Antiguo 07-03-2008
whatson whatson is offline
Miembro
 
Registrado: dic 2007
Posts: 19
Poder: 0
whatson Va por buen camino
Wink

Gracias por la ayuda

El problema lo tenia en la linea
Código Delphi [-]
until (xVal = '0');

Esto provocaba el proceso seguia leyendo lineas vacias de excel y tratando de escribir registros sin datos. (No se detenia).

La linea correcta fue
Código Delphi [-]
until (xVal = '');
Responder Con Cita
Respuesta



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
Consulta de precios en España marceloalegre La Taberna 1 09-05-2007 16:09:58
Redondeo de precios miquellg Varios 6 27-12-2006 17:59:55
Actualizar MySQL 4.0.20 Payola2011 MySQL 0 31-01-2006 18:39:37
Como mostrar una lista de bases de datos en un servidor MySQL con Zeos? guillote Conexión con bases de datos 1 30-07-2004 02:25:42
Como puedo mostrar una lista de bases de datos en un servidor MySQL con Zeos? guillote MySQL 0 27-07-2004 03:32:20


La franja horaria es GMT +2. Ahora son las 14:04:07.


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