On 13 Apr 2006, at 21:21, Jerry Haynes wrote:

Has anyone successfully called sp_password on a Sybase database? Nothing is being returned back to theArray so I have no clue what the problem might be.

private NSArray setSybasePassword(String eoModel, String masterPassword, String newPassword, String userName) {
        EOEditingContext context = session().defaultEditingContext();
        
String sqlString = "exec sp_password '" + masterPassword + "', '" + newPassword + "', '" + userName + "'";
        
NSArray theArray = EOUtilities.rawRowsForSQL(context, eoModel, sqlString, null); //NSLog.out.appendln("*********** " + eoModel + " -- " + sqlString + " -- " + theArray + " ************");
        return theArray;
}


Thanks,
Jerry

Speaking from experience, Sybase stored procedures often return multiple rowsets. You can confirm this is the case for sp_password using sp_helptext when in the sybsystemprocs database. The problem is not EOAdaptorChannel.evaluateExpression() vs EOAdaptorChannel.executeStoredProcedure(), it's in having to write your own code to fetch multiple rowsets. There was once some very useful example code in the API reference documentation for how to do this, but it's long since been pruned out.

Broadly (I have abstracted this from some ObjC code),

channel.executeStoredProcedure(...);
while (channel.isFetchInProgress()) {
   channel setAttributesToFetch(channel.describeResults());
   while ((row=channel.fetchRow())!=null) {
     ...
   }
} // in my code this loop was do{}while(); instead of while(){}

I've never tried this in Java. The row dictionaries returned use EOAttribute names as keys. The OPENSTEP adaptor I was using created EOAttributes (in the array returned by describeResults()) having names of EOAttribute[n] , but external names which were the Sybase column names in the result set.

Hope this helps!

-- Patrick

_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to