Campos Blobs

Delphi

12/09/2007

Estou desenvolvendo um pequeno sistema de dicas em Firebird/dbExpress onde consta de 2 tabelas (Master/Detail) descritas abaixo:


Tabela: EQUIP

NOMETIPONÃO NULO

COD_EQUIPINTEGERNOT NULL
DESCRICAOVARCHAR(50)


Tabela: DETEQUIP

NOMETIPONÃO NULO

COD_DETEQUIPINTEGERNOT NULL
COD_EQUIPINTEGER
MARCAVARCHAR(20)
MODELOVARCHAR(25)
SINTOMAVARCHAR(255)
SOLUCAOBLOB SUB_TYPE 1 SEGMENT SIZE 4096
OBSERVAÇÃOBLOB SUB_TYPE 1 SEGMENT SIZE 4096
FONTEVARCHAR(50)
ESQUEMAVARCHAR(255)

DBExpress

qryEQUIP = TSQLDataset
qryEQUIP.CommandText:= SELECT * FROM EQUIP WHERE COD_EQUIP= :COD_EQUIP

dspEQUIP = TDataSetprovider
dspEQUIP.DataSet:= qryEQUIP
dspEQUIP.Options:= [poFetchBlobsOnDemand]
dspEQUIP.UpdateMode:= upWhereKeyOnly

qryDETEQUIP = TSQLDataSet
qryDETEQUIP.CommandText:= SELECT * FROM DETEQUIP WHERE COD_EQUIP = :COD_EQUIP
qryDETEQUIP.DataSource:=dsEQUIP

dsEQUIP = TDataSource
dsEQUIP.DataSet:=qryEQUIP

Na tela de Cadastro possuo um botão para consultar a dicas, com o seguinte código:

if fmProcurarDicas.ShowModal=mrOk then
begin
cdsEQUIP.Open;
cdsDETEQUIP.Locate(´COD_EQUIP;COD_DETEQUIP´,
VarArrayOf([dsEQUIP.DataSet.FieldByName(´COD_EQUIP´).AsString,
sdtProcurarDICASCOD_DETEQUIP.AsString]),[]);
end;

O problema é que a consulta está demorando muito para trazer a cache, devido aos campos BLOBs. Habilitei a opção “poFetchBlobsOnDemand” do DataSetProvider e a consulta se tornou mais rápida, mas não consigo exibir esses campos em um controle DataWare (DBMemo)


Mauvin

Mauvin

Curtidas 0
POSTAR