[fdo-users] ISelectAggregates: how use it to COUNT?
Matteo
matteo.conte1979 at libero.it
Sun Dec 27 13:38:47 EST 2009
Hi Dan,
I've write this function to calcolate the Count of row in a SHP file but
I get an error when I execute the IselectAggrecates object
Can you help me?
Regards
Matteo
Function INTCalcolaKey(ByVal objConn As Connections.IConnection, ByVal
strClassName As String) As Integer
Try
Dim objCmdSA As Commands.Feature.ISelectAggregates =
objConn.CreateCommand(Commands.CommandType.CommandType_SelectAggregates)
objCmdSA.SetFeatureClassName(strClassName)
objCmdSA.Distinct = False
Dim intCount As Int64
Dim objSelectIds As OSGeo.FDO.Commands.IdentifierCollection =
objCmdSA.PropertyNames
objSelectIds.Clear()
Dim objExp As OSGeo.FDO.Expression.Expression =
OSGeo.FDO.Expression.Expression.Parse("Count('FEATID')")
Dim objCount As OSGeo.FDO.Expression.ComputedIdentifier = New
OSGeo.FDO.Expression.ComputedIdentifier("CONT", objExp)
objSelectIds.Add(objCount)
Dim objFR As OSGeo.FDO.Commands.Feature.IDataReader =
objCmdSA.Execute()
While objFR.ReadNext
intCount = objFR.GetInt64("CONT")
End While
objFR.Close()
objCmdSA.Dispose()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Function
Dan Stoica wrote:
>
> Hi Matteo,
>
> In general you can check the unit tests (basically any provider) for
> virtually any snippet you need.
>
> For Count(), I've copied this from the SHP unit tests:
>
> FdoPtr<FdoISelectAggregates> select =
> (FdoISelectAggregates*)mConnection->CreateCommand
> (FdoCommandType_SelectAggregates);
> select->SetFeatureClassName (className);
> select->SetDistinct(false);
> FdoPtr<FdoIdentifierCollection> selectedIds =
> select->GetPropertyNames();
> selectedIds->Clear();
>
> selectedIds->Add(FdoPtr<FdoComputedIdentifier>(FdoComputedIdentifier::Create(L"Total",
> FdoPtr<FdoExpression>(FdoExpression::Parse(L"Count(\"Date\")")))));
> FdoPtr<FdoIDataReader> datareader = select->Execute ();
> long count = 0;
> while (datareader->ReadNext ())
> {
> FdoInt64 total = datareader->GetInt64(L"Total");
> CPPUNIT_ASSERT_MESSAGE("Count wrong", 4L == total);
> count++;
> }
>
> Dan.
>
> -----Original Message-----
> From: fdo-users-bounces at lists.osgeo.org
> [mailto:fdo-users-bounces at lists.osgeo.org] On Behalf Of Matteo
> Sent: Tuesday, December 22, 2009 3:50 PM
> To: fdo-users at lists.osgeo.org
> Subject: [fdo-users] ISelectAggregates: how use it to COUNT?
>
>
> Hi all,
> I need to know how I can use the ISelectAggregates command? (Ex. how I
> can
> do to get the count the object? or to get the MAX of a property?
> Regards
> Matteo
> --
> View this message in context:
> http://n2.nabble.com/ISelectAggregates-how-use-it-to-COUNT-tp4205687p4205687.html
> Sent from the FDO Users mailing list archive at Nabble.com.
> _______________________________________________
> fdo-users mailing list
> fdo-users at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/fdo-users
> _______________________________________________
> fdo-users mailing list
> fdo-users at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/fdo-users
>
>
--
View this message in context: http://n2.nabble.com/ISelectAggregates-how-use-it-to-COUNT-tp4205687p4221192.html
Sent from the FDO Users mailing list archive at Nabble.com.
More information about the fdo-users
mailing list