Hello World!
I create over 600 ODBC SASLibraries with this macro:
%macro create_odbc_lib (MetaLibName=, Desc=, LibRefName=, FolderPath=, DatabaseSchema=, Connection= , AssignMode= , folderTab=, cntrlTab= );
...
data temp;
length luri uri muri lcuri puri euri propuri1-propuri7 $256 rc1-rc46 8;
Call missing(luri, uri, muri, lcuri, puri, euri,propuri1,propuri2,propuri3,propuri4,propuri5,propuri6,propuri7);
/* Create a SASLibrary object in the Shared Data folder. */
rc1=metadata_newobj("SASLibrary",luri,"&MetaLibName.","Foundation","&folder_uri","Members");
/* Add PublicType,UsageVersion,Engine,Libref,IsDBMSLibname attribute values. */
rc2=metadata_setattr(luri,"PublicType","Library");
rc3=metadata_setattr(luri,"UsageVersion","1000000.0");
rc4=metadata_setattr(luri,"Engine","ODBC");
rc5=metadata_setattr(luri,"Desc","&Desc.");
rc6=metadata_setattr(luri,"Libref","&LibRefName");
rc7=metadata_setattr(luri,"IsDBMSLibname","1");
/* Set Directory Object via UsingPackages Association for the SAS Library Object */
rc8=metadata_newobj("DatabaseSchema",uri,"");
rc9=metadata_setassn(luri,"UsingPackages","Replace",uri);
rc10=metadata_setattr(uri,"SchemaName","&DatabaseSchema.");
rc46=metadata_setattr(uri,"Name","&LibRefName.");
/* Set Server Context Object via DeployedComponents Association for the SAS Library Object */
rc11=metadata_getnobj("omsobj:ServerContext?@Name='SASApp'",1,muri);
rc12=metadata_setassn(luri,"DeployedComponents","Append",muri);
/* Set SASClientConnection */
rc13=metadata_getnobj("omsobj:SASClientConnection?@Name='Connection: &Connection.'",1,lcuri);
rc14=metadata_setassn(luri,"LibraryConnection","Append",lcuri);
/* Set Prototype */
rc15=metadata_getnobj("omsobj:Prototype?@Name='Library.ODBC.Prototype.Name.xmlKey.txt'",1,puri);
rc16=metadata_setassn(luri,"UsingPrototype","Append",puri);
/* Set AssignMode */
rc17=metadata_newobj("Extension",euri,"AssignMode","Foundation",luri,"Extensions");
rc18=metadata_setattr(euri,"Value","&AssignMode");
/* Property: READ_ISOLATION_LEVEL */
rc19=metadata_newobj("Property",propuri1,"Library.DBMS.Property.ReadIsoLvl.Name.xmlKey.txt","Foundation",luri,"Properties");
rc20=metadata_setattr(propuri1,"DefaultValue","RU");
rc21=metadata_setattr(propuri1,"Delimiter","=");
rc22=metadata_setattr(propuri1,"PropertyName","READ_ISOLATION_LEVEL");
/* Property: CONNECTION */
rc23=metadata_newobj("Property",propuri2,"Library.DBMS.Property.ConnType.Name.xmlKey.txt","Foundation",luri,"Properties");
rc24=metadata_setattr(propuri2,"DefaultValue","GLOBAL");
rc25=metadata_setattr(propuri2,"Delimiter","=");
rc26=metadata_setattr(propuri2,"PropertyName","CONNECTION");
/* Property: Autocommit */
rc27=metadata_newobj("Property",propuri3,"Library.DBMS.Property.AUTOCOMMIT.Name.xmlKey.txt","Foundation",luri,"Properties");
rc28=metadata_setattr(propuri3,"DefaultValue","NO");
rc29=metadata_setattr(propuri3,"Delimiter","=");
rc30=metadata_setattr(propuri3,"PropertyName","AUTOCOMMIT");
/* Property: INSERTBUFF */
rc30=metadata_newobj("Property",propuri4,"Library.DBMS.Property.InsertBuff.Name.xmlKey.txt","Foundation",luri,"Properties");
rc31=metadata_setattr(propuri4,"DefaultValue","1000");
rc32=metadata_setattr(propuri4,"Delimiter","=");
rc33=metadata_setattr(propuri4,"PropertyName","INSERTBUFF");
/* Property: READBUFF */
rc34=metadata_newobj("Property",propuri5,"Library.DBMS.Property.ReadBuff.Name.xmlKey.txt","Foundation",luri,"Properties");
rc35=metadata_setattr(propuri5,"DefaultValue","32767");
rc36=metadata_setattr(propuri5,"Delimiter","=");
rc37=metadata_setattr(propuri5,"PropertyName","READBUFF");
/* Property: DBCOMMIT */
rc38=metadata_newobj("Property",propuri6,"Library.DBMS.Property.DBCommit.Name.xmlKey.txt","Foundation",luri,"Properties");
rc39=metadata_setattr(propuri6,"DefaultValue","10000");
rc40=metadata_setattr(propuri6,"Delimiter","=");
rc41=metadata_setattr(propuri6,"PropertyName","DBCOMMIT");
/* Property: DIRECT_EXE */
rc42=metadata_newobj("Property",propuri7,"Library.DBMS.Property.DirectExe.Name.xmlKey.txt","Foundation",luri,"Properties");
rc43=metadata_setattr(propuri7,"DefaultValue","DELETE");
rc44=metadata_setattr(propuri7,"Delimiter","=");
rc45=metadata_setattr(propuri7,"PropertyName","DIRECT_EXE");
run;
I register the table metadaten with the following snippit afterwards:
%do i=1 %to &n;
proc metalib;
omr (library="&&name&i");
update_rule=(delete);
FOLDER = "&&tree_path&i.";
report;
run;
%end;
When I click on the table object I get this erros message:
The field DBMS contains a wrong value "Aster" (the right value would be: ODBC) and the Library is empty:
What could be the mistake?
Best regards,
Klaus
... View more