ASP реализует запрос и обновление данных ActiveRecord.
введение:
Студенты, которые использовали платформу PHP ThinkPHP или среду CI, знают, что запрос данных ActiveRecord, поставляемый с этими платформами, используется для запроса данных и обновления данных. Это удобно.
Не только они, многие PHP-фреймворки поддерживают ActiveRecord, что избавляет от необходимости писать слишком много утомительных исходных операторов SQL-запросов и делает обслуживание проектов более удобным.
Теперь мы также используем его для моделирования кода Asp. Он был успешно применен к приложению «AppCore на основе платформы AspBox».
Код ядра приложения отделен от AppCore.
=============================================== ===============
[1]: Запрос данных
а. Получите результаты:
Просмотр выходного оператора SQL: использование Dao.getSQL()
АлиасДао.lastSQL()
например
Response.WriteDao.T("media").Top(10).lastSQL
Использование Dao.Query()
димры
dimtb_prefix:tb_prefix=Префикс таблицы данных Dao.tbPrefix
Setrs=Dao.Query("selecttop10id,namefrom@media").Result()
Эквивалент: Setrs=Dao.Query("selecttop10id,namefrom"tb_prefix"media").Result().
Использование Dao.List()
затемненный список
list=dao.t("media").select("id,name").top(10).List()
Примечание: list' возвращает двумерный массив.
Дими, идентификатор, имя
Фори=0ToUbound(список,2)
идентификатор = список (0, я)
имя = список (1, я)
Response.Writeid":"имя""
Следующий
Использование Dao.Result()
Псевдоним Dao.GetRs() или Dao.Fetch()
dimRs
SetRs=Dao.T("media").select("id,name").top(10).Result()
ab.traceRs
DoWhilenotRs.eof
Response.WriteRs("id")":"Rs("name")""
Rs.MoveNext
Петля
Использование Dao.Row(n) (n означает получение n+1-й строки данных) Dao.Row(0) означает получение первой строки данных
dimRs
SetRs=Dao.Query("selecttop10id,namefrom@media").Row(4)'Получить 5-ю строку данных
ЕслиNotRs.EofThen
Response.WriteRs("id")":"Rs("имя")
КонецЕсли
б. Условия запроса:
Использование Dao.T() аналогично использованию Dao.From().
Использование Dao.Select() аналогично использованию Dao.Field().
Использование Dao.Where() и использование Dao.Find():
Примечание. Использование команды «Где» в основном такое же, как и использование «Найти», оба из которых фильтруют данные на основе условий.
Использование поиска более гибкое. Вы можете использовать Dao.Find("1,3,5") для запроса данных с автоматическими номерами (id) 1,3,5.
Dao.Find("1,3,5") также можно записать следующим образом:
Дао.Найти(Массив(1,3,5))
Dao.Find("идин(1,3,5)")
Дао.Где("идин(1,3,5)")
Dao.Where("id=1orid=3orid=5")
Использование Dao.Limit():
Имитировать использование лимита MySQL (смещение, строки)
использование:
limit(0,0) принимает все данные (данные от начала до конца первых (0+1=1) данных)
limit(0,1) принимает 1 фрагмент данных, начиная с (1-го фрагмента данных (0+1=1), то есть: с 1-го по 1-й фрагмент) (всего 1 фрагмент)
limit(3,0) принимает данные от начала до конца 4-х (3+1=4) данных, то есть от 4-х до последних)
limit(2,5) представляет 5 частей данных, начиная с 3-й части данных (2+1=3), то есть: с 3-й по 7-ю часть (всего 5 частей)
limit(1,2) представляет 2 части данных, начиная со 2-й части данных (1+1=2), то есть: со 2-й по 3-ю части) (всего 2 части)
limit(4,6) можно рассчитать следующим образом: это означает элементы от 4+1=5 до 4+6=10) (всего 6 элементов)
@Примечание: ограничение использования можно использовать только для запроса, а не для обновления данных Rs!
Димры
Setrs=Dao.T("test").Where("pid=1").Limit(0,5).Fetch()
Прикреплен пример запроса:
Dao.T("test").field("id,name").where("id>0").order("createtimedesc,iddesc")
Dao.T("тест").select("id,name").top(10)
Dao.T("тест").select("id,name").order("Rnd(ID)")
Dao.t("user").where("id<>{rq:id}andemail='{rq:email}'").find("id>5").result()
запрос предельного условия
Setrs=Dao.T("media").field("id,name").limit(1,5).Fetch()
Полный пример запроса:
димсквел
sql=dao.select("id,name").from("media").where("id>10").join("table2").on("table2.cid=user.cid").order ("iddesc,cidasc").group("id").having("id>5").union("select*fromtablexx").getSQL
===============
[2]: Изменить данные
Добавить данные: Dao.Add()
Изменить данные: Dao.Update() или Dao.Set().
Удалить данные: Dao.Del() или Dao.Delete().
Умное сохранение данных (добавление или изменение): Dao.Save()
Обновить значение поля Dao.setField()
Dao.AffectedRows() или Dao.affRows() возвращает количество затронутых строк.
dimo_ds,arr(5),str
Dao.t("пользователь").where("id=14").del()
Dao.t("пользователь").delete("1,3,5")
Dao.t("пользователь").where("id=13").set(Array("имя пользователя:55"))
Dao.t("пользователь").where("id=13").setField("имя","aaa1111")
Dao.query("update@usersetusername='ttt'whereid<7").exec()
Dao.query("delete*from@userwhereid>7").exec()
response.writeDao.AffectedRows()'количество затронутых строк
Dao.t("пользователь").add(Array("имя пользователя:tttt","пароль:5fe84ad35fb5f95b","электронная почта:[email protected]"))
арр(0)="id>5"
arr(1)="время>#1986#"
арр(2)="oradd=555"
response.writedao.t("media").where(arr).lastSQL()
Seto_ds=Server.CreateObject("scripting.Dictionary")
o_ds("id")="15"
o_ds("имя")="сссс"
o_ds("ddds!=")="dsd"
response.writedao.t("media").where(o_ds).lastSQL()
response.writedao.t("media").Find(o_ds).lastSQL()