Date: Thu, 15 Nov 2001 01:25:43 +0900
From: "Akira Horikawa" <who@example.ne.jp>
堀川です、今晩は
-----Original Message-----
From: 辻 保宏 [mailto:who@example.co.jp]
Sent: Thursday, November 08, 2001 9:30 AM
To: who@example.ne.jp
Subject: [ml-msde:00836] ADOを使用したインポート / エクスポート
お返事が遅くなりました
>はじめまして。辻と申します。
はじめまして
>SQL Serverで管理されているデータを、VBからADOを使用して
>テキストファイルにエクスポートしたいのですが、実現方法に解らず
>苦慮しています。
VBとADOを使っているのなら、VBのファイル編集機能があります。
適当な形式へVBで編集して、テキストファイルとして書き出すのは
ダメなのでしょうか?
おそらくTransact-SQL言語レベルの命令1発でファイル出力を
行いたいということでしょうが、BULK INSERT 命令の逆の命令は
ありません。
どうしてもというのであれば、拡張ストアドプロシージャの自作
という方法がありますが、C言語やWin32-APIの知識が必要
になり一般的な方法ではありません。
VBのファイル処理が、非常に面倒だと思う場合は(私はそう思います)
ActivePerl を使う方法もあります。
日本語パッチを当てるなど少々面倒なこともありますが、ファイル処理
や編集処理が驚くほど簡単になります。
ActivePerlを使って、Pubsデータベースのtitlesテーブルを表示する
ADOを使ったスクリプトは、次のようになります。
<Job ID="ADOSample">
<script language=PerlScript >
#Server Name
$ServerName = "Your Server Name";
#Database Name
$DBName = "Pubs";
#WindowsNT(Trusted Connection)
$ConnectStr = "Provider=SQLOLEDB;" .
"Data Source=$ServerName;" .
"Initial Catalog=$DBName;" .
"Trusted_Connection=YES;";
$WScript->Echo($ConnectStr);
#Create Connection Object
$Conn = $WScript->CreateObject("ADODB.Connection");
$Conn->Open( $ConnectStr );
$SqlStr = 'SELECT * FROM titles';
#Create RecordSet Object
$Rs = $WScript->CreateObject("ADODB.RecordSet");
$RS->{LockType} = 1; #adLockReadOnly
$Rs->{CursorType} = 0; #adOpenForwardOnly
$Rs->{CursorLocation} = 2; #adUseServer
$Rs->{Source} = $SqlStr; #SQL Text
$Rs->{ActiveConnection} = $Conn; #Connection Object
$Rs->Open( {Options=>1} );
while( $Rs->{EOF} == 0 ) {
$title_id = $Rs->Fields("title_id")->{Value};
$title = $Rs->Fields("title")->{Value};
$WScript->Echo("[$title_id][$title]");
$Rs->MoveNext();
}
#close
$Rs->Close();
$Conn->Close();
</script>
</job>
上記スクリプトを、adosample.wsf として保存してください。
ActivePerlとWindows Script Hostがあれば、すぐに実行できます。
自分のやりたいことが一番簡単に実現できる方法を、いろいろ
考えてみてください。
---------------------------------------------------
(株)日本技術ソフト開発 堀川 明
mailto:who@example.ne.jp
http://www.horikawa.ne.jp/msde/
11月15日(木曜日) 01時21分記
[MSDE/SQLServerに関して、今、どんなことにお困りですか?] |
よろしければお困りの内容を、電子メールで教えて下さい。 |
質問を電子メールで作成する
|
[ウィンドを閉じる][MSDE/SQLServer FAQ ][MSDE / MSDE2000 技術サポート情報一覧]
|