|
#include "stdafx.h"
#define MyEXTERN
#include "BAT.h"
// *********************************************************
// エントリポイント
// *********************************************************
int main(int argc, char* argv[])
{
int nRet;
nRet = 0;
if ( argc != 2 ) {
printf( "%s\n", "引数に誤りがあります" );
nRet = 1;
return nRet;
}
InitProc();
// ここからメール用メッセージを作成
Column->SetChar( 0, 0 );
START_BLOCK
BOOL bRet;
bRet = TxtIn.ReadOpen( argv[1] );
if ( !bRet ) {
Column->Printfcat(
"%s\r\n", "入力ファイルをオープンできませんでした"
);
nRet = 1;
break;
}
if ( !CurDb->Connect() ) {
TxtIn.Close();
Column->Printfcat(
"%s\r\n", "データベースの接続に失敗しました"
);
nRet = 1;
break;
}
// 既存の入力用テーブルを削除
Query->operator = (
"drop table 郵便番号インポート"
);
CurDb->Query( Query );
// 入力用テーブルを作成
Query->operator = (
"create table 郵便番号インポート ("
"郵便番号 varchar(7)"
",都道府県名カタカナ varchar(50)"
",市区町村名カタカナ varchar(50)"
",町域名カタカナ varchar(50)"
",都道府県名 varchar(50)"
",市区町村名 varchar(50)"
",町域名 varchar(50)"
")"
);
if ( !(CurDb->Query( Query )) ) {
CurDb->DisConnect();
TxtIn.Close();
Column->Printfcat( "%s\r\n", "テーブル作成に失敗しました");
nRet = 1;
break;
}
Column->Printfcat( "%s\r\n", "テーブル作成を終了しました");
int nInCount,nOutCount,nErrCount;
nInCount = nOutCount = nErrCount = 0;
Column->Printfcat( "%s\r\n", "インポートを開始します");
Buff->Resize( 10000 );
while( TxtIn.Get( Buff ) ) {
nInCount++;
Buff->RemoveLastchar();
Token.CreateToken( Buff, "," );
Work->operator = (
"insert into 郵便番号インポート"
" values("
);
// 郵便番号(7桁)
Item->operator = (Token.Token[0]);
Item->Enclose( "'" );
Work->operator += (Item);
Work->operator += (",");
// 都道府県名(半角カタカナ)
Item->operator = (Token.Token[1]);
Item->Enclose( "'" );
Work->operator += (Item);
Work->operator += (",");
// 市区町村名(半角カタカナ)
Item->operator = (Token.Token[2]);
Item->Enclose( "'" );
Work->operator += (Item);
Work->operator += (",");
// 町域名(半角カタカナ)
Item->operator = (Token.Token[3]);
Item->Enclose( "'" );
Work->operator += (Item);
Work->operator += (",");
// 都道府県名
Item->operator = (Token.Token[4]);
Item->Enclose( "'" );
Work->operator += (Item);
Work->operator += (",");
// 市区町村名
Item->operator = (Token.Token[5]);
Item->Enclose( "'" );
Work->operator += (Item);
Work->operator += (",");
// 町域名
Item->operator = (Token.Token[6]);
Item->Enclose( "'" );
Work->operator += (Item);
Work->operator += (")");
if ( CurDb->Query( Work ) ) {
nOutCount++;
}
else {
nErrCount++;
if ( nErrCount == 1 ) {
Column->Printfcat(
"%s\r\n", Work->szLboxString
);
}
}
}
CurDb->DisConnect();
TxtIn.Close();
Column->Printfcat( "入力件数 = %d\r\n", nInCount );
Column->Printfcat( "出力件数 = %d\r\n", nOutCount );
Column->Printfcat( "エラー件数 = %d\r\n", nErrCount );
Column->Printfcat( "%s\r\n", "インポートが終了しました");
END_BLOCK
MySendMail(
"xxx.xxx.xxx.xxx",
"lightbox@nifty.com",
"lightbox@nifty.com",
"郵便番号データインポート",
Column->szLboxString
);
EndProc();
return nRet;
}
| |