cool. I figured that's what you were meaning/going after, I just
wanted to get a clearer picture.
-chad
On 2/16/06, Ron Grabowski <[EMAIL PROTECTED]> wrote:
> I meant something closer to this:
>
> // general text processing
> string dynamicText = (string)mappedStatement.Process(
> velocityHandler, new int[] {5, 6, 9});
>
> --- Chad Humphries <[EMAIL PROTECTED]> wrote:
>
> > Sounds like this would be a good extension point as a whole. One
> > thing stuck out in your message though.
> >
> > ========
> > // general text processing
> > string dynamicText = (string)mappedStatement.Process(
> > dynamicTextHandler, new int[] {5, 6, 9});
> > ============
> >
> > The idea that iBatis might handle general text processing (I'm
> > assuming this was just an example to show various uses that could be)
> > as a primary duty is a little worrying, when there are many template
> > processing engines laying about
> > (velocity/nvelocity/stringtemplate/etc).
> >
> > All in all seperating out the two distinct sets of functionality
> > could
> > be very useful I agree. If nothing else it could make iBatis useful
> > to a whole new set of people.
> >
> > -Chad
> >
> >
> >
> > On 2/15/06, Ron Grabowski <[EMAIL PROTECTED]> wrote:
> > > SqlMappers do two tasks: building/executing dynamic sql and
> > translating
> > > the result set into domain objects. It might be useful to expose
> > more
> > > of the "building dynamic sql" code to the user:
> > >
> > > IDictionary map = new Hashtable();
> > > map["StartDate"] = DateTime.Now;
> > > map["EndDate"] = endDate;
> > > map["Users"] = new int[] {4, 7, 6, 9, 10};
> > >
> > > IMappedStatement mappedStatement =
> > > sqlMapper.GetMappedStatement("Calendar.Search");
> > >
> > > // CreateIDbCommand(object parameterObject)
> > > IDbCommand cmd = mappedStatement.CreateIDbCommand(map);
> > >
> > > The returned IDbCommand would have its IDataParameters collection
> > > populated and could be forwarded off to another framework (the
> > > Microsoft Enterprise Library DAAB for example). I've haven't used
> > the
> > > DAAB in a very long time but from the samples on-line I'd envision
> > it
> > > looking something like this:
> > >
> > > IDbCommand cmd = generateCommandFromIBatisNet();
> > > Database db = DatabaseFactory.CreateDatabase();
> > > IDataReader reader = db.ExecuteReader(cmd);
> > >
> > > This might also be an entry point for generic data mapping:
> > >
> > > // produce some sort of Ldap object that will be executed
> > > // by another system
> > > LdapResult result = (LdapResult)mappedStatement.Process(
> > > ldapHandler, 5);
> > >
> > > // hibernate will use the hqlCriteria object in one of its queries
> > > HqlCriteria hqlCriteria = (HqlCriteria)mappedStatement.Process(
> > > hibernateCriteriaHandler, new int[] {5, 6, 9});
> > >
> > > // general text processing
> > > string dynamicText = (string)mappedStatement.Process(
> > > dynamicTextHandler, new int[] {5, 6, 9});
> > >
> > > Getting back on track, I think this is somewhat possible (long and
> > > ugly!) today with IBatisNet:
> > >
> > > // untested
> > >
> > > int parameter = 5;
> > >
> > > IMappedStatement mappedStatement =
> > > sqlMapper.GetMappedStatement("Calendar.Search");
> > >
> > > RequestScope request =
> > > mappedStatement.Statement.Sql.GetRequestScope(
> > > parameter,
> > > sqlMapper.LocalSession);
> > >
> > > mappedStatement.PreparedCommand.Create(
> > > request,
> > > sqlMapper.LocalSession,
> > > mappedStatement.Statement,
> > > parameter);
> > >
> > > IDbCommand cmd = request.IDbCommand;
> > >
> > > Thoughts, ideas?
> > >
> > > - Ron
> > >
> >
>
>