Ver Mensaje Individual
  #1  
Antiguo 05-10-2010
martinartaza martinartaza is offline
Miembro
NULL
 
Registrado: oct 2010
Posts: 77
Reputación: 16
martinartaza Va por buen camino
Dataset con parametros tipo arreglo.

Hola que tal foro, necesito de vuelta de su valiosa ayuda.
Lo que necesito en pocas palabras es:
1 - llenar un parametro de tipo array de un dataset.

Sino me entendieron, les cuento que estoy trabajando con:
postgresql y delphi 6.0 en mi trabajo, eh creado una función en postgresql para llenar un maestro detalle desde una sola vez, la función funciona bien, la probe desde postgres, esta funcion tiene como parametros, los campos de la tabla maestra, y del detalle (estos ultimos son un vector por cada columna de la tabla detalle). En fin para llamar a la función desde postgress hago lo siguiente y funciona de mil maravilla.

Código SQL [-]
select * from OrdenComprainsert(1, 1, 'Urgente', '2010-10-10', 1, 'Contado', 'Encomienda', 'Juan Perez', '2010-11-11', 
'proveedor eficas', 1, '2010-10-11', 2, array[1,2,3], array[5, 2.5, 3], array[3, 3.5, 2])

En delphi tengo un objeto llamado psinsert: TPSQLQuerie
que en su propiedad sql, tiene la misma consulta de arriba, pero con parametros.

a cada parametro le pongo su : correspondiente, no lo pongo aca porque me salen caritas.

Código SQL [-]
select * from OrdenComprainsert(Pemplea, Ptipo, Pecha, pidprovee, pformapago, Pformaenvio, 
pcontato, pfechaentrega, pnota, pnumerocot, pfecha1impr, Pultimacot, particulos, pcantidad, pprecio)
particulos un arreglo de enteros
pcantidad y pprecio un arreglo de numeric(8,2) o float.

Defino los parámetros según el tipo correspondiente (ftinteger, ftstring, y los de tipo vector los defino de tipo ftArray), cuando voy a cargar los parámetro hago.

Código Delphi [-]
with PSInsert do
   begin
   Close;
   ParamByName('Pemplea').AsInteger:= wg_idEmplea;
   ParamByName('Ptipo').AsString:= CBTipo.Text;
   ParamByName('Pfecha').AsDateTime:= E_Fecha.Date;
   ParamByName('Pidprovee').AsInteger:= StrToInt(E_Proveedor.Text);
   ParamByName('pformapago').AsString:= E_FormaPago.Text;
   ParamByName('pformaenvio').AsString:= E_FormaEnvio.Text;
   ParamByName('pcontato').AsString:= E_Contacto.Text;
   ParamByName('pfechaentrega').AsDateTime:= E_Fecha_Entrega.Date;
   ParamByName('pnota').AsString:= E_Nota.Text;
   ParamByName('pnumerocot').AsInteger:= StrToInt(E_NCotizacion.Text);
   ParamByName('pfecha1impr').AsDateTime:= E_FechaImpresion.Date;
   //debo ingresar los parametros :Pultimacot, articulos, cantidad, precio
   //que son vectores, no se como hacerlo.

   end;

Bueno, eso es lo que no puedo hacer, de vuelta como siempre busque tanto en google como por acá y en libros.

Desde ya muchas gracias.
Responder Con Cita