¿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