Estoy desarrollando una pequeña aplicación DataSnap/REST y me encuentro con algo muy raro. El servidor tiene un método que devuelve un conjunto de DataSets. Pues bien, mientras los DataSets devueltos tengan menos de 50 registros, los devuelve todos correctamente, pero a la que el DataSet llega a 50 registros, los 50 primeros no los devuelve. Es decir, si tiene que devolver 1000, me devuelve 950.
He debugueado el servidor y la consulta SQL lanzada es correcta (probada en IBExpert)
Estoy usando XE7 + FireDAC + Firebird
En el lado servidor tengo el siguiente método para devolver un DataSet:
delphi
procedure TSvrMethodsMdl.AddTable(SQL, TabName: string; JSON: TFDJSONDataSets); var Q: TFDQuery; begin Q := TFDQuery.Create(nil); try Q.Connection := conTPV; Q.Transaction := conTPV.Transaction; Q.SQL.Text := SQL; TFDJSONDataSetsWriter.ListAdd(JSON, TabName, Q); finally // FreeAndNil(Q); end; end;
Y en el lado cliente hago ésto para recuperarlo
delphi
var LDataSetList: TFDJSONDataSets; LDataSet: TFDDataSet; tTemp: TFDMemTable; begin .... // get remote data LDataSetList := CliConnectMdl.SvrMethodsMdlClient.GetDataChanged(Shop, ResError); // process data LDataSet := TFDJSONDataSetsReader.GetListValueByName(LDataSetList, MyTabName); tTemp.AppendData(LDataSet);
Imagino que será alguna tontería de configuración, pero no doy con ella
Alguna idea?
Gracias!