ラベル

2018年12月31日月曜日

「なでしこ」でAjaxの受信データをテスト受信するツールを作りました。

「なでしこ」で作ったアプリで、MySQLからデータを取って処理してましたが、
シンクライアント化に伴いMyODBCのインストールが出来なくなり、
悩みつつ「なでしこ」の命令一覧を見直したところ、http関連の命令が有りました。

それを使って、データをWebアプリのAjax経由の様に、なでしこからphpを呼び出す事で、
無事にデータの読み書きが出来ました。

これで、MyODBCが無くても、「なでしこ」とMySQLでデータの読み書きが可能になりました。

データ取得できる命令は「HTTP簡易ポスト」と「HTTPデータ取得」の2種類が有り、
テストしてみると、データ量が少ない時には、体感的に殆ど分からないですが、
データが多い処理では、「HTTP簡易ポスト」がタイムアウトになる事も有るが、
「HTTPデータ取得」を使うとスムーズに取り出せました。

下記の「なでしこ」プログラムで①②は正常受信、③④はエラーになる様にphp側で処理しています。

phpとしては、通常のAjaxで使用する場合と同じものがそのまま使えます。
ただし、「なでしこ」はSJIS、phpはUTF-8になります。
「なでしこ」専用で使う場合はphpもSJISで書くことが可能です。


私の認識違いや、違う環境での再現性が確実かは、判りませんので、
下記のプログラムの利用は自己責任でお願い致します。


#以下、なでしこプログラム

※※※積み木デザイナ:ここから※
※ 以下はデザインデータです。
※ コメントを削除しないようにしてください。
※ ---
※母艦とはフォーム##生成
母艦は「メインフォーム」
そのクライアントW=640#数値
そのクライアントH=400#数値
そのタイトル=「なでしこ」#文字列
※ ---
グリッド1とはグリッド##生成
そのX=8#数値
そのY=32#数値
そのW=616#数値
そのH=320#数値
そのテキスト=「グリッド1」#文字列
そのアイテム=「」#文字列
そのアイテム=「」#文字列
※ ---
HTTP簡易とはボタン##生成
そのX=8#数値
そのY=360#数値
そのW=112#数値
そのH=32#数値
そのテキスト=「①HTTP簡易ポスト」#文字列
そのクリックした時は~HTTP簡易__クリックした時#イベント
※ ---
HTTP取得とはボタン##生成
そのX=144#数値
そのY=360#数値
そのW=112#数値
そのH=32#数値
そのテキスト=「②HTTPデータ取得」#文字列
そのクリックした時は~HTTP取得__クリックした時#イベント
※ ---
HTTPエラー取得1とはボタン##生成
そのX=280#数値
そのY=360#数値
そのW=112#数値
そのH=32#数値
そのテキスト=「③HTTPエラー取得1」#文字列
そのクリックした時は~HTTPエラー取得1__クリックした時#イベント
※ ---
HTTPエラー取得2とはボタン##生成
そのX=416#数値
そのY=360#数値
そのW=112#数値
そのH=32#数値
そのテキスト=「④HTTPエラー取得2」#文字列
そのクリックした時は~HTTPエラー取得2__クリックした時#イベント
※ ---
Fornatとはラベル##生成
そのX=8#数値
そのY=14#数値
そのW=48#数値
そのH=24#数値
そのテキスト=「Fornat」#文字列
※ ---
メモ1とはメモ##生成
そのX=8#数値
そのY=32#数値
そのW=616#数値
そのH=320#数値
そのテキスト=「」#文字列
そのスクロールバー=「縦」#文字列
※※※積み木デザイナ:ここまで※

母艦のタイトルは「Ajax tester」

形式選択とはラジオ
そのX=56
そのY=0
そのW=200
そのH=30
その列は3
そのアイテム=「HTML
JSON
グリッド」
その値=0
そのクリックした時は~形式選択__クリックした時

グリッド1の可視はオフ
経過ダイアログはオフ
値とはハッシュ
Jとはハッシュ
ページは「」

●形式選択__クリックした時
 グリッド1の可視はオフ
 メモ1の可視はオン
 もし形式選択の値が0ならば
  メモ1のテキストは「」
  0.2秒待つ
  メモ1のテキストはページをUTF8_SJIS変換
 もし形式選択の値が1ならば
  メモ1のテキストは「」
  0.2秒待つ
  メモ1のテキストはJ
 もし形式選択の値が2ならば
  もしページ<>「」ならば
   受信Jsonグリッド表示

●受信Jsonグリッド表示
 Jは「」
 Aは「NO,」
 Bは「1」
 Cは「」
 Lは「」
 メモ1の可視はオフ
 グリッド1の可視はオン
 グリッド1のアイテムは「」
 0.2秒待つ
 L=ページで1から「[」を文字検索
 もしそれ>0ならば
  ページのLから(ページの文字数)文字抜き出す
  それをJSONデコードしてJに代入
  Jのハッシュキー列挙
   Cはそれ
  Cを配列ソート
  LはCの配列要素数
  (L-1)回
   A=A&C[回数 - 1]&「,」
  A=A&C[L - 1]&改行
  Jを反復
   A=A&B&「,」
   (L-1)回
    A=A&対象@C[回数 - 1]&「,」
   A=A&対象@C[L - 1]&改行
   B=B+1
  グリッド1のアイテムはA


●HTTP簡易__クリックした時
 グリッド1のアイテムは「」
 メモ1のテキストは「」
 ページは「」
 Jは「」
 値=「」
 URL=「https://kenbunroku.chobi.net/codesample/table-datagettest.php5」
 値@「getrows」=「10」
 URLへ値をHTTP簡易ポスト
 ページはそれ
 もし形式選択の値が2ならば
  もしページ<>「」ならば
   受信Jsonグリッド表示
 違えば
  形式選択の値=2

●HTTP取得__クリックした時
 グリッド1のアイテムは「」
 メモ1のテキストは「」
 ページは「」
 Jは「」
 URL=「https://kenbunroku.chobi.net/codesample/table-datagettest.php5?getrows=10」
 URLからHTTPデータ取得
 ページはそれ
 もし形式選択の値が2ならば
  もしページ<>「」ならば
   受信Jsonグリッド表示
 違えば
  形式選択の値=2


●HTTPエラー取得1__クリックした時
 グリッド1のアイテムは「」
 メモ1のテキストは「」
 ページは「」
 Jは「」
 値=「」
 URL=「https://kenbunroku.chobi.net/codesample/table-datagettest.php5」
 値@「getrows」=「」
 URLへ値をHTTP簡易ポスト
 ページはそれ
  形式選択の値=0
  形式選択__クリックした時

●HTTPエラー取得2__クリックした時
 グリッド1のアイテムは「」
 メモ1のテキストは「」
 ページは「」
 Jは「」
 URL=「https://kenbunroku.chobi.net/codesample/table-datagettest.php5?getrows=1」
 URLからHTTPデータ取得
 ページはそれ
 もし形式選択の値が2ならば
  もしページ<>「」ならば
   受信Jsonグリッド表示
 違えば
  形式選択の値=0
  形式選択__クリックした時
  

#以上