Los querys devueltos por ADO crean archivos dbf temporal en alguna carpeta temporal como los ODBC
Publicado: Jue Dic 16, 2010 2:14 am
Estoy haciendo pruebas con ADO y estoy complicandome cada vez mas me parece
para pasar de ODBC a ADO.
Algunos browses con OnChange no me funcionan correctamente, se cuelgan y no
se por que, tendrá que ver con los tipos de datos, los nombres largos, los
alias, las consultas dentro de consultas, no se me está secando.
Este es un query que no anda.
//----------------------------
WITH OBJECT oObjeto := TBrowseX():New( oForm )
:nOffSet := nOffset
:nLimit := nLimit
:cValor := cValor
:oDBBrowse := oDBBrowse
:FoDbf := oDataSet
:aFields := {{"renglon", "It.",
"N", 40, ""},+;
{"descripcion", "Descripción",
"C",170, ""},+;
{"presentacion", "Presentación",
"C",170, ""},+;
{"codigo", "Código",
"C", 70, ""},+;
{"cantidad", "Pedir",
"N", 60, ""},+;
{"tipo", "Tipo",
"C",100, ""},+;
{"fracc", "Fracc.",
"C", 50, ""},+;
{"laboratorio", "Laboratorio",
"C",100, ""},+;
{"accion", "Acción",
"C",100, ""},+;
{"droga", "Droga",
"C",100, ""},+;
{"stock", "Stk.actual",
"N", 80, ""},+;
{"total", "Imp.total",
"N", 70, ""} }
:cText := ""
:oComboCampos := oCombobox
:cFiltro := cFiltro
:lSetFocus := lSetFocus
:cSelect := +;
"select det.idcom_nped_cpa_det as iddetalle, det.renglon as renglon,
"+;
" det.idarticulo as idarticulo, "+;
" det.codigoreferencia as codigo, art.descripcion as descripcion,
"+;
" art.codigobarra as codbarra, art.codigo_externo as codigoexterno,
"+;
" det.cantidad ::integer as cantidad, det.idunidad as unidad ,
det.idcom_nped_cpa as idcabecera, "+;
" det.idestadocom_nped_cpa as idestado, est.descripcion as estado
,"+;
" est.descripcion as estado, det.total as total,art.stk_minimo as
minimo, "+;
" det.preciounitario as preciounit, det.neto as neto, "+;
" med.presentacion as presentacion, tart.descripcion as tipo,
lab.descripcion as laboratorio ,"+;
" acc.descripcion as accion, dro.descripcion as droga ,
art.stk_actual as stock, "+;
" case when "+;
" (select f.idarticulodestino from articulosfraccionados f "+;
" where f.idarticulodestino= art.idarticulo) "+;
" is not null "+;
" then 'SI'::char(20) "+;
" else 'NO'::char(20) "+;
" end as fracc "+;
" from com_nped_cpa_det det "+;
" left join com_nped_cpa com on com.idcom_nped_cpa=
det.idcom_nped_cpa "+;
" left join articulos art on det.idarticulo= art.idarticulo "+;
" left join sld_medicamentos med on med.idarticulo = art.idarticulo
"+;
" left join sld_drogas dro on med.idsld_droga = dro.idsld_droga "+;
" left join sld_acciones acc on med.idsld_accion = acc.idsld_accion
"+;
" left join sld_laboratorios lab on med.idsld_laboratorio =
lab.idsld_laboratorio " +;
" left join tiposarticulo tart on art.idtipoarticulo =
tart.idtipoarticulo "+;
" left join estadocom_nped_cpa est on
est.idestadocom_nped_cpa=com.idestadocom_nped_cpa "+;
"where true "+;
"order by renglon"
END WITH
oObjeto:BtnBuscarClick()
Muchas gracias.
para pasar de ODBC a ADO.
Algunos browses con OnChange no me funcionan correctamente, se cuelgan y no
se por que, tendrá que ver con los tipos de datos, los nombres largos, los
alias, las consultas dentro de consultas, no se me está secando.
Este es un query que no anda.
//----------------------------
WITH OBJECT oObjeto := TBrowseX():New( oForm )
:nOffSet := nOffset
:nLimit := nLimit
:cValor := cValor
:oDBBrowse := oDBBrowse
:FoDbf := oDataSet
:aFields := {{"renglon", "It.",
"N", 40, ""},+;
{"descripcion", "Descripción",
"C",170, ""},+;
{"presentacion", "Presentación",
"C",170, ""},+;
{"codigo", "Código",
"C", 70, ""},+;
{"cantidad", "Pedir",
"N", 60, ""},+;
{"tipo", "Tipo",
"C",100, ""},+;
{"fracc", "Fracc.",
"C", 50, ""},+;
{"laboratorio", "Laboratorio",
"C",100, ""},+;
{"accion", "Acción",
"C",100, ""},+;
{"droga", "Droga",
"C",100, ""},+;
{"stock", "Stk.actual",
"N", 80, ""},+;
{"total", "Imp.total",
"N", 70, ""} }
:cText := ""
:oComboCampos := oCombobox
:cFiltro := cFiltro
:lSetFocus := lSetFocus
:cSelect := +;
"select det.idcom_nped_cpa_det as iddetalle, det.renglon as renglon,
"+;
" det.idarticulo as idarticulo, "+;
" det.codigoreferencia as codigo, art.descripcion as descripcion,
"+;
" art.codigobarra as codbarra, art.codigo_externo as codigoexterno,
"+;
" det.cantidad ::integer as cantidad, det.idunidad as unidad ,
det.idcom_nped_cpa as idcabecera, "+;
" det.idestadocom_nped_cpa as idestado, est.descripcion as estado
,"+;
" est.descripcion as estado, det.total as total,art.stk_minimo as
minimo, "+;
" det.preciounitario as preciounit, det.neto as neto, "+;
" med.presentacion as presentacion, tart.descripcion as tipo,
lab.descripcion as laboratorio ,"+;
" acc.descripcion as accion, dro.descripcion as droga ,
art.stk_actual as stock, "+;
" case when "+;
" (select f.idarticulodestino from articulosfraccionados f "+;
" where f.idarticulodestino= art.idarticulo) "+;
" is not null "+;
" then 'SI'::char(20) "+;
" else 'NO'::char(20) "+;
" end as fracc "+;
" from com_nped_cpa_det det "+;
" left join com_nped_cpa com on com.idcom_nped_cpa=
det.idcom_nped_cpa "+;
" left join articulos art on det.idarticulo= art.idarticulo "+;
" left join sld_medicamentos med on med.idarticulo = art.idarticulo
"+;
" left join sld_drogas dro on med.idsld_droga = dro.idsld_droga "+;
" left join sld_acciones acc on med.idsld_accion = acc.idsld_accion
"+;
" left join sld_laboratorios lab on med.idsld_laboratorio =
lab.idsld_laboratorio " +;
" left join tiposarticulo tart on art.idtipoarticulo =
tart.idtipoarticulo "+;
" left join estadocom_nped_cpa est on
est.idestadocom_nped_cpa=com.idestadocom_nped_cpa "+;
"where true "+;
"order by renglon"
END WITH
oObjeto:BtnBuscarClick()
Muchas gracias.