Hola a todos, quisiera que por favor me ayuden a mejorar este código, el problema que tengo es que al destuir (QsqlClienteOpcional) aparentemente tambien se destruye (QsqlSistema) y ya no me deja usar ningún metodo de la clase TSistema. La Clase TSistema es una especie de Clase Servidora. Tambien, no se si esta bien la forma como mando la información del query(QsqlSitema) al formulario o hay otra mejor forma de hacerlo, que la verdad lo hice de pura intuición, Espero me puedan dar sugerencias, para mejorar mi código.
Base de datos: Sql 2000
Delphi 6.0
Este es el Código del metodo que utilizo para traer la informacion de la base de datos
Código:
function TSistema.DevuelveClienteOpcional(pCita: String): TAdoQuery;
begin
with QsqlSistema do
begin
Close;
Parameters.Clear;
Parameters.AddParameter.Name:='Cita';
Parameters.ParamByName('Cita').Value:=pCita;
SQL.Text:= 'Select * from CitaOpcional'+
' Where IdCita= :Cita';
ParamCheck:= True;
Open;
Result:= QsqlSistema;
end;
end;
El formulario(FrmCita) que recibe la información tiene el siguiente código
Código:
procedure TFrmCita.MuestraClienteOpcional;
var QsqlClienteOpcional: TADOQuery;
begin
QsqlClienteOpcional:= TADOQuery.Create(Owner);
QsqlClienteOpcional.Connection:= AdocCita;
QsqlClienteOpcional:= Sistema.DevuelveClienteOpcional(FCita);
with QsqlClienteOpcional do
begin
EdtOpcApPaterno.Text:= FieldByName('ApellidoPaterno').AsString;
EdtOpcNombres.Text:=FieldByName('NombreCliente').AsString;
EdtOpcTFijo.Text:=FieldByName('TelefonoFijoCo').AsString;
EdtOpcTCelular.Text:=FieldByName('TelefonoCelularCO').AsString;
EdtOpcHora.Text:=FieldByName('HoraReserva').AsString;
Destroy;
end;
end;
Gracias a Todos de antemano.