Ver Mensaje Individual
  #1  
Antiguo 01-09-2004
n0n3 n0n3 is offline
Registrado
 
Registrado: sep 2004
Posts: 8
Reputación: 0
n0n3 Va por buen camino
readonly dataset

Hola, estoy intentado crear los "fields" (campos?) de un sqldataset dinamicamente, y me da el siguiente error ->

SQLDataSet1: Cannot modify a read-only dataset

El codigo es el siguiente ->

Código:
 
var i: Integer;
var T: TStringField;
begin
SQLDataSet1.Open;
SQLDataSet1.Edit;
SQLDataSet1.ClearFields;
SQLDataSet1.CommandText := 'SELECT '+'ov_cia.cia AS Companyia, '+'od_hospitalitzacio.data AS Dat, '
+'oa_data.SETMANA_DEL_ANY AS S, '+'oa_data.MES_DEL_ANY AS M, '
+'oa_data.TRIMESTRE AS Trimestre, '+'SUM(od_hospitalitzacio.ingressats) AS Ingr, '
+'SUM(od_hospitalitzacio.altes) AS Alt, '+'SUM(od_hospitalitzacio.ingressos) AS Ingres '
+'FROM '+'od_hospitalitzacio, '+'ov_cia, '+'oa_data '+'WHERE '
+'od_hospitalitzacio.id_cia = ov_cia.id_cia AND '
+'od_hospitalitzacio.data = oa_data.DATA AND '
+'oa_data.ANY4 = TO_NUMBER(TO_CHAR(SYSDATE-1, ' + QuotedStr('YYYY')
+ ')) '+'GROUP BY '+'od_hospitalitzacio.data, '+'oa_data.SETMANA_DEL_ANY, '
+'oa_data.MES_DEL_ANY, '+'oa_data.TRIMESTRE, '+'ov_cia.cia';
SQLDataSet1.Close;
T := TStringField.Create(SQLDataSet1);
T.FieldName := 'Prueba';
T.Name := SQLDataSet1.Name + T.FieldName;
T.Index := SQLDataSet1.FieldCount;
T.DataSet := SQLDataSet1;
SQLDataSet1.FieldDefs.UpDate;
SQLDataSet1.Open;
ShowMessage('Fields :' + IntToStr(SQLDataSet1.FieldCount));
for i := 0 to SQLDataSet1.FieldCount - 1 do
	ShowMessage(SQLDataSet1.Fields[i].FieldName);
No he tocado mucho estos temas en delphi, y he estado buscando en google informacion sobre este error pero no encuentro nada ;( Tampoco se si hago bien el tema de crear los "fields", es lo que encontre en la ayuda del delphi... pero como me falla al principio pues tampoco he podido probar si es correcto.

PD: He puesto intros en el query para que no sea tan largo.

Última edición por n0n3 fecha: 01-09-2004 a las 10:02:06.
Responder Con Cita