Date: Sun, 1 Jun 2003 17:07:17 +0900
From: "Akira Horikawa" <who@example.ne.jp>
堀川です、こんにちは
ちょっと時間があったので、perlを使ってインポートするプログラムを
作ってみました。
参考にして下さい。
#ADODBの定義
use Win32::OLE::Const 'Microsoft ActiveX Data Objects 2.6 Library';
#接続オブジェクトの作成
$oCon = Win32::OLE->new('ADODB.CONNECTION');
die "*** $oCon new Error***" if( Win32::OLE->LastError() );
#接続文字列の作成
$ConStr = 'Provider=SQLOLEDB;Data Source=(local);' .
'Initial Catalog=tempdb;Trusted_Connection=YES';
#tempdbデータベースに接続を行なう
$oCon->{ConnectionString} = $ConStr;
$oCon->Open();
die "***Connect Error***" if( Win32::OLE->LastError() );
#Commandオブジェクトの作成
$oCMD = Win32::OLE->new('ADODB.COMMAND');
$oCMD->{ActiveConnection} = $oCon;
$oCMD->{CommandTimeout} = 30;
$oCMD->{CommandType} = 1;
#Tableが存在したら、そのテーブルを削除する
$oCMD->{CommandText} =
'IF EXISTS (SELECT name FROM tempdb.dbo.sysobjects ' .
' WHERE name = \'データT\' AND type = \'U \') ' .
'BEGIN ' .
' DROP TABLE データT ' .
'END';
$oCMD->EXECUTE();
#Tableを作成する
$oCMD->{CommandText} =
'CREATE TABLE データT ' .
'( 課係コード [varchar](10) NOT NULL, ' .
' 処理日 [datetime] NOT NULL,' .
' 荷主コード [int] NULL,' .
' 買受人コード [int] NULL,'.
' 品名コード [int] NULL,'.
' 売上金額 [int] NULL,' .
' 売上キロ数 [float](24) NULL,' .
' 原票番号 [money] NULL,' .
' 行NO [smallint] NULL,' .
' 事故伝NO [varchar](4) NULL' .
')';
$oCMD->EXECUTE();
#テキストファイルの読み込みと、レコード挿入処理
while( <> ) {
chop;
@ary = split(/,/);
#**print
"$ary[0]\t$ary[1]\t$ary[2]\t$ary[3]\t$ary[4]\t$ary[5]\t$ary[6]\t$ary[7]\
t$ary[8]\t$ary[9]\n";
$oCMD->{CommandText} =
'INSERT INTO データT( ' .
' 課係コード , ' .
' 処理日, ' .
' 荷主コード, ' .
' 買受人コード, ' .
' 品名コード, ' .
' 売上金額, ' .
' 売上キロ数, ' .
' 原票番号, ' .
' 行NO, ' .
' 事故伝NO ) VALUES ( ';
$oCMD->{CommandText} .=
( "\'$ary[0]\',\'$ary[1]\',$ary[2],$ary[3],$ary[4],$ary[5]," .
"$ary[6],$ary[7],$ary[8],\'$ary[9]\')" );
#print $oCMD->{CommandText};
#print "\n";
$oCMD->EXECUTE(); #レコード挿入
}
#接続を閉じる
$oCon->Close();
#終了します
exit;
#プログラムが終了したら、Enterprise Managerで、
#tempdbデータベースのテーブルを確認します
日本語文字が上手く通りましたね
tempdbの中に、テーブルが作成され、レコードが挿入されます。
This is perl, v5.6.1 built for MSWin32-x86-multi-thread を使いました
------------------------------------
(株)日本技術ソフト開発
堀川 明 (Akira Horikawa)
06月01日(日曜日) 17時05分記
mailto:who@example.ne.jp
http://www.horikawa.ne.jp/msde/
[MSDE/SQLServerに関して、今、どんなことにお困りですか?] |
よろしければお困りの内容を、電子メールで教えて下さい。 |
質問を電子メールで作成する
|
[ウィンドを閉じる][MSDE/SQLServer FAQ ][MSDE / MSDE2000 技術サポート情報一覧]
|