仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 490|回复: 8
打印 上一主题 下一主题

[学习教程] ASP网页设计ASP教程:OpenSchema办法手艺切磋

[复制链接]
活着的死人 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:20:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
Access是一种桌面数据库,只适合数据量少的应用,在处理少量数据和单机访问的数据库时是很好的,效率也很高。但是它的同时访问客户端不能多于4个。access数据库有一定的极限,如果数据达到100M左右,很容易造成服务器iis假死,或者消耗掉服务器的内存导致服务器崩溃。教程语法
setconnection=server.createobject(“adodb.connection“)
Setrecordset=connection.OpenSchema(QueryType,Criteria,SchemaID)

前往值
前往包括形式信息的Recordset工具。Recordset将以只读、静态游标翻开。

参数
QueryType所要运转的形式查询范例,能够为以下恣意常量。
Criteria可选。每一个QueryType选项的查询限定前提数组,

参数列举(QueryType)
----SchemaEnumValues----
ConstadSchemaProviderSpecific=-1
ConstadSchemaAsserts=0
ConstadSchemaCatalogs=1
ConstadSchemaCharacterSets=2
ConstadSchemaCollations=3
ConstadSchemaColumns=4
ConstadSchemaCheckConstraints=5
ConstadSchemaConstraintColumnUsage=6
ConstadSchemaConstraintTableUsage=7
ConstadSchemaKeyColumnUsage=8
ConstadSchemaReferentialContraints=9
ConstadSchemaTableConstraints=10
ConstadSchemaColumnsDomainUsage=11
ConstadSchemaIndexes=12
ConstadSchemaColumnPrivileges=13
ConstadSchemaTablePrivileges=14
ConstadSchemaUsagePrivileges=15
ConstadSchemaProcedures=16
ConstadSchemaSchemata=17
ConstadSchemaSQLLanguages=18
ConstadSchemaStatistics=19
ConstadSchemaTables=20
ConstadSchemaTranslations=21
ConstadSchemaProviderTypes=22
ConstadSchemaViews=23
ConstadSchemaViewColumnUsage=24
ConstadSchemaViewTableUsage=25
ConstadSchemaProcedureParameters=26
ConstadSchemaForeignKeys=27
ConstadSchemaPrimaryKeys=28
ConstadSchemaProcedureColumns=29

使用openschema能够取得一切表的主键,固然这只是它的良多功效中的一个。
connstr="Provider=MSDAORA.1;UserID=liujincai;password=ljc1001;DataSource=hp1"
setmm=server.CreateObject("adodb.connection")
mm.Openconnstr
ConstadSchemaPrimaryKeys=28
setrs=mm.OpenSchema(adSchemaPrimaryKeys)
Response.Write"<table>"
Response.Write"<TR>"

fori=0tors.fields.count-1
Response.Write"<td>"&rs(i).name&"</td>"
next
Response.Write"</tr>"
dowhilenotrs.eof
Response.Write"<tr>"
fori=0tors.fields.count-1
Response.Write"<td>"&rs(i)&"</td>"
next
Response.Write"</tr>"
rs.movenext
loop
Response.write“</table>“

上面的语句取得表TB_HOUSE_MAIN的主键地点的字段
rs.Filter="TABLE_NAME=TB_HOUSE_MAIN"
ifnot(rs.eofandrs.bof)thenResponse.Writers("COLUMN_NAME")

取得恣意一个存储历程的参数列表,这个关于想做完整松耦合体系的哥们必定有效的。这个程序取得名字为PRO_HOUSE_ADD_INFO的存储历程的参数列表
connstr="Provider=MSDAORA.1;UserID=liujincai;password=ljc1001;DataSource=hp1"
setmm=server.CreateObject("adodb.connection")
mm.Openconnstr
ConstadSchemaProcedureParameters=26
setrs=mm.OpenSchema(adSchemaProcedureParameters)rs.Filter="PROCEDURE_NAME=PRO_HOUSE_ADD_INFO"Response.Write"<TABLEcellSpacing=0border=1>"
Response.Write"<TBODY><TRbgColor=#dddddd>"
fori=2tors.fields.count-1
Response.Write"<TD>"&rs(i).name&"</TD>"
next
Response.Write"</TR>"
dowhilenotrs.eof
Response.Write"<TRbgColor=#e0d0c0>"
fori=2tors.fields.count-1
Response.Write"<TD>"&rs(i)&"</TD>"
next
Response.Write"</tr>"
rs.movenext
loop
Response.Write"</table>"

