Yawdbaのルールは、主に、SQLコマンドなどを通じてWebに表示するテーブルを作成する[Control]セクションと、[Control]セクションで得られたテーブルをWeb画面に表示する際の見た目を定義する[View]セクション、さらに[View]セクションで得られたhtml画面のスタイルを定義する[StylSheet]セクションから構成されます。
現在の考えている案は、以下のようになります。
[Control]
Table = Query("SELECT ID, DATE, FIELD1 FROM MYDB WHERE DATE=#%Param%#");
SQLExec="UPDATE MYDB SET DATE1 = #$MYDB.DATE$#,
FIELD1 = "$MYDB.FIELD1$' WHERE ID = %MYDB.ID%";
[View]
table {
label {
MYDB.DATE = 日付;
MYDB.FIELD1 = 値;
}
body {
MYDB.DATE=date[YY/MM/DD];
MYDB.FIELD1=text[20];
MYDB.ID=hidden;
}
}
上の例では、データベースのMYDBテーブルからブラウザのParamパラメタで指定された日付を検索して、ID、DATE、FIELD1を表示するとともに、DATEフィールドとFIELDフィールドを入力フィールドとして値を変更するものです。
バッククォーテーション(`)で指定された文字列が、SQLコマンドとなりますが、この中の$あるいは%で囲まれた部分が変数名となります。$で囲まれた変数は、入力フィールドとして動作し、%で囲まれた変数は、埋め込みフィールドとして動作することになります。
したがって、
Table = Query(`SELECT ID, DATE, FIELD1 FROM MYDB WHERE DATE=#%Param%#`);
のParamは、%で囲まれているので、この変数部分にHttpのGetパラメータの値が埋めもまれ、SQL文字列が完成し、処理する内部テーブルが完成します。
次に、SQLExecでは、データベースのSQL更新のSQLコマンドを定義している。ここでは、$で囲まれたMYDB.DATE変数とMYDB.FIELD1変数が入力フィールドとなります。さらに、その後のbodyでこららの変数の形が定義されています。
因みに、内部テーブルに取り込んだMYDB.IDは、bodyのhiddenパラメータで表示しないように定義しているので、Web画面上では、MYDB.IDは表示しません。
皆さんの意見を頂けると助かります。お願いします。
0 件のコメント:
コメントを投稿