| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 831 人关注过本帖
标题:[求助]修改com+属性求教
只看楼主 加入收藏
下问
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2006-7-14
收藏
 问题点数:0 回复次数:9 
[求助]修改com+属性求教
编了一个修改com+属性之一远程服务器指向的程序。
COMAdmin.COMAdminCatalog cat = new COMAdmin.COMAdminCatalog();
COMAdmin.COMAdminCatalogCollection apps = (COMAdmin.COMAdminCatalogCollection) cat.GetCollectionByQuery("Applications",ref ******);
apps.Populate();
foreach (COMAdmin.COMAdminCatalogObject app in apps)
{
if ((string)app.Name == "myapplication")
{
this.listBox1.Items.Add(app.Name);
this.listBox1.Items.Add(app.get_Value("ApplicationProxyServerName"));
if(app.IsPropertyReadOnly("ApplicationProxyServerName")) this.listBox1.Items.Add("readonly");
else this.listBox1.Items.Add("not readonly");
}
app.set_Value("ApplicationProxyServerName",(object)remote_server);
}
apps.SaveChanges();

如果我想找出Applications中名称为myapplication的组件,请问GetCollectionByQuery后一个参数该如何设置?
帮助文档中后一个参数为
GetCollectionByQuery( _
ByVal bstrCollName As String, _
ppsaVarQuery As Variant _
) As Object
我不知道如何构造ppsaVarQuery,请高手给出示例代码,谢谢!:)
搜索更多相关主题的帖子: 属性 
2006-07-14 17:08
下问
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2006-7-14
收藏
得分:0 
怎么没人知道吗??

2006-07-18 15:29
a1984drr
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2006-7-17
收藏
得分:0 
这个很难啊 一定要找高手的
2006-07-18 15:50
chenjin145
Rank: 1
等 级:禁止访问
帖 子:3922
专家分:0
注 册:2006-7-12
收藏
得分:0 
[CODE]
COMAdmin.COMAdminCatalogClass com = new COMAdmin.COMAdminCatalogClass();
COMAdmin.COMAdminCatalogCollection apps = (COMAdmin.COMAdminCatalogCollection)com.GetCollection("Applications");
apps.Populate();
[/CODE]

[此贴子已经被作者于2006-7-18 16:11:31编辑过]


[url=javascript:alert(1);] [div]fdgfdgfdg\" on\"[/div] [/url]
2006-07-18 16:10
下问
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2006-7-14
收藏
得分:0 
以下是引用chenjin145在2006-7-18 16:10:36的发言:
[CODE]
COMAdmin.COMAdminCatalogClass com = new COMAdmin.COMAdminCatalogClass();
COMAdmin.COMAdminCatalogCollection apps = (COMAdmin.COMAdminCatalogCollection)com.GetCollection("Applications");
apps.Populate();
[/CODE]

以上会将所有的APPLICATION取出,更新时难免有一些组件在用,用SAVECHANGES()时也很危险,请教如何只取出固定名称或ID的collection。谢谢大家了!


2006-07-18 16:39
chenjin145
Rank: 1
等 级:禁止访问
帖 子:3922
专家分:0
注 册:2006-7-12
收藏
得分:0 
以下是引用下问在2006-7-18 16:39:57的发言:

以上会将所有的APPLICATION取出,更新时难免有一些组件在用,用SAVECHANGES()时也很危险,请教如何只取出固定名称或ID的collection。谢谢大家了!

取出的apps是繼承IEnumerator藉口的
可以循環apps.movenext獲取到指定的app

然後GetCollectionByQuery("Applications",app.key);


[url=javascript:alert(1);] [div]fdgfdgfdg\" on\"[/div] [/url]
2006-07-18 16:44
下问
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2006-7-14
收藏
得分:0 
谢谢chenjin145
以下是引用chenjin145在2006-7-18 16:44:43的发言:

取出的apps是繼承IEnumerator藉口的
可以循環apps.movenext獲取到指定的app

然後GetCollectionByQuery("Applications",app.key);

谢谢chenjin145,刚才粗心,没仔细看,谢谢这里的TX们!呵呵!

[此贴子已经被作者于2006-7-19 8:08:08编辑过]


2006-07-18 16:59
chenjin145
Rank: 1
等 级:禁止访问
帖 子:3922
专家分:0
注 册:2006-7-12
收藏
得分:0 
以下是引用下问在2006-7-18 16:59:08的发言:

谢谢chenjin145,刚才粗心,没仔细看,谢谢这里的TX们!呵呵!

COMAdmin.COMAdminCatalogClass com=new COMAdmin.COMAdminCatalogClass();
COMAdmin.COMAdminCatalogCollection apps=(COMAdmin.COMAdminCatalogCollection)com.GetCollection("Applications");
apps.Populate(); //獲取com+應用程序集合
System.Collections.IEnumerator i = apps.GetEnumerator();
while(i.MoveNext())
{
COMAdmin.ICatalogObject app = (COMAdmin.ICatalogObject)i.Current;


if (app.get_Value("Name").ToString() == ".NET Pet Shop")
{
COMAdmin.COMAdminCatalogCollection Components = (COMAdmin.COMAdminCatalogCollection)apps.GetCollection("Components",app.Key); //通過app.key獲取該app的元件集合
Components.Populate();
System.Collections.IEnumerator j = Components.GetEnumerator();
while(j.MoveNext())
{
COMAdmin.ICatalogObject Component = (COMAdmin.ICatalogObject)j.Current;
MessageBox.Show(Component.Name.ToString());
}

}
}

以上代碼調適通過


[url=javascript:alert(1);] [div]fdgfdgfdg\" on\"[/div] [/url]
2006-07-19 08:44
下问
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2006-7-14
收藏
得分:0 
chenjin145真不错!
昨天也调通了以上类似的代码,后来发现一个新问题,获取的是指定app下层的元件集合,从而导致不能修改app本身的属性。
今天找到了populatebyKey()这个方法,获取的apps集合中只包含app一个元素。这时修改就简单了。

[CODE]COMAdmin.COMAdminCatalog cat = new COMAdmin.COMAdminCatalog();
COMAdmin.COMAdminCatalogCollection apps = (COMAdmin.COMAdminCatalogCollection) cat.GetCollection("Applications")
apps.PopulateByKey(object[] keys); [/CODE]

2006-07-20 12:10
chenjin145
Rank: 1
等 级:禁止访问
帖 子:3922
专家分:0
注 册:2006-7-12
收藏
得分:0 
恩,好方法!

[url=javascript:alert(1);] [div]fdgfdgfdg\" on\"[/div] [/url]
2006-07-20 13:23
快速回复:[求助]修改com+属性求教
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016884 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved