Thanks to casualjim in #ironruby, I figured out a way to do what I
needed, but would be interested to see if there is a more appropriate
solution:
I’m trying to use SMO to script objects from a SqlServer DB, using IR.
In particular, I am calling
Microsoft::SqlServer::Management::Smo::Scripter.Script, which expects
an array of SmoObject’s (SmoObject[]).
So…what is the best way to create this array?
I ended up doing the following:
@arsmo = System::Collections::Generic::List[SqlSmoObject].new
@arsmo << dev.tables[“tablename”] # where dev.tables is a
Smo::TableCollection
scripter.Script @arsmo.to_array
As I said…this works fine. And…it also reminded me that
@arsmo.to_array is much different than @arsmo.to_a. Just curious if
there is a better way?
I’ve tried something as simple as::
@arsmo = []
@arsmo << dev.tables[“tablename”]
scripter.Script @arsmo
but I always get: “TypeError: can’t convert Array into
Microsoft::SqlServer::Management::Smo::SqlSmoObject[]”
p.s. I know I can also do dev.tables[“tablename”].script, but I was
trying to assemble a list of everything I wanted scripted, then make
one call
Thanks
Mark