我试图从铁python运行存储的proc,但是设置CommandType时遇到了问题:
import clr
clr.AddReference('System')
clr.AddReference('System.IO')
clr.AddReference('System.Data')
from System import Console as cns
from System.Data import SqlClient as sql我已经测试了Sql连接的代码,并运行了一个简单的select查询,以验证我是否可以获得一个工作连接,因此它作为‘con’传递到这个函数中。
def get_cols_for(con, table):
cols = {}
cmd = sql.SqlCommand("sp_columns", con)
cmd.Parameters.Add(sql.SqlParameter("@table_name", "EQUIPMENT"))
sp = sql.SqlCommand.CommandType.StoredProcedure
rdr = cmd.ExecuteReader()
while rdr.Read():
cols[str(rdr[3])]=(str(rdr[5]),int(rdr[7])) # ColumnName @ 3, TypeName @ 5
rdr.Close()
return colsintellisense建议StoredProcedure自动作为CommandType成员,所以我很确定它确实存在,但是当我运行这段代码时,我会收到以下抱怨:
{"'getset_descriptor‘对象没有属性'StoredProcedure'"}
当我执行sp = sql.SqlCommand.CommandType.StoredProcedure行时
如何设置CommandType?
顺便说一句,如果我只使用这个表单,它可以正常工作:
cmd = sql.SqlCommand("exec sp_columns @table_name='%s'" % table, con)发布于 2014-03-31 20:22:02
好像不是进口的。如果您通过
from System.Data import CommandType as cmdType它的作用是:
>>>cmdType.__doc__返回:
指定命令字符串的解释方式。枚举CommandType,值: StoredProcedure (4)、TableDirect (512)、Text (1)
还请注意,根据msdn,您还应该将CommandText属性设置为存储过程的名称。
https://stackoverflow.com/questions/22770986
复制相似问题