FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Cita:
Para evitar ese problema... es mejor hacer uso de la función QuotedStr... TQuery1(Sender1).SQL[0]='SELECT * FROM PROVEEDORES WHERE NOMBRE =' + QuotedStr(TQuery2(Sender2).FieldByName('NOMBRE').AsString); o claro... el uso de parámetros... Código:
TQuery1(Sender1).SQL[0] := 'SELECT * FROM PROVEEDORES WHERE NOMBRE = :Nombre'; (Sender1 as TQuery).ParamByName('Nombre').AsString := (Sender2 as TQuery).FieldByName('NOMBRE').AsString; Última edición por jachguate fecha: 17-03-2004 a las 15:18:43. Razón: completar la idea con parámetros |
#2
|
|||
|
|||
Hola Juan....Delphi....Luisny....
Mi pregunta es la siguiente: podria alguno de ustedes explicarme el codigo descrito mas arriba? por que utilizan las clase sender para manejar la cadena SQL y al mismo tiempo para pasarle los parametros al query?...me gustaria saber si esta forma es mucho mas conveniente que la convencional ( o mejor dicho la que yo conocia hasta ahora); Gracias....
__________________
El conocimiento es un Patrimonio Universal.... |
#3
|
||||
|
||||
Me parece que ese código no es muy real, me llaman la atención las clases TQuery1 y TQuery2... y las variables Sender1 y Sender2, pero:
Si tienes un evento que dispara un DataSet, o llamas a un evento, con el parámetro asignado a un dataset, puedes usar este parámetro para hacer referencia al DataSet. Obviamente que si se trata de un Form, con un solo dataset, o sabes que ese evento solo actualizará un dataset, es mucho mas rápido acceder a este por la variable que lo contiene, que hacer estos malabares. Otra cosa que no me agrada mucho, es que solo asigne la primer línea del Sql (SQL[0]), ya que si en alguna momento asigna mas de una línea o una línea tiene un CR+LF, esto producirá errores impredecibles. Código:
procedure TMiForm.MiEvento(Sender: TObject); begin if Sender is TQuery Then with Sender as TQuery do begin Sql.Text := 'SELECT....'; Open; .... end;
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
|
|
|