タグ: Exit

  • [言語比較]Err,Erl,Error : エラーを処理

    [言語比較]Err,Erl,Error : エラーを処理

     実行時エラー(ランタイムエラー)が発生したときにどうするのか?というものです。

    Lotus Script 言語

    • Err : エラーが発生すると、エラー番号(数値)が入ります
    • Erl : エラーが発生すると、ソースコードの何行目という場所(数値)が入ります
    • Error : エラーが発生すると、エラーメッセージが入ります

    エラーが発生したときにどうするか定義します
    On Error Resume Next
    On Error Goto ラベル

    例:

    On Error Goto ラベル
     処理
     Exit Sub ' または Exit Function や Exit Property
    ラベル:
     エラー処理
     Resume Next ’ エラーの次の行へ戻る

     エラーが発生したときに『何もせず異常終了する』というときは次のようにします。この行より先はエラー対応をしません。

    On Error Goto 0

    似ている命令
    On 番号 Goto ラベル1, ラベル2, ... ’ 番号によって異なるラベルへ制御を移す命令です。番号がゼロのときは何もしません
    例 : On Err Goto ラベル ’ Err 変数の値(初期値は0)によってラベルへ制御を移します
    On 番号 Gosub ラベル, ・・・もあります。

    VbScript 言語

    • Err.Number : エラーが発生すると、エラー番号(数値)が入ります
    • Err.Source : エラーが発生した場所の名前が入ります
    • Err.Description : エラーが発生すると、エラーメッセージが入ります

    初期化
    Call Err.Clear ()
     ※ On Error や Exit でも Err が初期化されます

    On Error は Resume Next だけで、On Error Goto は使えません
    On Error Resume Next

    注意
    最初の On Error より前は Err オブジェクトが存在しません

    例:

    On Error Resume Next
    Call Err.Clear ()
     処理
     If 0 <> Err.Number Then
      エラー処理
      Call Err.Clear ()
     End If

    Lotus 式言語

    • @IsError (評価式) : 評価式がエラーを返すと @True になります
    • @IfError : 廃止されました。「何がエラーなのか」というところが @IsError と異なりました

    例 : @If (@IsError (評価式); エラー時の式; 正常時の式);

  • [MariaDB]データベースを作成してみます

    [MariaDB]データベースを作成してみます

    HeidiSQLで

     MariaDBをインストールするとHeidiSQLが付いてきます。このHeidiSQLを開いて新しくデータベースを作成してみます

    画面左側の [localhost] - [新規作成] - [データベース] を選びます

    [データベースを作成] 画面で、任意の [名前] をいれます
    [照合] は何を選んだらいいの?というのが今回のお話しの中心になります

    照合

    データを比較するときにどうするかというものです
    日本語対応のUTF-8にするのでutf8mb4にしますが、utf8mb4から始まるものがたくさんあります
    細かいことは列の設定でもできるそうなので、データベースの設定としてはutf8mb4_binにします
    binはバイナリ比較をするという意味で、アルファベットの大文字小文字や平仮名片仮名を別の文字として比較します

    データベースを作成するときに名前と照合が必要でした

    テーブル

    MariaDBはOS2/400と同様に、あらかじめを定義する必要がありそうです

    Notes/Dominoはデータベースのパスとタイトルを決めればOKで、基本の NoteID と UniversalID のふたつのテーブルは一律に自動作成されました
    こういうところがMariaDBとNotes/Dominoの違いなんだねと感じます

    先程作成したデータベース名のところでマウス右ボタンクリックして、[新規作成] - [テーブル] を選びます

    インターネットで見つけた『掲示板サーブレットを作成する』記事のデータベースならこんな感じになるのかなとサンプルを作ってみました

    コマンドプロンプトで

     Windowsコマンドプロンプトを開いて新しくデータベースを作成してみます
     例えば次のように操作できます

    mariadb -u ユーザー名 -p
    (パスワード入力)
    create database `データベース名`;
    show databases;
    use `データベース名`;
    create table `テーブル名` (`カラム名` 型 オプション,`カラム名` 型 オプション,・・・);
    show tables;
    select count(*) from `テーブル名`;
    
    drop table `テーブル名`;
    drop database `データベース名`;
    exit;

    データ定義 - MariaDBナレッジベース

    よくあるエラー

     MariaDB中のデータベース名やテーブル名などの前後は「`(バッククォート:Shift + @)」で囲みます。バッククォートを忘れると次のようなエラーが出ます

    ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '*' at line *

     名前によってはバッククォートを付けなくても大丈夫なこともあります。例えば先頭文字が英字でコマンドとは異なる文字列のばあいです