プロが教えるわが家の防犯対策術!

asp.netからbcpコマンドを実行し、CSVをエクスポートする方法はありますか?

bcpは普通は、コマンドプロンプトから実行しますが、「プログラムからボタンをクリックしたらcsvが吐き出される。」というようなことができますでしょうか?

A 回答 (4件)

こんにちは。



こちらが参考になるかもしれません。
[ASP] : Active Server PagesからSQL ServerのBCPコマンドを使ってデータをインポートしたい
http://techbank.jp/Community/blogs/mymio/archive …

この回答への補足

phpのexecのように簡単にできる方法はないのでしょうか?

補足日時:2009/08/10 10:07
    • good
    • 0

失礼いたしました。

.NET だったのですね。
System.Diagnostics.Process を使用すればよいかと思います。
参考 URL に記載されていたコードを貼り付けます。

◆C#
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.StartInfo.FileName = "bcp";
proc.StartInfo.Arguments = @"""select * from ims3.dbo.cinfo"" queryout ""C:\filename"" -S server\instance -U sa -P password -N";

◆VB.NET
Dim proc As New System.Diagnostics.Process()
proc.StartInfo.FileName = "bcp"
proc.StartInfo.Arguments = """select * from ims3.dbo.cinfo"" queryout ""C:\filename"" -S server\instance -U sa -P password -N"

参考URL:http://www.daniweb.com/forums/thread196713.html#
    • good
    • 0

何度もすみません。



コードの最後に以下の一行がないとプロセスが開始されませんでした。。。

◆C#
proc.Start();
◆VB.NET
proc.Start()

この回答への補足

タスクマネージャーで確認すると一瞬cmd.exeが起動しますが、bcpの実行はできませんでした。

Dim proc As New System.Diagnostics.Process()
proc.StartInfo.FileName = "bcp"
proc.StartInfo.Arguments = """select * from db名.dbo.テーブル名"" queryout ""C:\test_exp.csv"" -S サーバー名 -U sa -P パスワード -N"
'proc.Start()

コマンドプロンプトから直に実行すると正しく動きました。

補足日時:2009/08/11 15:16
    • good
    • 0

こんにちは。



> タスクマネージャーで確認すると一瞬cmd.exeが起動しますが、bcpの実行はできませんでした。
> コマンドプロンプトから直に実行すると正しく動きました。

TCP/IP またはローカル環境で動いて HTTP だと動かないというのは
cmd.exe を実行するユーザーのアクセス権の問題だと思われます。
確認されてみてはいかがでしょうか。

権限周りについては、私が最初にこのスレッドに投稿した際に張り付けた URL でも少し言及しています。

この回答への補足

書き込み先の権限がないだけでした。
ありがとうございました。

補足日時:2009/08/14 07:56
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2009/08/14 08:02

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!