日期:2014-05-18  浏览次数:20455 次

我循环执行 bcp 命令 为什么有的成功导出xls文件 有的却报错 用户登陆失败呢 郁闷 ~~~标题要长
建立了表 内容如下


现在要 安装供应商编码 用bcp导出到 不同的xls文件 命名格式为 编码+名称.xls

代码如下:
---------------------------分割线-------------------------------------------------


----声明需要的变量 

declare 
@sql varchar(600),
  @TypeID varchar(10),
  @gysmz varchar(100)
  ---确认第一个供应商编码 和 供应商名字
select @TypeID=min(供应商编码) from pdzb2 
select @gysmz=供应商名称 from pdzb2 where 供应商编码 =@typeid 
while exists(select 1 from pdzb2 where 供应商编码=@TypeID) 
begin 
----拼凑需要执行的语句 
set @sql='bcp "select * from (select'+'''供应商编码'''+'as 供应商编码,'+'''供应商名称'''+' AS 供应商名称,'+'''部门名称'''+'AS 部门名称,'
  +'''类别名称'''+'AS 类别名称,'+'''商品编码'''+'AS 商品编码,'+'''商品条码'''+'AS 商品条码,'+'''商品名称'''+'AS 商品名称,'
  +'''单位'''+'AS 单位,'+'''商品规格'''+'AS 商品规格,'+'''成本'''+'AS 成本,' +'''当前售价'''+'AS 当前售价,'+'''库存'''+'AS 库存'+' '
-----在xls文件中显示列名 +内容
set @sql=@sql+'union all select 供应商编码,供应商名称,部门名称,类别名称,商品编码,商品条码,商品名称,单位,商品规格,cast(成本 as varchar(10)),cast(当前售价 as varchar(10)),cast(库存 as varchar(10))from pdzb2 where 供应商编码='''+@typeid+''')a " queryout F:\pddata\'+@TypeID+@gysmz+'.xls -c -S"haihuangwomei" -U "BuyV4" -P "xxxxxxxx" '--查询满足条件的记录并保存到xls文件中 
EXEC master..xp_cmdshell @sql
---获得下一个供应商编码和 供应商名称
select @TypeID=isnull(min(供应商编码),@TypeID+1) from pdzb2 where 供应商编码>=@TypeID+1 
select @gysmz=供应商名称 from pdzb2 where 供应商编码=@typeid  
end


---------------------------分割线-------------------------------------------------


密码 就不显示了 绝对正确

现在的问题是 导出的时候 部分供应商导出xls成功 也生产了xls文件 ,但是部分却报错


报错提示为 如图:







显示 复制 多少行的 都成功了 报错提示18456错误 “Buyv4”登陆失败 都没成功。 郁闷了 

大侠们 前辈们 有什么办法解决没? 拜托 分不多了。





------解决方案--------------------
大概是密码不对吧
------解决方案--------------------
你把报错的内容单独拿出来运行,看看什么情况?