Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #41  
Antiguo 25-08-2012
mamaro mamaro is offline
Miembro
 
Registrado: mar 2004
Posts: 79
Poder: 21
mamaro Va por buen camino
No he utilizado nunca SQLite, pero te diré que los componentes Zeos utilicé durante bastante tiempo con Firebird y ahora tuve que migrar a utilizar los nativos de Delphi porque me daban algunos problemas (a partir de la version 2.1 de Firebird)

Si fuera Firebird te recomendaría que te ahorraras algunos problemas metiendo código dentro de la base de datos (en los Triggers) para calcular los totales de las facturas por ejemplo, utilizar llaves foráneas para verificar la integridad de los datos, y utilizaras el sistema de transacciones para no recurrir a tablas temporales.

Como te lo dije más arriba nunca e utilizado SQLite por lo que no sé si estas cosas son posibles en esa base de datos pero no perderías nada averiguándolo.
Responder Con Cita
  #42  
Antiguo 25-08-2012
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Curioso un error de sintaxis.
Prueba esto:
Código Delphi [-]
              ZQueryBD.Close;
              ZQueryBD.SQL.Text:= 'Insert Into facturaTemp values ( :num, :art, :cant, :bpre )';
              ZQueryBD.Params[0].Value := intToStr(numero);
              ZQueryBD.Params[1].Value := arti;
              ZQueryBD.Params[2].Value := Edit2.Text;
              ZQueryBD.Params[3].Value := Prec;
              ZQueryBD.ExecSQL;

o esto:
Código Delphi [-]
              ZQueryBD.SQL.Text:= 'Insert Into facturaTemp (ID, Articulo, Cantidad, Precio) values ( :num, :art, :cant, :xpre )';
              ZQueryBD.Params[0].Value := IntToStr(numero);
              ZQueryBD.Params[1].Value := arti;
              ZQueryBD.Params[2].Value := Edit2.Text;
              ZQueryBD.Params[3].Value := Prec;
              ZQueryBD.ExecSQL;
Me comentas que paso.
saludos
__________________
Siempre Novato

Última edición por Caral fecha: 25-08-2012 a las 04:59:11.
Responder Con Cita
  #43  
Antiguo 25-08-2012
Avatar de martini002
martini002 martini002 is offline
Miembro
 
Registrado: may 2012
Ubicación: Puerto Ordaz - Venezuela
Posts: 175
Poder: 12
martini002 Va por buen camino
Sigue igual Caral,
voy a intentar reescribir otra vez,
vamos a ver como me va, usare parametros
y una idea nueva con lo de las tablas.

te agradezco mucho el tiempo y la ayuda
__________________
El Conocimiento se puede compartir, pero la Experiencia es totalmente Intransferible.
Responder Con Cita
  #44  
Antiguo 25-08-2012
Avatar de martini002
martini002 martini002 is offline
Miembro
 
Registrado: may 2012
Ubicación: Puerto Ordaz - Venezuela
Posts: 175
Poder: 12
martini002 Va por buen camino
Porfin! Quedo resuelto,
Gracias a todos por su contribucion, en especial a Caral
les muestro como quedo el codigo.

No estoy usando los parametros,
porque me estan dando errores que desconozco

Gracias

Código Delphi [-]
procedure TForm1.BAgregarClick(Sender: TObject);
begin
  if ECodigo.Text<>'' then       //Condicion de codigo en blanco
    begin
      ZQueryBD.Close;
      ZQueryBD.SQL.Text:= 'Select Codigo From Inventario Where Codigo = '+ECodigo.Text;
      ZQueryBD.Open;
      if ZQueryBD.IsEmpty then //Controlar el Codigo del producto
                               //Verifica si es correcto o no entrara a las otras condiciones.
        Begin
          ShowMessage('El Codigo del Producto es Invalido o NO esta Registrado');
        End                    //Controlar el codigo del producto si es correcto
      Else                     //entonces entrara en esta codicion
        begin
          //Si Cantidad es correcta
          if StrToInt(ECantidad.Text)>=1 then
            begin
              //Seleccionamos Producto y precio desde inventario
              //y transferimos a la Factura Temporal
              ZQueryBD.Close;
              ZQueryBD.SQL.Text:= 'Insert Into FacturaTemp (Articulo, Cantidad, Precio) Select Articulo, '+
                                   ECantidad.Text+', Precio * '+ECantidad.Text+' From Inventario Where Codigo = '+ECodigo.Text;
              ZQueryBD.Open;

              //Muestro en el DBGrid todo lo de factura
              ZQueryBD.Close;
              ZQueryBD.SQL.Text:= 'Select * From FacturaTemp';
              ZQueryBD.Open;

              //Sumo el Total
              ZQuery1.Close;
              ZQuery1.SQL.Text:=  'Select Sum(Precio) as Suma From FacturaTemp';
              ZQuery1.Open;
              ETotal.Text:= ZQuery1.FieldByName('Suma').AsString +' BsF';
            end
          Else //Cantidad correcta o No
            begin
              ShowMessage('La Cantidad debe ser Mayor o Igual que 1');
            end;
        end;
    end
  Else
    begin
      ShowMessage('Ingrese un Codigo'); //Condicion de codigo en blanco
    end;
end;


procedure TForm1.BDespacharClick(Sender: TObject);
Var
  Codigo :Integer;
  Total  :String;
begin
  //Selecciona monto total para registrar
  Total:='';
  ZQuery1.Close;
  ZQuery1.SQL.Text:= 'Select Sum(Precio) as Precio From FacturaTemp';
  ZQuery1.Open;
  Total:= ZQuery1.FieldByName('Precio').AsString+' BsF';

  //Seleccionar maximo codigo y sumarle 1
  ZQuery1.Close;
  ZQuery1.SQL.Text := 'Select Max(CodigoFactura) as CodigoFactura from FacturaDetalle';
  ZQuery1.Open;
  Codigo:= ZQuery1.FieldByName('CodigoFactura').AsInteger;
  Codigo:= Codigo+1;

  //Transferir datos desde la temporal a la final
  ZQueryBD.Close;
  ZQueryBD.SQL.Text:= 'Insert Into FacturaDetalle Select '+IntToStr(Codigo)+', Articulo, Cantidad, Precio From FacturaTemp';
  ZQueryBD.ExecSQL;

  ZQueryBD.SQL.Text:= 'Delete From facturaTemp';
  ZQueryBD.ExecSQL;

  ETotal.Text:='0.00 BsF';
  ECodigo.Text:='';
  ECantidad.Text:='1';
end;
__________________
El Conocimiento se puede compartir, pero la Experiencia es totalmente Intransferible.

Última edición por Casimiro Notevi fecha: 25-08-2012 a las 18:49:50.
Responder Con Cita
  #45  
Antiguo 25-08-2012
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Me alegro.
Saludos
__________________
Siempre Novato
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
Error en cantidad de columnas. patorecalde Varios 3 12-06-2008 19:11:16
Update un campo sumando existencia (Inventario) enecumene Conexión con bases de datos 29 07-10-2007 22:35:12
Sumando columnas con Qreport ? Coco_jac Varios 5 27-01-2006 14:57:56
error sumando campos weke SQL 2 02-06-2004 14:52:33
Sumando columnas/Filas StartKill Firebird e Interbase 5 27-05-2004 09:42:32


La franja horaria es GMT +2. Ahora son las 07:09:05.


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