郵便番号データベースを検索する・その2

プロデルでデータベースを作成しても自由に使えなければ意味がないので「郵便番号データベースを検索する・その1」で取りあえず検索するサンプルプログラムを書いた。プログラムの中に検索する文字列を固定で埋め込む方法なので実際使うとしたら使い勝手が悪い。そこでSQLの特徴である検索機能をきちんと使ったものを作ることにした。
郵便番号を探す時の目安は住所です。その中で都道府県は範囲が広すぎるので、「市町村名」または「町域」の部分検索ができれば使い勝手が格段に向上する。
そこで今回はSQLらしさを少し考慮してプログラムを作ってみた。
今回使用する画面

—————————— ここから
//
// 郵便番号SQLで検索・画面
//
// プロデルからSQLiteデータベースを操作する例 //
//SQLiteを利用するには、System.Data.SQLite.dllが必要です

/*  登録したテーブルの中身を確認するサンプルプログラムなので↓に書いておきます。
     SQLiteで「CREATE TABLE yubin (
          ycode1 TEXT,
          ken TEXT,
          city TEXT,
          machi TEXT);」を実行する
*/     

「Produire.Data.Base.dll」を利用する
「Produire.Data.SQLite.dll」を利用する
「Produire.Data.Grid.dll」を利用する

SQLiteというSQLiteデータベースを作る
SQLiteのデータソースを、「test01.db」に変える
ws01=「」 // 検索文字列1
ws02=「」 // 検索文字列2

メイン画面を表示する

待機する
  
メイン画面とは
     ウィンドウを継承する
     はじめの手順
          初期化する
          ーー貼り付けた部品に対する操作をここに書きます
          //表部品1のデータ表をデータに変える
     終わり
  初期化する手順
     ーー自動生成された手順です。ここにプログラムを書き加えても消える場合があります
     この内部領域大きさを{658,322}に変える
     この内容を「郵便番号検索」に変える
     ラベル3というラベルを作る
          その位置と大きさを{293,24,324,12}に変える
          その内容を「左のテキストボックスに検索したい市町村名の一部を入力してください」に変える
          その移動順を7に変える
          そのドラッグドロップを×に変える
     テキスト1というテキストを作る
          その位置と大きさを{92,24,126,19}に変える
          その移動順を5に変える
          そのドラッグドロップを×に変える
     ラベル1というラベルを作る
          その位置と大きさを{33,27,53,12}に変える
          その内容を「市町村名」に変える
          その移動順を3に変える
          そのドラッグドロップを×に変える
     表部品1という表部品を作る
     表部品1を初期化開始する
          その位置と大きさを{33,95,600,204}に変える
          その列見出し高さを18に変える
          その移動順を2に変える
          そのドラッグドロップを×に変える
     表部品1を初期化終了する
     ボタン1というボタンを作る
          その位置と大きさを{293,43,110,33}に変える
          その内容を「検索を開始する」に変える
          その移動順を1に変える
          そのドラッグドロップを×に変える
     ラベル2というラベルを作る
          その位置と大きさを{33,57,29,12}に変える
          その内容を「町名」に変える
          その移動順を4に変える
          そのドラッグドロップを×に変える
     テキスト2というテキストを作る
          その位置と大きさを{92,57,126,19}に変える
          その移動順を6に変える
          そのドラッグドロップを×に変える
終わり

//検索するボタンが押された時の手順
ボタン1がクリックされた時の手順
ws01=テキスト1の内容 //入力した内容を検索する変数にコピーします
ws02=テキスト2の内容

データを、取得する

     終わり

データを、取得する時の手順
          ーーデータの取得
    // データベースを占有しないようにここで接続する
    SQLiteへ接続する         

    // 郵便番号テーブルからword_searchをAND条件で検索します。
      SQLiteから「SELECT * FROM ubin2 where city like “%[ws01]%” AND machi like “%[ws02]%”;」をデータ表として取得してデータとする
     // データベースを占有しないようにここで切断する
     SQLiteから切断する          
     
     データの名前は、「郵便番号」
     表部品1のデータ表をデータに変える

     //表部品の列名を変える為に取得する
     列一覧は、表部品1の列一覧
    列一覧(1)の見出しは、「郵便番号」
    列一覧(1)の幅は、60
    列一覧(2)の見出しは、「都道府県」
    列一覧(2)の幅は、70
    列一覧(3)の見出しは、「市町村」
    列一覧(3)の幅は、120
    列一覧(4)の見出しは、「町域」
    列一覧(4)の幅は、290
  終わり
終わり

—————————— ここまで
ありそうな住所の一部を入力すれば検索できるようになりました。

 
検索結果

 

投稿者:

こきりこ

その辺に居る、ダメなおじさんです

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください