链接数据库……

LYSSHE 2002-01-28 07:02:18
在编写一个ASP时我想在一个地方链接数据库之后,可以在每个使用数据库的页面中不必重新作链接就可以使用该链接。
请问如何实现, 就像在其它编程语言中的全局变量一样。定义一个connection 对像并打开它之后在程序中任意地方都可使用。
请各GGMM多多指教
...全文
480 29 打赏 收藏 转发到动态 举报
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
kari 2002-01-30
  • 打赏
  • 举报
回复
so easy ,first you should write a asp file .in this file you write the function that connecte the database .then in the asp file that you want to use the function ,add the sentence "#include name.asp" then you can use the function .
ok every thing done.
WinterSeo 2002-01-30
  • 打赏
  • 举报
回复
高手一定要进来看,好多人期待您的回答((关于DELPHI的RES文件))
http://www.csdn.net/Expert/topic/509/509268.shtm
希偌 2002-01-29
  • 打赏
  • 举报
回复
在global.asa中的application_onstart事件
set conn=server.createobject("adodb.connection")
application("conn")=conn.open "……"
调用的时候这样
set rs=application("conn").Execute("………………")
你看看,行吗?

keliangui 2002-01-29
  • 打赏
  • 举报
回复
sub session_onstart
set session("cn_myconnection")=server.createobject("adodb.connection")
session("cn_myconnection").open "driver=sql server;server=(local);uid=lysname;pwd=abcd;database=mydb"
end sub

试试rs_myrecordset.open "select * from mytable",session("cn_myconnection"),1,1
LYSSHE 2002-01-29
  • 打赏
  • 举报
回复
不有人在线吗?
LYSSHE 2002-01-29
  • 打赏
  • 举报
回复
有错误出现: 当我使用rs_myrecordset.open "select * from mytable" session("cn_myconnection"),3,1 时出现以下出错指示
“变量或者类型不正确,或者不在可以接受的范围之内,要不就是与其他数据冲突。 ”

global.asa中的内容为
<script language=vbscript runat=server>
sub session_onstart
set session("cn_myconnection")=server.createobject("adodb.connection")
session("cn_myconnection").open "driver={sql server};uid=lysname;pwd=abcd;database=mydb;server=server"
session("str_cnstr")="driver={SQL Server};UID=SA;server=server;PWD=SA;database=hs"
'cn.Open "driver={SQL Server};server=server;uid=aa;pwd=sa;database=hs"
end sub
</script>
keliangui 2002-01-29
  • 打赏
  • 举报
回复
当用户访问服务器时会自动执行session_onstart里面的程序;
当用户离开时会自动执行session_onend里面的程序。
LYSSHE 2002-01-29
  • 打赏
  • 举报
回复
不好意思再问一句,
我什么使得session_onstart被执行呢?
LYSSHE 2002-01-29
  • 打赏
  • 举报
回复
谢谢 keliangui
我想我应该得救了招后我调试
再把结果告示知你, OK?
keliangui 2002-01-29
  • 打赏
  • 举报
回复
最好是在global.asa中的Session_onstart事件:
Set Session("Conn")=Server.CreateObject("ADODB.Connection")
Session("Conn").Open "driver=sql server;server=(local);uid=;password=;DSN="
在Session_onend事件:
Session("Conn").close
Set Session("Conn")=Nothing
LYSSHE 2002-01-29
  • 打赏
  • 举报
回复
谢谢 beyond_xiruo(希偌)
但我的想法是使用链接的变量来执行命令的
比始我要用到CONNECTION对象变的execute方法来修改SQL server 数据库中的任意一个表,那么如何把我个变量定义为application变量呢?
请各位多多指教呀!
LYSSHE 2002-01-29
  • 打赏
  • 举报
回复
不可以还是出现了同样的错误:
ADODB.Recordset 错误 '800a0bb9'
变量或者类型不正确,或者不在可以接受的范围之内,要不就是与其他数据冲突。

/database1.asp, 行15

