Ver Mensaje Individual
  #1  
Antiguo 26-01-2005
kaopectate kaopectate is offline
Registrado
 
Registrado: ene 2005
Posts: 5
Reputación: 0
kaopectate Va por buen camino
Problema con ClientDataSet

Hola a todos.

Estaba recompilando una aplicación con el nuevo Delphi 2005 y me he topado con algo que debe ser una tontería pero que no me funciona:

- Tengo un componente SQLQuery (Query de DBExpress conectado a MySQL).
- Un componente DataSetProvider (conectado al anterior)
- Un ClientDataSet (cuyo provider es el anterior).

Si coloco una sentencia SQL normal en el SQLQuery y luego abro el ClientDataSet, puedo ver el resultado en un DBGrid. Hasta alli todo bien.

El problema es cuando cambio dinámicamente la sentencia SQL del SQLQuery luego de haberlo abierto. Algo como esto:

Código PHP:
procedure TForm1.GoClick(SenderTObject);
begin
  SQLQuery1
.Close;
  
with SQLQuery1.SQL do
  
begin
    Clear
;
    
Add('Select');
    
Add('  *');
    
Add('From');
    
Add('  crs_us_users');
    
Add('Where');
    
Add('  kcode_count = ' IntToStr(SpinEdit1.Value) + ' and');
    
Add('  kcode_compn = ' IntToStr(SpinEdit2.Value) + ' and');
    
Add('  kcode_users = ' IntToStr(SpinEdit3.Value));
  
end;
  
Memo1.Lines.Clear;
  
Memo1.Lines.AddStrings(SQLQuery1.SQL);
  
SQLQuery1.Open;
  
ClientDataSet1.Open;
end
Estoy construyendo la sentencia SQL de acuerdo a unos valores que cambian. El problema es que la primera vez que presiono el botón, la respuesta es la correcta, pero al cambiar uno de los valores y volver a presionar el botón, el ClientDataSet pareciera no enterarse.

Como ven lo estoy cerrando antes de cambiar la sentencia SQL y abriendolo luego, el DataSetProvider esta bien conectado (o no me funcionaría ni siquiera la primera vez).

¿Que podría estar pasando?
Responder Con Cita