ここから本文です

この知恵ノートを「知恵コレクション」に追加しました。

追加した知恵ノートはMy知恵袋の「知恵コレクション」ページで確認できます。

知恵コレクション」に登録済みです。

再登録しました。

追加に失敗しました。

ノートに戻り、もう一度やり直してください。

すでに1,000件のノートが登録されています。

新しく追加したい場合は、My知恵袋の「知恵コレクション」ページで登録されているノートを削除してください。

追加できませんでした。

ノートは削除されました。

AndroidでBASICで遊ぶ方法 その8-1

ライターさん(最終更新日時:2015/1/8)投稿日:

  • ナイス!:

    0

  • 閲覧数:501

印刷用のページを表示する

 0.この知恵ノートの概要
 

  Androidでプログラム言語BASICを利用してプログラムを
  作成できるアプリ「BASIC!」で実際に作成したプログラムを
  ご紹介し、説明します。


  今回は第8回目のその1になります。

  今回は、SQLがメインですが、グラフィックモードを
  除いた総合的な内容になります。

 

  機能が多いので通常、一つのツールを1本の知恵ノートに
  まとめてご案内していますが、今回は3回にわけて説明します。

 

  プログラムの具体的な内容はその2以降で説明する予定です。

 

  今回のご紹介するプログラムは、行数も多く、ややこしいので
  あまりいいサンプルでは、ありませんがBASIC!の英文マニュアル
  にもあまり詳細にSQL命令を記載していないので
  多少でも参考なればいいなぁと思い、この知恵ノートを
  書きました。

 

 

  ※今回の説明内容と直接関係はありませんが実際に
   BASICが動いている動画を見たい方は以下をご覧ください。

   AndroidでBASICで遊ぶ方法(動画編)
   http://note.chiebukuro.yahoo.co.jp/detail/n326969

 

1.前提

 

  概要にも書いてある通り、このプログラムでは、BASIC!の
  SQL命令を利用しています。

 

  もしかすると、多少のSQLの知識がないと厳しいかも
  しれません。

 

  【SQL - Wikipedia】
  http://ja.wikipedia.org/wiki/SQL

 

  この知恵ノートをお読みになる前に以下の知恵ノートを
  ご覧いただければよりわかりやすいと思います。

 

  AndroidでBASICで遊ぶ方法
  http://note.chiebukuro.yahoo.co.jp/detail/n190833

  AndroidでBASICで遊ぶ方法 その2
  http://note.chiebukuro.yahoo.co.jp/detail/n208888

  AndroidでBASICで遊ぶ方法 その3
  http://note.chiebukuro.yahoo.co.jp/detail/n210000

  AndroidでBASICで遊ぶ方法 その4
  http://note.chiebukuro.yahoo.co.jp/detail/n214126

  AndroidでBASICで遊ぶ方法 その5
  http://note.chiebukuro.yahoo.co.jp/detail/n216786

  AndroidでBASICで遊ぶ方法 その6
    http://note.chiebukuro.yahoo.co.jp/detail/n218610

  AndroidでBASICで遊ぶ方法 その6
  http://note.chiebukuro.yahoo.co.jp/detail/n222440
 

2.ご紹介するプログラム

 

  プログラムの名前(ツール名)は「メモデータベース」
  といいます。

 

  アイコン 


  ブログのネタなどをメモしてデータベースに保存して修正や
  変更や検索などを出来るツールです。


  私が実際にブログのネタ帳として毎日使っており、継ぎ足しで
  機能拡張した関係から冗長な部分も多いですが実用的なツール
  だと思います。


  機能拡張で無理やり修正した部分としては、当初このツールを
  使用するときには、USBキーボードをタブレットで接続して
  いたのですが、電車の中等でもネタを更新することがあるので
  後からキーボードなしでも利用できるように修正をしています。


  このツールの画面ではグラフィックモードは一切使用していません。
  全てコンソールモードで処理しています。
 

  私の説明能力が足らないので、わかりづらいかもしれませんが、
  少しでもご参考になるといいなと思い掲載しました。

 


 
