CREATE procedure TxtIn
@s2 VarChar(10)
As
Declare @s1 as VarChar(100);
set @s1='bcp '+@s2+' in c:\AK28.txt -c -q -S"banhao" -U"sa" -P"111"';  EXEC master..xp_cmdshell @s1;
GO

解决方案 »

  1.   

    老师你好:
    不好意思没有节单,我还是由个问题
    下面的存储过程中,如果我将c:\AK2923.TXT 参数化,就不好用。我的语句是
    set @STR1='bcp '+@S1+' out '+@S2+'  -c -q -S"'+@S3+'" -U"'+@S4+'" -P"'+@S5+'"';  
    我是用BCB进行调用的
    调用代码是
    ADOStoredProc1->Close();
    ADOStoredProc1->Parameters->ParamByName("@S1")->Value="cc..TABLE1";
    ADOStoredProc1->Parameters->ParamByName("@S2")->Value="c:\AK21119.txt";
    ADOStoredProc1->Parameters->ParamByName("@S3")->Value="banhao";
    ADOStoredProc1->Parameters->ParamByName("@S4")->Value="sa";
    ADOStoredProc1->Parameters->ParamByName("@S5")->Value="111";
    ADOStoredProc1->ExecProc();
    此代码就是不能生成c:\AK21119.txt(我试过,问题就出在这)如果我将第二条多加一个\就是ADOStoredProc1->Parameters->ParamByName("@S2")->Value="c:\\AK21119.txt";(bcb就这样)
    则程序将生成一个AK21119.TX的文件,不是文本文件,
    请指教CREATE procedure Myok
    @S1 VarChar(10),
    @S2 VarChar(10),
    @S3 VarChar(10),
    @S4 VarChar(10),
    @S5 VarChar(10)
    As
    Declare @STR1 as VarChar(100);
    set @STR1='bcp '+@S1+' out c:\AK2923.txt  -c -q -S"'+@S3+'" -U"'+@S4+'" -P"'+@S5+'"';
    EXEC master..xp_cmdshell @STR1;
    GO
      

  2.   

    set @s1='bcp '+@table+' out '+@FileName+' -c -q -S"'+@Server+'" -U"'+@User+'" -P"'+@Pass+'"';
      

  3.   

    sp1.Parameters.ParamByName('@table').Value:='pubs.dbo.jobs';
    sp1.Parameters.ParamByName('@Filename').Value:='c:\TestSP.Txt';
    sp1.Parameters.ParamByName('@Server').Value:='Jiang';
    sp1.Parameters.ParamByName('@User').Value:='sa';
    sp1.Parameters.ParamByName('@Pass').Value:='';
    sp1.ExecProc;
    运行没有问题,TestSP.TXT文件在C:\下面。