看来也只能在每次修改数据时从新链接一次了……(:-<
LYSSHE 2002-01-29
  • 打赏
  • 举报
回复
不可以还是出现了同样的错误:
ADODB.Recordset 错误 '800a0bb9'
变量或者类型不正确,或者不在可以接受的范围之内,要不就是与其他数据冲突。

/database1.asp, 行15

看来也只能在每次修改数据时从新链接一次了……(:-<
LYSSHE 2002-01-29
  • 打赏
  • 举报
回复
不可以还是出现了同样的错误:
ADODB.Recordset 错误 '800a0bb9'
变量或者类型不正确,或者不在可以接受的范围之内,要不就是与其他数据冲突。

/database1.asp, 行15

看来也只能在每次修改数据时从新链接一次了……
keliangui 2002-01-29
  • 打赏
  • 举报
回复
set rs=session("cn_myconnection").execute("select * from lx")
改为:
sql="select * from lx"
rs.open sql,session("cn_myconnection"),1,1
试试。
LYSSHE 2002-01-29
  • 打赏
  • 举报
回复
没有链接字串?
希偌 2002-01-29
  • 打赏
  • 举报
回复
只能这样了
在global.asa中的application_onstart事件
set application("conn")=server.createobject("adodb.connection")
application("conn").open
调用的时候这样
set rs=application("conn").Execute("………………")
LYSSHE 2002-01-29
  • 打赏
  • 举报
回复
目录是不为错的因为我在 session_onstart 里面的其它变量是可以访问的。
运行时提示是:

Microsoft VBScript 运行时错误 错误 '800a01a8'
缺少对象: '[undefined]'

/database1.asp, 行15

**********************************************************************
database1.asp的内容如下:
<% response.expires=0
response.buffer=false
%>
<html>
<head>
<title>使用application做链接</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>

<body bgcolor="#FFFFFF" text="#000000">
<table border>
<% dim rs
set rs=server.createobject("adodb.recordset")
'rs.open "select * from lx",application("myconnection"),3,1
set rs=session("cn_myconnection").execute("select * from lx")
%>
<% for i=0 to rs.fields.count-1 step 1 %>
<th nowrap><%=rs.fields(i).name%> </th>
<% next %>
<% do while not rs.eof %>

<tr bordercolor="#99FFFF">
<% for i=0 to rs.fields.count-1 step 1 %>
<% if i=8 then %>
<td nowrap><a href="<%=rs.fields(i).value%>" target="_blank"><%=rs.fields(i).value %></a>
<% elseif i=7 then %>
<td nowrap><a href=mailto:"<%=rs.fields(i).value %>"> <%=rs.fields(i).value %></a>
<% else %>
<td nowrap><%=rs.fields(i).value%>
<% end if %>
<% next %>
<% rs.movenext %>
<% loop %>
</table>

</body>
</html>
'************************************************************************
global.asa内容如下

<script language="vbscript" runat=server>
SUB APPLICATION_ONSTART
application("myconnection")="server=server;uid=lys;pwd=123!@#;database=lys;driver={SQL Server}"
set cn_mycn=server.createobject("adodb.connection")
cn_mycn.open "server=server;uid=lys;pwd=123!@#;database=lys;driver={SQL Server}"
set conn=server.createobject("adodb.connection")
application("conn")=conn.open "server=server;uid=lys;pwd=123!@#;database=lys;driver={SQL Server}"

END SUB
</script>

<script language=vbscript runat=server>
sub session_onstart
set session("cn_myconnection")=server.createobject("adodb.connection")
session("cn_myconnection").open "driver={sql server};uid=lys;pwd=123!@#;database=lys;server=server"
session("str_cnstr")="driver={SQL Server};UID=SA;server=server;PWD=SA;database=hs"
'cn.Open "driver={SQL Server};server=server;uid=sa;pwd=sa;database=hs"
end sub
</script>
keliangui 2002-01-29
  • 打赏
  • 举报
回复
是不是global.asa放错地方了?要放在根目录下面。
还有可不可以把错误信息告诉我呢?
LYSSHE 2002-01-29
  • 打赏
  • 举报
回复
keliangui(小刀) 
你那种解决方案我试过了,不过也不行……
加载更多回复(9)

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