ASPフレームワーク ぴいたん

モデル

データベースのテーブルをモデルによって簡単に操作します。

モデルの作成

以下が最小構成のモデルです。「テーブル名.asp」で作成し、テーブル名の一文字目を大文字にして以下を小文字にしたものをクラス名とします。

user.asp

Class User
  Public parent
  Public Sub Class_Initialize()
    Set Me.parent = New Model
    With Me.parent
      .SetChild Me
    End With
  End Sub
End Class


モデルの登録

フレームワークから呼ばれるconfig_models関数内でモデルを登録します。

config.asp

<%
Sub config_database(ByRef db)
  db.add "default", "dsn=db;uid=user;pwd=pass;", DB_TYPE_MYSQL
  db.add "pg", "dsn=pgdb;uid=user;pwd=pass;", DB_TYPE_POSTGRESQL
  db.add "sqlsv", "dsn=sqlsvdb;uid=user;pwd=pass;", DB_TYPE_SQLSERVER
End Sub

Sub config_models(ByRef c)
  c.AddModel "user.asp", "User", "user", null, null
  c.AddModel "member.asp", "Member", "member", null, "pg"
  c.AddModel "profile.asp", "Profile", "profile", null, "sqlsv"
End Sub
%>


使用方法

モデルはコントローラにて呼び出します。以下のように呼び出します。

c.m("user").function()


関数

find(condition, order, limit, group)

テーブルの中から指定されたものを配列として取得します。

Set results = c.m("user").find("id=1", "age DESC")


findone(condition, order)

テーブルの中からconditionとorderで指定されたものを先頭の一つだけ取得します。

Set result = c.m("user").findone("id=1", "age DESC")


findquery(sql, condition, order, limit, group)

リレーションを使用したい場合はこちらを利用します。適合したレコードを配列にして取得します。sqlにはWHEREより前のクエリ文を指定します。

sql = "SELECT user.*, office.name FROM user"
sql = sql & " LEFT JOIN user.office_id=office.id"
Set results = c.m("user").findquery(sql, "age=24", "age DESC")


getcount(condition, limit)

テーブルの中のconditionとlimitで当てはまる要素の数を取得します。

count = c.m("user").getcount("id=1", "10")


insert(datas)

キーに要素名を指定して値を入れた配列を指定すると、その通りにINSERTを行います。

Set data = CreateDictionary()
data.Add "name", "山田"
data.Add "email", "yamada@example.com"
c.m("user").insert(data)


update(datas)

キーに要素名を指定して値を入れた配列を指定すると、その通りにUPDATEを行います。モデルのメンバ変数id(デフォルトは”id”)と同じキーを見つけ、自動的にその場所をUPDATEします。 idが見つからなかった場合はfalseを返し処理を中止します。

Set data = CreateDictionary()
data.Add "id", 1
data.Add "name", "山田"
data.Add "email", "yamada@example.com"
c.m("user").update(data)


updateby(datas, condition)

updateの様に自動的に条件を指定するのではなく、明示的にconditionで条件を指定できます。

Set data = CreateDictionary()
data.Add "name", "山田"
data.Add "email", "yamada@example.com"
c.m("user").updateby(data, "age=25")


del(condition)

conditionで指定されたレコードを削除します。

c.m("user").del("age=25")


query(sql)

直接sqlにクエリを送信します。テーブル名は自動的には設定されませんので完全なクエリを指定します。


GetLastInsertId()

最後に挿入したIDを返します。


escape(str)

文字列をクエリ用にエスケープします。


validate(datas) validatemsg(datas) GetValidateError()

これらはバリデート用関数です。詳しくはバリデートのマニュアルをご覧下さい。

変数

id

idで指定された値(デフォルト:“id”)でテーブルの主要な要素を指定します。update関数などで使用されます。


connName

connNameで指定された(デフォルト:“default”)データベース接続を使用してクエリを実行します。


table

何も指定されていない時(デフォルト)はファイル名のデータベースを自動的に指定します。これを設定すると、指定されたテーブルにアクセスするようになります。


controller

コントローラを参照できます。

model.txt · 最終更新: 2007/11/01 15:52 by opaken
chimeric.de = chi`s home Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0