declare @ProID bigint
select @ProID=id from sysobjects where type='p' and name=@ProdecureName
select a.name N'参数名' ,
COLUMNPROPERTY(@ProID,a.name,'PRECISION') as N'长度',
a.length N'占用字节数',
a.isoutparam N'是否输入参数',
a.xprec N'精度',isnull(COLUMNPROPERTY(@ProID,a.name,'Scale'),0) as N'小数位数',
--colid ,可以不要这个
b.name N'数据类型'
from syscolumns a,systypes b
where id=@ProID and b.xusertype=a.xusertype
当然这个语句还有问题的:
如何判断是否有返回值的问题没有解决;
不过我在分析器里面看到每一个存储过程好像都有返回值。不知道是不是对的
如果,能将对(N》=1)表的操作和相应的存储过程(如:添加,删除,修改,更新等)封装到
一个对应的实体类中,应该对性能的提高有一定的帮助的
当然,好像对特定的查询没有什么太大的意义
如下:
using System;
using System.EnterpriseServices ;
using System.Data .SqlClient ;
namespace SevCompant
{
public interface IDataConnection
{
/// <summary>
/// 数据库连接
/// </summary>
SqlConnection DataBaseConnection
{
get{}
}
}
/// <summary>
/// Class1 的摘要说明。
/// </summary>
[EventTrackingEnabled(true)]
[Transaction(TransactionOption.Supported )]
[ObjectPooling(MinPoolSize=2,MaxPoolSize=10,CreationTimeout=20000)]
[System.EnterpriseServices.ConstructionEnabled(Enabled=true,
Default="Integrated Security=SSPI;Initial Catalog=Northwind;Data Source=(local)")]
public class DataBaseEntity:System.EnterpriseServices.ServicedComponent ,IDataConnection
{
public DataBaseEntity()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
protected override void Construct(string s)
{
// TODO: 添加 DBUtility.Construct 实现
this.mConnString=s;
}
private string mConnString="";
protected override bool CanBePooled()
{
// TODO: 添加 DBUtility.CanBePooled 实现
return true;
}
#region IDataConnection 成员
public SqlConnection DataBaseConnection
{
get
{
// TODO: 添加 DataBaseEntity.DataBaseConnection getter 实现
ContextUtil.DeactivateOnReturn=true;
return new SqlConnection(this.mConnString);
}
}
#endregion
}
}
如果将对某一个表的CRUD操作也封装进去,应该可以省不少的事