请高手指路!专业的

gotomingtian 2004-08-20 04:34:15
用ASP+SQLSERVER2000做在线数据库1浏览、2添加、3修改、4删除这样的工程应需要什么样的数据库连接方式,需要标准的,要按1`浏览、2添加、3修改、4删除分别列出。(并要能适应多人同时操作时不发生冲突)
...全文
258 33 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
33 条回复
切换为时间正序
请发表友善的回复…
发表回复
gotomingtian 2004-08-23
  • 打赏
  • 举报
回复
求解
gotomingtian 2004-08-22
  • 打赏
  • 举报
回复
UP
gotomingtian 2004-08-22
  • 打赏
  • 举报
回复
注意
添加和删除的时候,选择列名一定要选择全部列
如select * from t
而不能select col1,col2 from t

楼上的,这句话是为什么?请说明。
ASPGuy 2004-08-22
  • 打赏
  • 举报
回复
全用游标不是好方法,因为游标不是元语
添加
rs.open sqlstr,conn,3,3
rs.addnew
rs("col1")=col
rs.update

修改
rs.open sqlstr,conn,3,3
rs("col1")=col
rs.update

删除
rs.open sqlstr,conn,3,2
rs.delete

查询
rs.open sqlstr,conn,1,1

注意
添加和删除的时候,选择列名一定要选择全部列
如select * from t
而不能select col1,col2 from t
icehouse 2004-08-22
  • 打赏
  • 举报
回复
应该会有死锁的情况吧!还是说用SQL自己就可以避免死锁呢!如果出现超时这样的问题避免他要怎么样呢!在代码里应该注意这些吧!

俺佩服皱老大!数据库大版猪
gotomingtian 2004-08-22
  • 打赏
  • 举报
回复
我在本机运行没问题,但传到网上,就会有时有问题、有时没问题?
boywind 2004-08-21
  • 打赏
  • 举报
回复
给你一个比较有代表性的源码吧,希望能帮上忙

<%@ LANGUAGE = VBScript%>
<%
'------------------------------------------
'昨天晚上编的简单数据库(ACECESS,有id、password、
'register3个字段)操作,仅支持单表单条件操作,
'不过好像没什么用:)
'col:待查询字段名(必添)
'colvalue:待更新、添加字段的值(没有用""代替)
'table:表名(必添)
'keyid:查询条件的字段名(没有用""代替,可选)
'keyvalue:查询条件字段的值(没有用""代替,可选)
'col和colvalue必须成对出现
'keyid和keyvalue必须同时出现
'------------------------------------------
%>
<%
Function DB_execute(col,colvalue,table,keyid,keyvalue,bz)
Dim ConnStr,conn,rs,sql
ConnStr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("data/game.mdb")
Set conn = Server.CreateObject("ADODB.Connection")
conn.open ConnStr
set rs=server.createobject("adodb.recordset")
for i=0 to UBound(col) step 1
if UBound(col)<>i then
sql=sql&col(i)&", "
else
sql=sql&col(i)&" "
end if
next
if keyid <> "" then
sql="select "&sql&"from "&table&" where "&keyid&"='"&keyvalue&"'"
else
sql="select "&sql&"from "&table
end if
select case bz
case "o"
rs.open sql,conn,1,1
dim rsnum
rsnum=rs.RecordCount
if rsnum > 0 then
dim rsArray()
redim rsArray(rsnum,UBound(col))
for i=0 to UBound(col) step 1
rsArray(0,i)=col(i)
next
for i=1 to rsnum step 1
for j=0 to UBound(col) step 1
rsArray(i,j)=rs(col(j))
next
next
DB_execute=rsArray
else
DB_execute="没有查到任何数据"
end if
rs.close
set rs=nothing
case "u"
rs.open sql,conn,3,3
if rs.RecordCount > 0 then
for i=0 to UBound(col) step 1
rs(col(i))=colvalue(i)
next
rs.update
else
DB_execute="没有查到这条数据"
end if
rs.close
set rs=nothing
case "i"
rs.open sql,conn,3,3
rs.addnew
for i=0 to UBound(col) step 1
rs(col(i))=colvalue(i)
next
rs.update
DB_execute="添加数据成功"
rs.close
set rs=nothing
case "d"
sql="delete from "&table&" where "&keyid&"='"&keyvalue&"'"
conn.Execute sql
DB_execute="删除数据成功"
end select
conn.close
set conn=nothing
end Function
%>
<%
'返回记录集
'temp=DB_execute(Array("id","password","register"),"","users","","","o")
'response.write temp(1,2)

'添加一条记录
'temp=DB_execute(Array("id","password","register"),Array("test","test","0"),"users","","","i")
'response.write temp

'更新一条记录
'temp=DB_execute(Array("id","password","register"),Array("new","new","1"),"users","id","test","u")
'response.write temp

'删除一条记录
'temp=DB_execute(Array("id","password","register"),"","users","id","new1","d")
'response.write temp
%>
zjcxc 2004-08-21
  • 打赏
  • 举报
回复
Open 方法 (ADO Recordset)

语法:
recordset.Open Source, ActiveConnection, CursorType, LockType, Options

Source 可选,变体型,计算 Command 对象的变量名、SQL 语句、表名、存储过程调用或持久 Recordset 文件名。

ActiveConnection 可选。变体型,计算有效 Connection 对象变量名;或字符串,包含 ConnectionString 参数。

CursorType 可选,CursorTypeEnum 值,确定提供者打开 Recordset 时应该使用的游标类型。可为下列常量之一(参阅 CursorType 属性可获得这些设置的定义)。
值 常量 说明
--- ----------------------- -----------------------
0 AdOpenForwardOnly 默认值)打开仅向前类型游标。
1 AdOpenKeyset 打开键集类型游标。
2 AdOpenDynamic 打开动态类型游标。
3 AdOpenStatic 打开静态类型游标。


LockType 可选。确定提供者打开 Recordset 时应该使用的锁定(并发)类型的 LockTypeEnum 值,可为下列常量之一(参见 LockType 属性可获得详细信息)。
值 常量 说明
--- ----------------------- -----------------------
1 AdLockReadOnly (默认值)只读 — 不能改变数据。
2 AdLockPessimistic 保守式锁定(逐个) — 提供者完成确保成功编辑记录所需的工作,通常通过在编辑时立即锁定数据源的记录。
3 AdLockOptimistic 开放式锁定(逐个) — 提供者使用开放式锁定,只在调用Update 方法时才锁定记录。
4 AdLockBatchOptimistic 开放式批更新—用于批更新模式(与立即更新模式相对)。
boywind 2004-08-21
  • 打赏
  • 举报
回复
谢谢大家,问一下为什么有时执行到如rs.update或Conn.Execute("insert into xxx(...,...,...) values (...,...,...)这样的语句能顺利通过有时则不行?

------------------------
一般情况下,只要你的SQL语句写的正确,执行应该没什么问题的
检查检查你的SQL写的对不
boywind 2004-08-21
  • 打赏
  • 举报
回复
recordset.Open Source, ActiveConnection, CursorType, LockType, Options
Conn.Execute (.............)

其实两种写法执行效果的一样

Conn.Execute (.............)--利用connection对象的Execute方法建立recordset对象,这种写法跟简化些,用的最多

recordset.Open Source, ActiveConnection, CursorType, LockType, Options--利用connection对象的Execute方法建立recordset对象的另一种形式
gotomingtian 2004-08-21
  • 打赏
  • 举报
回复
用这个recordset.Open Source, ActiveConnection, CursorType, LockType, Options
和这个有什么不同Conn.Execute (.............)单用好、还是两个总都用
gotomingtian 2004-08-21
  • 打赏
  • 举报
回复
谢谢大家,问一下为什么有时执行到如rs.update或Conn.Execute("insert into xxx(...,...,...) values (...,...,...)这样的语句能顺利通过有时则不行?
sunjiujiu 2004-08-20
  • 打赏
  • 举报
回复
如果只是查询,用
rs.open sql,conn,3,1就行了

如果要更新(删除、更新、插入)
就用rs.open sql,conn,1,3
以上是比较通用的打开方式。
建议你查一下msdn中记录集打开方式,里面说对游标类型什么的说的很清楚的
gotomingtian 2004-08-20
  • 打赏
  • 举报
回复
?
zhengxianping 2004-08-20
  • 打赏
  • 举报
回复
自己会处理的你不用管了
blueissxg 2004-08-20
  • 打赏
  • 举报
回复
把EAMIL给我我发给你,但要先给分OK?
gotomingtian 2004-08-20
  • 打赏
  • 举报
回复
就是我的主题写一下ASP+SQLSERVER2000数据库的连接打开代码
kingapex1 2004-08-20
  • 打赏
  • 举报
回复
不明白楼主的意思
gotomingtian 2004-08-20
  • 打赏
  • 举报
回复
不好意思出去办点事,谢谢邹建了,有数据库的问题还要请教您
zjcxc 2004-08-20
  • 打赏
  • 举报
回复
操作直接用sql语句,我觉得比较方便
Conn.Execute("insert into xxx(...,...,...) values (...,...,...)


不是我不帮忙,asp方面我确实不行,这个问题与数据库的关系不是很大
加载更多回复(13)

28,409

社区成员

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

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