Ver Mensaje Individual
  #4  
Antiguo 03-07-2011
Dens Dens is offline
Miembro
 
Registrado: ago 2010
Posts: 20
Reputación: 0
Dens Va por buen camino
Bien, tratare de expresarme un poco mejor, se trata de una tabla que contiene el informacion de costos, precios, utilidad de los productos de un sistema, pero dentro de un solo campo blob no obstantes en ese mismo campo blob se encuentrar los 6 tipos de precio, 6 margenes de utilidad, (precio1, precio 2, precio3) o (precio mayor, precio oferta) a esome refiero con los tipos de precios.

Todos estos campos estan metidos en un solo campo llamado fx_costos.
la empresa de este software me paso la estructura de la base de datos y gracias a eso he podido traer a pantalla la informacion que necesito siempre y cuando la consulta me traiga un solo registro algo como "select campokey, from tabla where campokey='identificador primario'".

para resumir un poco, lo que yo quisiera es poder llevar a un dbgrid un solo tipo de precio y del campo blob y los demas campos de el registro en cuestion, cosa que no he podido hacer, solo puedo llevar al dbgrid todos los campos menos en blob, y hasta ahora solo he podido traer a pantalla el precio del producto cuando le especifico el codigo del producto.

si alguien logra entenderme y ayudarme se lo agradecere mucho.

saludos.




Código Delphi [-]
 Tcargosm = class(TForm)

    DBGrid1: TDBGrid;
    Database1: TDatabase;
    Query1: TQuery;
    DataSource1: TDataSource;
    detalle: TButton;
    Edit1: TEdit;
    procedure consultaCargos();
   

  private
    { Private declarations }
  public
    { Public declarations }
  end;


 RegUnPrecio = Record
 PorcUtil,
 PorcUtilEx:Boolean;
 Utilidad,
 UtilidadEx,
 SinImpuesto,
 MtoImpuesto1,
 MtoImpuesto2,
 TotalPrecio,
 TotalPrecioEx:Currency;
 TipoRound:Byte;
end;



RegDePrecios        = Array[1..6] of RegUnPrecio; // este array es donde estaran los precios1, precios2,precio3,precio4,precio5,precio6


RegCostos  = Record
CodeCompra      : String[50];   //Utilizado en el modulo de compras y el generador de reportes solo ejecucion
VImpuesto1      ,
VImpuesto2      : Boolean;  //Impuestos Activados
CostoAnteriorBs ,
CostoAnteriorEx ,
CostoActualBs   ,
CostoActualEx   ,
CostoPromedioBs ,
CostoPromedioEx ,
MImpuesto1      ,
MImpuesto2      : Currency;
PorcentImp1     ,
Exento1         ,
PorcentImp2     ,
Exento2         : Boolean;
FechaVencimiento: TDateTime;   //Lo uso en el modulo de compras para incluir el vencimiento
NumeroDeLote    : String[42];  //y el numero de lote de los productos con costos por lote
CostoReferencia : Double;      //Costo de referencia para aumentar los precios
Precios         : RegDePrecios;
                        end;


var
 cargosm: Tcargosm;


 
  bs:tstream;
  tabla:regcostos;
  blobf:tblobfield;
  c:string;
implementation

{$R *.dfm}

procedure Tcargosm.consultaCargos();
begin

query1.Close;
query1.sql.Clear;

//query1.sql.Add('select fx_codigo, fx_costos,fx_tipo from sfixed');// asi no me muestra nada
query1.sql.Add('select fx_codigo, fx_costos,fx_tipo from sfixed where fx_codigo='+quotedstr('B-TC'));  // asi me muestra un registro

query1.Open;


    if(query1.FieldByName('fx_costos').isblob) then begin

        blobf:=query1.FieldByName('fx_costos') as tblobfield;
        bs:= query1.CreateBlobStream(blobf, bmread);

        try
        bs.Seek(0,0);
        bs.Read(tabla,sizeof(regcostos)) ;
        finally
        bs.Free;
        end;
    end;
   edit1.Text:=currtostr(tabla.Precios[1].TotalPrecio);// aca muestro el resultado en un tedit

   

end;





end.
Responder Con Cita