Ver Mensaje Individual
  #1  
Antiguo 04-11-2008
Dclase Dclase is offline
Miembro
 
Registrado: ene 2007
Posts: 35
Reputación: 0
Dclase Va por buen camino
Unhappy Pasar valores a variable String separados por coma

Saludos primeramente...

A ver si alguien me hecha una manito con un problemita que tengo.

Estoy tratando de pasar unos parametros a una variable String, pero debe ir separado por como, Ej: 'P6','P7'. esto para usarlo en una sentencia con IN.

Este es mi codigo:
CommandText :=
Código SQL [-] 'Select ILINVN,ILORD,ILSAL1,ILCUST,CNME,CAD1,ILWHS,LDESC,ILODPX,ILCONS' + ' From V61BPCSF.SIL' + ' Left Join V61BPCSF.RCM On ILCUST=CCUST' + ' Left Join V61BPCSF.IWM On LWHS=ILWHS' + ' Where ILINVN IN (:Facturas)' + ' And ILODPX IN (:Prefijos) ' + ' And ILWHS=:Almacen'+ ' Group By ILINVN,ILORD,ILSAL1,' + 'LCUST,CNME,CAD1,ILWHS,LDESC,ILODPX,ILCONS';

Params.ParamByName('Facturas').AsString := Trim(Edit2.Text);
Params.ParamByName('Prefijos').AsString := Trim(Edit1.Text);
Params.ParamByName('Almacen').AsString := Trim(txAlm_Salida.Text);

El problema es que el ILODPX debe recibir el valor por ejemplo: 'P6','P7' en la variable delphi ":Prefijos", pero si lo paso como texto normal, cuando el compilador lo pasa, le pasa solo: 'P6,P7', sin las comillas intermedias, y si lo hago manual para que la variable tome 'P6','P7', igual me da el error: TRUNCAMIENTO A LA DERECHA DE DATOS DE TIPO CARACTER, o UNA VARIABLE DE RETORNO ES DEMASIADO PEQUEÑA PARA RECIBIR EL VALOR...
lo mismo me hace con ":Facturas", pero solo cuando son mas de un valor,
si solo paso 'P6' lo hace bien, pero cuando separo con coma y agrego otro se raja.

la base de datos es DB2 en un AS400, lo que en modo de diseño, cuando conecto un DataSet y le paso los parametros, se ejecuta bien, y si en el cuarpo de codigo le pongo directamente los valores, tambien lo hace bien, solo no me funciona cuando paso los valores a una variable.

si alguien saba algo al respecto y me puede ayudar, please..
Responder Con Cita