MSDE FunClub
Microsoft Data Engine FunClub
MSDE技術者向けメーリングリスト過去ログ[849]番
 
[TOP]>[MSDE技術者向けメーリングリスト過去ログ(849番)]>[ウィンドを閉じる]
 
SQLServer2005時代でも
開発の基本は T-SQL
上巻で T-SQL の基礎作り
 
SQLServer2005時代でも
運用の基本はバックアップ
下巻でバックアップ手法を学びましょう
PASSJ人気コンテンツで学んだ後は下巻でさらなる学習を!
 
ウィンドを閉じる
MSDE/SQLServer FAQ
MSDE / MSDE2000 
技術情報サポート
初心者向け
メーリングリスト
過去ログの表示
技術者向け
メーリングリスト
過去ログの表示
メーリングリスト
活動状況の
表示
MSDE TOP メニュー
MSDEトップメニューに移動します
 

 
RE:  ADOを使用したインポート / エクスポート

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 技術サポート情報一覧]

MSDE TOP ページに移動する

 
 
 
 
 
 
 
MSDE FunClubに関するご意見・ご要望等ございましたら、
msdefun@horikawa.ne.jp までご連絡下さい。
MSDEを始めとする各種データベースシステムの開発、コンサルタントに関するご要望等は、
msdedev@horikawa.ne.jp までご連絡下さい。