Ver Mensaje Individual
  #1  
Antiguo 06-11-2011
Avatar de Roll462011
Roll462011 Roll462011 is offline
Registrado
NULL
 
Registrado: jul 2011
Posts: 7
Reputación: 0
Roll462011 Va por buen camino
Pase de Parámetros a TADOQuery

¿Es posible hacer algo así con los parámetros?:

Código Delphi [-]
With ADOQuery2.SQL do
  begin
    Clear;
    Add('INSERT INTO CtasRecive ');
    Add('   (Contador1, CTA, SubCta, Analisis,    SubAnalisis, Epigrafe, Partida, Id_Cuenta, Desc_Cuenta, CTA_Trasp, SubCta_Trasp, Analisis_Trasp,');
    Add('    SubAnalisis_Trasp, Epigrafe_Trasp, Id_Cuenta_Trasp, CTA_Distr, SubCta_Distr, Analisis_Distr, Id_Cuenta_Distr)');
    Add('SELECT :Contador, :Cuenta, :Moneda, Id_Ccosto, :Element, :EsProd, Id_Producto, (:Cuenta + :Moneda + Id_Ccosto + :Element + :EsProd + Id_Producto), Desc_Producto, :731, :Moneda, :CCosto, :Element, :EsProd,');
    Add('    (:731 + :Moneda + :CCosto + :Element + :EsProd), :731, :Moneda, :CCosto, (:731 + :Moneda + :CCosto)');
    Add('FROM OrdenProducOpen');
    Add('WHERE (ImporteTotalMB > 0) AND (Id_Ccosto = ' + Copy(DBEdit3.Text, 1, 4) + ')')
  end;
  ADOQuery2.Parameters.ParamByName('Contador').Value := ComboBox1.Text;
  ADOQuery2.Parameters.ParamByName('731').Value := DBEdit1.Text;
  ADOQuery2.Parameters.ParamByName('CCosto').Value := DBEdit4.Text;
  ADOQuery2.Parameters.ParamByName('Moneda').Value := '1';
  ADOQuery2.Open;

Bueno en el Servidor SQL me funcionó, solo que para Delphi sustituí los valores por parámetros algunos directos (es decir puesto en el campo Value del Parámetro) y otros dinámicos (los leo de otros componentes... No me funcionó en la aplicación enviando una exception...

No sé mucho de esto pero me estoy sospechando que los parámetros son sola en la sección WHERE de la consulta SQL algo así:

WHERE Contado1 = :Contador

Si pudieran aclararme, las literaturas consultadas al respecto son muy ambiguas y solo tratan el caso como lo sospecho

Un saludo

Roll

Última edición por Casimiro Notevi fecha: 06-11-2011 a las 15:57:03.
Responder Con Cita