2012-01-13 8 views
1

VB6アプリケーションでBCPコマンドを実行したいのですが、どうすればいいですか?SQLサーバBCPがVB6内で実行する

私はこのコードを試してみました:

BCPCMD = " 'BCP ""SELECT * FROM TABLE"" QUERYOUT C:\FILE.TXT -c -t -T -S MYSERVER' " 

sql = "EXEC MASTER..XP_CMDSHELL " & BCPCMD 

db.Execute (sql) 

コードがエラーなしで実行しますが、任意のファイルを生成いけない:/

+0

なぜSQL内でxpcmdshellから実行するBCP文字列を生成していますか? – JNK

+0

'sp_configure 'xp_cmdshell'、1'が設定されていますか? – wqw

+0

エラーが見つかりました:一時的なテーブルからファイルを生成しようとしました。 > BCPCMD = "'BCP" "SELECT * FROM DB..TABLE" "QUERYOUT C:\ FILE.TXT -c -t> -T -S MYSERVER'テーブルのデータベース名を参照しています。 " 皆さんありがとう! – Lawrence

答えて

0

私はBCPは、管理のスタジオで使用することができるかどうかを知ることを熱望していを?私が知っている限り、それはコマンドプロンプトユーティリティだ...

+0

はい、これはManagement Studioで使用できますが、BCPコマンドを実行するSPがいくつかありますが、今はVB6アプリケーションでBCPを実行します。そして、私が言ったように、コードはエラーなしで実行されますが、ファイルを生成しません。 – Lawrence

+0

エラーが見つかりました: 私は一時テーブルからファイルを生成しようとしていました。私は通常のテーブルを作成し、テーブルのデータベース名を参照しています: > BCPCMD = "'BCP" "SELECT * FROM ** DB..TABLE **" "QUERYOUT C:\ FILE.TXT -c -t > -T -S MYSERVER '" ありがとうございました! – Lawrence

1

BCPについては一般的な誤解があります。 BCPは実行可能ファイルです。 BCPはSQLコマンドではありません。 BCPをSQLステートメントまたはストアドプロシージャから実行する方法の詳細については、インターネット上の多くの情報を参照してください。通常の答えは、格納されたproc XP_CMDSHELLを使用してBCP実行可能ファイルを実行することです。このソリューションを使用するには、SQL Serverの設定を調整する必要があります。

VBアプリケーション内からBCPを実行しているので、アプリケーションからのデータベースサーバーへの既存の接続を持たずにBCP実行可能ファイルを実行できます。実行するコマンドライン文は次のようになります。

bcp.exe "SELECT * FROM TABLE" QUERYOUT C:\FILE.TXT -c -t -T -SmyServer -UtheUsername -PthePassword 
1

十年前(甘い藩主が)、私は、Visual BasicからBCPを処理するためのラッパー(一度にまたは多分VB5)VB6を書きました。私は何年もそれを使用しました。

Enjoy

+0

リンクがうまくいかない – DhruvJoshi

関連する問題