3.「メモデータベース」でできること

 

  メモデータベースで出来ること自体はかなりシンプルな内容
  です。
 

  (1)起動するとまず、キーボードを接続しているかどうかの
     確認ダイアログが表示されます。
     その後にメニュー選択する確認ダイアログが表示されます。

     メニューの内容は以下の通りです。
     1.検索
     2.変更
     3.削除
     4.全一覧
     5.新規
     6.件一覧
     7.メ新規
     9.終了
     C.クリア
     X.初期化

 

  モード確認ダイアログ

  メニュー選択ダイアログ タブレットモード

  メニュー表示      
  


  (2)「1.検索」を選択すると検索文字列を入力するダイアログ
     が表示されて検索文字列を入力すると全文検索して該当する
     メモの内容の一部が番号付で表示されます。
 
  検索ダイアログ     
 

 

  (3)「2.変更」を選択すると検索文字列を入力するダイアログ
     が表示されて検索文字列を入力すると全文検索して該当する
     メモの内容の一部が番号付で表示されます。

     さらに変更する番号を確認するダイアログが表示され、番号
     を入力すると指定された番号のメモが件名、ブログ更新済/未
     のフラグ、関連項目、内容が順番にテキストボックスで表示
     されます。

     各テキストボックスの内容を変更するとメモの内容でデータ
     ベースが更新されます。

 

  変更ダイアログ 件名  変更ダイアログ 内容 

  

 
 

  (4)「3.削除」を選択すると検索文字列を入力するダイアログ
     が表示されて検索文字列を入力すると全文検索して該当する
     メモの内容の一部が番号付で表示されます。

     さらに削除する番号を確認するダイアログが表示され、番号
     を入力すると指定された番号のメモがデータベースから削除
     されます。

  削除ダイアログ

 

 

  (5)「4.全一覧」を選択するとデータベースに登録しているメモ
     の内容を全て番号順にコンソール画面に表示します。
 

 

  (6)「5.新規」を選択すると件名、関連項目、内容が順番に空の
     テキストボックスで表示されます。

     各テキストボックスの内容を入力すると新しい番号のメモが
     データベースに作成されます。
 
  (7)「6.件一覧」を選択するとデータベースに登録しているメモ
     の番号、件名、最終更新日を番号順にコンソール画面に表示します。

 

 件名一覧

 


  (8)「7.メ新規」を選択すると基本的に「5.新規」と同じ処理を
     しますが入力方法が異なります

     「7.メ新規」場合は、入力ボックスは、一つしか表示されず。
     テキストボックスには初期値としてクリップボードの内容をコピー
     して表示されます。

     この場合、テキストボックスの1行目を件名、2行目を関連項目、
     3行目以降をメモの内容として「5.新規」と同じ処理をします。

 

  メモ新規ダイアログ

 

  (9)「9.終了」を選択するとメモデータベースを終了します。

     終了時に外部サイトにバックアップするかどうかの確認ダイアログ
     が表示され、yを入力すると外部サイトにバックアップします。

 

  2013_11_01_12.31.43.png

 

  (10)「C.クリア」を選択するとコンソール画面をクリアします。


  (11)「X.初期化」を選択するとデータベース全体を削除して
      再作成します。

      全てのメモデータは失われます。

 

 4.「メモデータベース」で利用している仕組み

 

  このツールのプログラムは、BASIC!で作られています。
  

  基本的には、標準的なBASIC!の命令を使用してますが、以下の3点が
  特殊だと思いますので説明します。

 

  (1)データベースの操作命令でSQL命令をつかっている。

     android端末には、通常標準で SQLiteというデータベースを
     利用できる機能が搭載されています。

 

     【SQLite - Wikipedia】
     http://ja.wikipedia.org/wiki/SQLite

     例えば、ブラウザーでは、ブックマークという機能があり、お気
     に入りのページを登録、保存できる機能がありますが、
     この機能もSQLiteを利用してデータベースを作っているそうです。

 

     BASIC!では、SQLiteを利用してデータベースを作成、更新
     削除することができます。

 

     但し、BASIC!の制約でSQLiteを利用してデータベースを取り
     扱う場合は、全て文字型で取り扱う必要があります。

 

     SQLiteは、それだけで説明本が市販されているくらいなのでとても
     全てを説明できませんが、最低限必要な情報をここでは説明します。

 

     【最低限必要な情報】

      ・database
      ・table
      ・cursor

 

  データベース説明

 

      図の通り、まとめてデータベースと呼んでいますが、詳細にみると
      databaseは、データが入るキャビネット家具のようなものです。             

      キャビネット家具の引き出しがtable、これはイメージ的にはEXCEL
      の表みたいなもので表の列に当たる部分が項目(column)になります。

 

      メモデータベースでは、database名がmemo.db、テーブル名が
      memo001を作成して使用しています。

      memo001の項目は6項目で以下となっています。

 

      id_ SQLiteで勝手に採番される1からの連番
      kenmei 件名
      updymd 更新日
      keisaif 掲載フラグ
      kanren 関連項目
      naiyou 内容

 

      cursorは、tableを検索した結果を一時的保管するプログラム内の
      特殊な領域です。

 

      例えば、検索した結果が複数件ある場合にその結果を蓄える所だと
      考えるのがいいと思います。

 

  (2)inkey$関数の利用とバックキー割り込み

 

     メモデータベースでは、タブレットだけの状態でもタブレットに
     キーボードを接続した状態でも動作するようになっています。

 

     キーボードの場合は、inkey$関数を利用してメニューからの処理を
     実施しています。

 

     この方法は、BASIC!に限らず、ほかのBASIC言語でもよく利用される
     方法だと思います。

 

     タブレットだけの場合は、メモデータベースのメニュー処理でinkey$
     関数による入力待ち状態になっても、ソフトウェアキーボードが
     表示されません。

 

     その為、inkey$関数を利用せずに通常の入力ダイアログを表示します
     が通常の入力ダイアログは、画面中央に表示されコンソール画面が
     見づらくなるので、android標準のバックキーを押さないと(バックキ
     ー割り込み)ダイアログを表示しないようにしています。

 

  (3)FTP命令の利用

 

     メモデータベースのdatabase本体であるmemo.dbは、BASIC!の仕様で
     .../rfo-basic/databases に作成されます。

     タブレットの内蔵ストレージに作成されるので万が一、タブレットが
     故障するとデータが全て失われる可能性があります。

 

     これを回避するために、メモデータベースでは、BASIC!のFTP命令を
     利用してFTPでのmemo.dbのバックアップを外部サイトに対して行って
     います。

 

     【memo.dbのバックアップ先】

     無料オンラインストレージの2サイトにバックアップ

     http://fileserve.com
          http://hotfile.com
  
今回はここまでです。


以降は8-2をご覧ください。

 

    AndroidでBASICで遊ぶ方法 その8-2
    http://note.chiebukuro.yahoo.co.jp/detail/n225769

 

このノートに関するQ&A

このノートに関するQ&Aは、まだありません。

このノートについて質問する

このノートについてライターの方に質問できます。

※ライターの方から必ず回答をいただけるとは限りません

※別ウィンドウで開きます

ピックアップ

【iPhone】修理交換の申込方法...
 ※追記※2015/1/30現在iPhone6及び6+が発売されたのを受け、情...
知っておきたい無線LANルーター...
知っておきたい無線LANルーターの知識と選び方iPod touchやPS...
iTunesカードの基礎知識
はじめにiTunesStoreやAppStoreの決済には通常クレジットカー...
本文はここまでです このページの先頭へ