J
Jarek Micha³owski
Hi, i am newbie here and need help. Subject: Multidimmensional Cube
In the following code I send the sql query to mssql and retrive data to
objCellSet object. My problem is:
In retrive data I have 10 000 records, get_Item() method is too slow, does
anybody knows why? Is any better solution for this problem?
Thanks
Jarek
if (objConn == null)
objConn = new ConnectionClass();
objConn.Open( strProvider, "", "", 0 );
if (objCellSet == null)
objCellSet = new CellsetClass();
objCellSet.Open( mdxQuery, objConn );
string strColName = "";
if (mdxDataSet != null)
mdxDataSet = null;
mdxDataSet = new DataSet();
if (mdxTable != null)
mdxTable = null;
mdxTable = new DataTable("mdxTable");
DataRow mdxRow;
Cell cell;
object[] coords = new Object[2];
mdxTable.Columns.Add("Description");
for (int i=0; i<objCellSet.Axes[0].Positions.Count; i++)
{
strColName = objCellSet.Axes[0].Positions.Members[0].Caption;
mdxTable.Columns.Add(strColName);
}
Console.WriteLine(objCellSet.Axes[1].Positions.Count);
for (int i=0 ;i<objCellSet.Axes[1].Positions.Count; i++)
{
string val = "";
mdxRow = mdxTable.NewRow();
mdxRow[0] = objCellSet.Axes[1].Positions.Members[0].Caption;
for (int j=0; j<objCellSet.Axes[0].Positions.Count; j++)
{
coords[0] = j;
coords[1] = i;
cell = objCellSet.get_Item(ref coords); //<------------ too
slow
string strTemp = cell.FormattedValue;
if ( strTemp == "" || strTemp == null )
val = "0";
else
val = cell.FormattedValue.ToString();
mdxRow[j + 1] = val;
}
mdxTable.Rows.Add(mdxRow);
}
mdxDataSet.Tables.Add(mdxTable);
In the following code I send the sql query to mssql and retrive data to
objCellSet object. My problem is:
In retrive data I have 10 000 records, get_Item() method is too slow, does
anybody knows why? Is any better solution for this problem?
Thanks
Jarek
if (objConn == null)
objConn = new ConnectionClass();
objConn.Open( strProvider, "", "", 0 );
if (objCellSet == null)
objCellSet = new CellsetClass();
objCellSet.Open( mdxQuery, objConn );
string strColName = "";
if (mdxDataSet != null)
mdxDataSet = null;
mdxDataSet = new DataSet();
if (mdxTable != null)
mdxTable = null;
mdxTable = new DataTable("mdxTable");
DataRow mdxRow;
Cell cell;
object[] coords = new Object[2];
mdxTable.Columns.Add("Description");
for (int i=0; i<objCellSet.Axes[0].Positions.Count; i++)
{
strColName = objCellSet.Axes[0].Positions.Members[0].Caption;
mdxTable.Columns.Add(strColName);
}
Console.WriteLine(objCellSet.Axes[1].Positions.Count);
for (int i=0 ;i<objCellSet.Axes[1].Positions.Count; i++)
{
string val = "";
mdxRow = mdxTable.NewRow();
mdxRow[0] = objCellSet.Axes[1].Positions.Members[0].Caption;
for (int j=0; j<objCellSet.Axes[0].Positions.Count; j++)
{
coords[0] = j;
coords[1] = i;
cell = objCellSet.get_Item(ref coords); //<------------ too
slow
string strTemp = cell.FormattedValue;
if ( strTemp == "" || strTemp == null )
val = "0";
else
val = cell.FormattedValue.ToString();
mdxRow[j + 1] = val;
}
mdxTable.Rows.Add(mdxRow);
}
mdxDataSet.Tables.Add(mdxTable);