ASP implémente la requête et la mise à jour des données ActiveRecord
introduction:
Les étudiants qui ont utilisé le framework PHP ThinkPHP ou CI savent tous que la requête de données ActiveRecord fournie avec ces frameworks est utilisée pour interroger et mettre à jour les données.
En plus d'eux, de nombreux frameworks PHP prennent en charge ActiveRecord, ce qui élimine le besoin d'écrire trop d'instructions de requête SQL originales fastidieuses et rend la maintenance du projet plus pratique.
Maintenant, nous l'utilisons également pour la simulation sur du code Asp. Il a été appliqué avec succès à l'application de "AppCore basé sur le framework AspBox".
Le code principal de l'application est séparé d'AppCore.
=================================================== ===============
[1] : requête de données
a. Obtenez les résultats :
Afficher l'instruction SQL de sortie : utilisation de Dao.getSQL()
AliasDao.lastSQL()
par ex.
Response.WriteDao.T("media").Top(10).lastSQL
Utilisation de Dao.Query()
dimrs
dimtb_prefix:tb_prefix=Préfixe de la table de données Dao.tbPrefix
Setrs=Dao.Query("selecttop10id,namefrom@media").Result()
Équivalent à : Setrs=Dao.Query("selecttop10id,namefrom"tb_prefix"media").Result()
Utilisation de Dao.List()
liste sombre
list=dao.t("media").select("id,name").top(10).List()
Remarque : list' renvoie un tableau à deux dimensions
dimi, identifiant, nom
Fori=0VersUbound(liste,2)
identifiant=liste(0,i)
nom=liste(1,i)
Response.Writeid":"nom""
Suivant
Utilisation de Dao.Result()
Alias Dao.GetRs() ou Dao.Fetch()
dimR
SetRs=Dao.T("media").select("id,name").top(10).Result()
ab.traceurs
DoWhilenotRs.eof
Response.WriteRs("id")":"Rs("nom")""
Rs.MoveNext
Boucle
Utilisation de Dao.Row(n) (n signifie obtenir la n+1ème ligne de données) Dao.Row(0) signifie obtenir la première ligne de données
dimR
SetRs=Dao.Query("selecttop10id,namefrom@media").Row(4)'Obtenir la 5ème ligne de données
IfNotRs.EofThen
Response.WriteRs("id")":"Rs("nom")
FinSi
b. Conditions de requête :
L'utilisation de Dao.T() est la même que celle de Dao.From()
L'utilisation de Dao.Select() est la même que celle de Dao.Field()
Utilisation de Dao.Where() et utilisation de Dao.Find() :
Remarque : L'utilisation de Where est fondamentalement la même que celle de Find, qui filtrent toutes deux les données en fonction de conditions.
L'utilisation de Find est plus flexible. Vous pouvez utiliser Dao.Find("1,3,5") pour interroger des données avec des nombres automatiques (id) 1,3,5.
Dao.Find("1,3,5") peut également s'écrire de la manière suivante :
Dao.Find(Array(1,3,5))
Dao.Find("idin(1,3,5)")
Dao.Où("idin(1,3,5)")
Dao.Où("id=1orid=3orid=5")
Utilisation de Dao.Limit() :
Simuler l'utilisation de la limite MySQL (décalage, lignes)
usage:
limit(0,0) prend toutes les données (données du début à la fin des premières (0+1=1) données)
limit(0,1) prend 1 élément de données à partir de (le 1er élément de données (0+1=1), soit : du 1er au 1er élément) (1 élément au total)
limit(3,0) prend les données du début à la fin de la 4ème (3+1=4) données, soit : de la 4ème à la dernière)
limit(2,5) représente les 5 données à partir de la 3ème donnée (2+1=3), soit : 3ème à 7ème partie) (5 pièces au total)
limit(1,2) représente les 2 données à partir de la 2ème donnée (1+1=2), soit : 2ème à 3ème pièces) (2 pièces au total)
limit(4,6) peut être calculé comme ceci : cela signifie les éléments 4+1=5 à 4+6=10) (6 éléments au total)
@Remarque : l'utilisation limitée ne peut être utilisée que pour les requêtes, pas pour la mise à jour des données Rs !
Dimrs
Setrs=Dao.T("test").Where("pid=1").Limit(0,5).Fetch()
Ci-joint, exemple de requête :
Dao.T("test").field("id,name").where("id>0").order("createtimedesc,iddesc")
Dao.T("test").select("id,nom").top(10)
Dao.T("test").select("id,name").order("Rnd(ID)")
Dao.t("user").where("id<>{rq:id}andemail='{rq:email}'").find("id>5").result()
requête de condition limite
Setrs=Dao.T("media").field("id,name").limit(1,5).Fetch()
Exemple de requête complète :
dimsql
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] : Modifier les données
Ajouter des données : Dao.Add()
Modifier les données : Dao.Update() ou Dao.Set()
Supprimer des données : Dao.Del() ou Dao.Delete()
Données de sauvegarde intelligente (ajouter ou modifier) : Dao.Save()
Mettre à jour une valeur de champ Dao.setField()
Dao.AffectedRows() ou Dao.affRows() renvoie le nombre de lignes affectées
dimo_ds,arr(5),str
Dao.t("utilisateur").where("id=14").del()
Dao.t("utilisateur").delete("1,3,5")
Dao.t("utilisateur").where("id=13").set(Array("nom d'utilisateur:55"))
Dao.t("utilisateur").where("id=13").setField("nom","aaa1111")
Dao.query("update@usersetusername='ttt'whereid<7").exec()
Dao.query("delete*from@userwhereid>7").exec()
réponse.writeDao.AffectedRows()'nombre de lignes affectées
Dao.t("utilisateur").add(Array("nom d'utilisateur:tttt","mot de passe:5fe84ad35fb5f95b","email:[email protected]"))
arr(0)="id>5"
arr(1)="heure>#1986#"
arr(2)="oradd=555"
réponse.writedao.t("media").where(arr).lastSQL()
Seto_ds=Serveur.CreateObject("scripting.Dictionary")
o_ds("id")="15"
o_ds("nom")="sss"
o_ds("ddds!=")="dsd"
réponse.writedao.t("media").where(o_ds).lastSQL()
réponse.writedao.t("media").Find(o_ds).lastSQL()