<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="ja">
<head>
<meta http-equiv="Content-type" content="text/html; charset=UTF-8">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<meta http-equiv="Content-Style-Type" content="text/css">
<title>日本郵便辞書データ登録用</title>
<style type="text/css">
#result {
border: 2px inset;
margin: 1em;
padding: 1ex;
white-space: pre;
}
</style>
</head>
<body>
<ol>
<li>
<input type="button" value="接続確認" id="btn0">
</li>
<li><input type="button" value="データベースの表示" id="btn1"></li>
<li>
データベース名:<input type="text" value="myData" id="db_name">
<input type="button" value="新規作成" id="btn2">
<input type="button" value="削除する" id="btn4">
</li>
<li><input type="button" value="テーブルの一覧" id="btn5"></li>
<li>
テーブル名:<input type="text" value="japan_zip" id="tb_name">
<input type="button" value="新規作成" id="btn6">
<input type="button" value="構造を見る" id="btn7">
<input type="button" value="表を部分表示(10件)" id="btn8">
<input type="button" value="削除する" id="btn9">
</li>
<li>
テキストファイル名:<input type="text" value="zipzis9b.txt" id="tf_name">
<input type="button" value="登録する" id="btn10">
</li>
</ol>
<hr>
<textarea id="result" cols="80" rows="25">実行した結果が表示されます。</textarea><br>
Counter : <input type="text" id="counter"><br>
<script type="text/javascript">
var data = [ ];
var counter = 0;
var timerId;
var sendRequest = (function( create, setEncHeader, uriEncode ) {
return function (callback, data, method, url, async, sload, user, password) {
var oj = create( );
if(! oj) return null;
if( sload ) url += ((url.indexOf('?') == -1) ? '?': '&') + 't=' + (new Date).getTime();
var f = 'object' === typeof callback;
var callback_onload = f ? callback.onload: callback;
var callback_onbeforsetheader = f ? callback.onbeforsetheader: null;
oj.onload = function () { callback_onload(oj); oj.abort() } ;
data = uriEncode( data, url );
if( 'GET' == method.toUpperCase() ) url += (url.indexOf('?')==-1 ? '?': data=='' ? '': '&') + data;
oj.open ( method, url, async, user, password );
if( callback_onbeforsetheader ) callback_onbeforsetheader( oj );
setEncHeader( oj );
oj.send( data );
return oj;
};
})(
function ( ) {
try { return new XMLHttpRequest } catch(e1) {
try { return new ActiveXObject( 'Msxml2.XMLHTTP.6.0' ) } catch(e2) {
return null; } }
},
function ( o ) {
if( !window.opera || 'function' === typeof o.setRequestHeader )
o.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8' );
return o;
},
function ( data, url ) {
var d = [ ], i, enc = encodeURIComponent;
switch( typeof data ) {
case 'object': for( i in data ) d.push( enc(i) + '=' + enc(data[i]) ); break;
case 'string':
if( '' == data ) return '';
if( data.charAt(0) == '&' ) data = data.substring( 1, data.length );
var datas = data.split( '&' );
for( i = 0; i < datas.length; i++ ) {
var dataq = datas[i].split( '=' );
d.push( enc( dataq[0] ) + '=' + enc( dataq[1] ) );
}
default:
}
return d.join( '&' );
}
);
var Handler = (function ( $V ) {
return function ( evt ) {
var e = evt. target ;
switch( e.id ) {
case 'btn0':
connect();
break;
case 'btn1':
connect( 'SHOW DATABASES' );
break;
case 'btn2':
connect( 'CREATE DATABASE ' + $V('db_name') + ' CHARACTER SET utf8' );
break;
case 'btn4':
connect( 'DROP DATABASE ' + $V('db_name') );
break;
case 'btn5':
connect( 'USE ' + $V('db_name') + '; \x1f SHOW TABLES' );
break;
case 'btn7':
connect( 'SHOW CREATE TABLE ' + $V('db_name') + '.' + $V('tb_name') );
break;
case 'btn8':
connect( 'SELECT * FROM ' + $V('db_name') + '.' + $V('tb_name') + ' LIMIT 10');
break;
case 'btn9':
connect( 'DROP TABLE ' + $V('db_name') + '.' + $V('tb_name') );
break;
case 'btn6':
connect(
'CREATE TABLE ' + $V('db_name') + '.' + $V('tb_name') + ' (' +
'ID INT(30) UNSIGNED NOT NULL AUTO_INCREMENT, ' +
'ZIP_CODE VARCHAR(30) DEFAULT NULL, ' +
'ZIP_OLD_CODE VARCHAR(21) DEFAULT NULL, ' +
'ADDRESS1 VARCHAR(240) DEFAULT NULL, ' +
'ADDRESS2 VARCHAR(240) DEFAULT NULL, ' +
'CODE VARCHAR(36) DEFAULT NULL, ' +
'FURI1 VARCHAR(240) DEFAULT NULL, ' +
'FURI2 VARCHAR(240) DEFAULT NULL, ' +
'FURI3 VARCHAR(240) DEFAULT NULL, ' +
'FURI4 VARCHAR(240) DEFAULT NULL, ' +
'TEL VARCHAR(36) DEFAULT NULL, ' +
'SAGAWA VARCHAR(36) DEFAULT NULL, ' +
'PERIKAN VARCHAR(36) DEFAULT NULL, ' +
'MEITETU VARCHAR(36) DEFAULT NULL, ' +
'ROMAN TINYTEXT DEFAULT NULL, ' +
'PRIMARY KEY (ID) ' +
') ENGINE = MyISAM DEFAULT CHARSET = utf8' );
break;
case 'btn10':
regist();
break;
default:
}
};
})(
function ( id ) { return document.getElementById( id ).value; }
);
var connect = (function ( result ) {
return function ( cmnd ) {
sendRequest( result, { 'cmnd': cmnd || '' }, 'POST', 'sql.php', true, true );
};
})(
function ( o ) {
var text = o.responseText;
if( /^Erroe/.test( text ) ) return alert('Error');
if( text ) text = text.replace( /\x1e/g, '\n' ).replace( /\x1f/g, ', ' );
document.getElementById( 'result' ).value = text;
}
);
var regist = (function ( geter ) {
return function ( ) {
document.getElementById( 'result' ).value = '問い合わせ中です';
sendRequest( geter, '', 'POST', document.getElementById('tf_name').value, true, true );
};
})(
function( o ) {
var rt = o.responseText;
if( /^Error/.test( rt ) ) return alert( rt );
if( !rt ) return alert( 'データがありません' );
data = rt.split( /\r\n|\r|\n/g );
reg2( );
timerId = setInterval(
function () {
document.getElementById( 'counter' ).value = counter;
}, 1000);
}
);
function reg2( ) {
var rec = data[ counter ]
var cnt;
if( rec ) {
rec = rec.split( '\t' );
vlist = [ ];
for( var cnt = 0; cnt < rec.length; cnt++ ) {
vlist.push( rec[ cnt ] = '"' + rec[ cnt ] + '"' );
}
sql = 'INSERT INTO '+ $V('db_name') + '.' + $V('tb_name') + ' (' +
'ZIP_CODE, ZIP_OLD_CODE, ADDRESS1, ADDRESS2, CODE, FURI1, FURI2, FURI3, FURI4, TEL, SAGAWA, PERIKAN, MEITETU, ROMAN ' +
' ) VALUES ( ' + vlist.join(',') + ' )';
sendRequest( function ( ) { ;}, { 'cmnd': sql || '' }, 'POST', 'sql.php', true, true );
counter++;
return setTimeout( arguments.callee, 10 );
} else {
clearInterval( timerId );
}
}
document. addEventListener(
'click', Handler, false );
</script>
</body>
</html>