经由几个小时的理论探究,终究停止了对Adodb.connection的openschema办法的研讨。如今总结一下:
1,Setrecordset=connection.OpenSchema(QueryType,Criteria,SchemaID)
里边一共有三个参数,可是一样平常就用第一个,后两个得切实功效,我也没有弄懂,这里也不做申明,有乐趣的本人查材料。

2,这个的完成就是经由过程毗连工具的openschema办法前往一个纪录集。如许就能够遍历纪录集来显现大概汇集理性趣的信息。

3,使用它你还能够取得关于表,视图,列,索引,外键等信息。

4,如今不克不及一定的是,是不是有些体例的形式查询受用户权限的限定。也就是假如没有充足的权限,是不克不及做某些种别的形式查询的(有待考证)

5,这里有一些关于OpenSchema的材料毗连,供查阅:
http://www.lyu.edu.cn/home/yss/ado/mdmthopenschema.htm
http://code365.com/html/asp/20040227/index/2004227113621.html

在ASP中列出数据库中的表名和字段名的程序
SetrstSchema=oConn.OpenSchema(adSchemaColumns)
这是关头的地方
<%
dsn="DSN=DSNName"
ConstadSchemaTables=20
adSchemaColumns=4
SetoConn=Server.CreateObject("ADODB.Connection")

oConn.opendsn
SetrstSchema=oConn.OpenSchema(adSchemaColumns)
response.write"<table>"
response.write"<tr><td>Tablename</td><td>fieldname</td><td>fieldtype</td><td>isnullable</td><td>fieldsize</td></tr>"
tablename=""
DoUntilrstSchema.EOF
response.write"<tr><td>"
ifrstSchema("Table_name")tablenamethen
response.writerstSchema("Table_name")
tablename=rstSchema("Table_name")
else
response.write""
endif
response.write"</td><td>"&rstschema("column_Name")&"</td><td>"
selectcaserstschema("data_type")
case"130"
ifrstschema("CHARACTER_MAXIMUM_LENGTH")=1073741823then
response.write"Memo"
else
response.write"Text"
endif
case135
response.write"Date/Time"
case3
response.write"LongInteger"
case11
response.write"Yes/No"
case131
response.write"Currency"
caseelse
response.writerstschema("data_type")
endselect
response.write"</td><td>"&rstschema("is_nullable")&"</td><td>"
ifrstschema("CHARACTER_MAXIMUM_LENGTH")1073741823then
response.writerstschema("CHARACTER_MAXIMUM_LENGTH")
else
response.write""
endif
response.write"</td></tr>"
rstSchema.MoveNext
Loop
response.write"</table>"
%>因为现在数据库都使用标准的SQL语言对数据库进行管理,所以如果是标准SQL语言,两者基本上都可以通用的。SQLServer还有更多的扩展,可以用存储过程,数据库大小无极限限制。
小魔女 该用户已被删除
沙发
发表于 2015-1-19 09:08:46 | 只看该作者
不是很难但是英文要有一点基础网上的教程很少有系统的详细的去买书吧,另不用专门学习vb关于vbscript脚本在asp教材都有介绍
海妖 该用户已被删除
板凳
发表于 2015-1-25 17:43:18 | 只看该作者
兴趣爱好,那么你无须学编程,申请一个域名和空间,在网上下载一些免费开源的CMS系统,你不用改代码,只须熟悉它们的后台操作,像office一样简单方便,很快就能建一个站点,很多站长都是这样做的
透明 该用户已被删除
地板
发表于 2015-2-3 12:17:29 | 只看该作者
你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。
爱飞 该用户已被删除
5#
发表于 2015-2-8 22:24:54 | 只看该作者
我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标.
若相依 该用户已被删除
6#
发表于 2015-2-26 12:12:40 | 只看该作者
接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。
简单生活 该用户已被删除
7#
发表于 2015-3-8 15:09:02 | 只看该作者
弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。
金色的骷髅 该用户已被删除
8#
发表于 2015-3-16 02:52:03 | 只看该作者
我想问如何掌握学习节奏(先学什么再学什么)最好详细点?
小妖女 该用户已被删除
9#
发表于 2015-3-22 19:10:40 | 只看该作者
虽然ASP也有很多网络教程。但是这些都不系统。都是半路出家,只是从一个例子告诉你怎么用。不会深入讨论,更不会将没有出现在例子里的方法都一一列举出来。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2025-1-10 04:08

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表