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
public
end;
RegUnPrecio = Record
PorcUtil,
PorcUtilEx:Boolean;
Utilidad,
UtilidadEx,
SinImpuesto,
MtoImpuesto1,
MtoImpuesto2,
TotalPrecio,
TotalPrecioEx:Currency;
TipoRound:Byte;
end;
RegDePrecios = Array[1..6] of RegUnPrecio;
RegCostos = Record
CodeCompra : String[50]; VImpuesto1 ,
VImpuesto2 : Boolean; CostoAnteriorBs ,
CostoAnteriorEx ,
CostoActualBs ,
CostoActualEx ,
CostoPromedioBs ,
CostoPromedioEx ,
MImpuesto1 ,
MImpuesto2 : Currency;
PorcentImp1 ,
Exento1 ,
PorcentImp2 ,
Exento2 : Boolean;
FechaVencimiento: TDateTime; NumeroDeLote : String[42]; CostoReferencia : Double; 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 where fx_codigo='+quotedstr('B-TC'));
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);
end;
end.