中国站长论坛

中国站长论坛 ›› 网页制作初级班 ›› 菜鸟ASP+数据库学习教程(附ASP相关语法学习)

页码: 1 2 3 4 5 6 7 8 9 10 ... 51

菜鸟ASP+数据库学习教程(附ASP相关语法学习)

- ffffffff8 2006-07-27 17:30

[原创]解读偶家的多用户播放器(菜鸟数据库学习教程)
( 站长站菜鸟:ffffffff8 )

前言

1.   此教程面向初接触ASP(数据库)的XDJM;
2.   此为基础教程,如果阁下是只老鸟,请回避;
3.   此为原创教程,转载请注明来源,BS不注明来源的家伙;
4.   此教程中部分程序代码来源于网络,如果阁下发现是出自你的手下,请别惊呼;
5.   向点击本帖,且回复了的JJMM们致敬。

相关演示效果: http://music.89525.com/
教程页: http://bbs.chinaz.com/dispbbs.asp?boardID=2&ID=775767&page=1

系列教程一  数据的添加与显示   下载(2006-8-5):http://music.89525.com/s/class/class1.rar

系列教程二  数据的修改与删除     下载(2006-8-18):http://music.89525.com/s/class/P1.CHM

系列教程三 数据分页的实现     下载:( 整理中 )

系列教程四 数据的分列显示的实现      下载:( 整理中 )
 
系列教程五 一些查用语句的介绍    下载:( 整理中 )


[此贴子已经被作者于2006-8-18 16:22:30编辑过]

- ffffffff8 2006-07-27 17:31

ASP编程常用的代码


1. ASP与Access数据库连接:

<%
dim conn,mdbfile
mdbfile=server.mappath("数据库名称.mdb")
set conn=server.createobject("adodb.connection")
conn.open "driver={microsoft access driver (*.mdb)};uid=admin;pwd=数据库密码;dbq="&mdbfile
%>


2. ASP与SQL数据库连接:

<%
dim conn
set conn=server.createobject("ADODB.connection")
con.open "PROVIDER=SQLOLEDB;DATA SOURCE=SQL服务器名称或IP地址;UID=sa;PWD=数据库密码;DATABASE=数据库名称
%>

建立记录集对象:

set rs=server.createobject("adodb.recordset")
rs.open SQL语句,conn,3,2

3. SQL常用命令使用方法:

(1) 数据记录筛选:

sql="select * from 数据表 where 字段名=字段值 order by 字段名 "
sql="select * from 数据表 where 字段名 like ‘%字段值%‘ order by 字段名 "
sql="select top 10 * from 数据表 where 字段名 order by 字段名 "
sql="select * from 数据表 where 字段名 in (‘值1‘,‘值2‘,‘值3‘)"
sql="select * from 数据表 where 字段名 between 值1 and 值2"

(2) 更新数据记录:

sql="update 数据表 set 字段名=字段值 where 条件表达式"
sql="update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表达式"

(3) 删除数据记录:

sql="delete from 数据表 where 条件表达式"
sql="delete from 数据表" (将数据表所有记录删除)

(4) 添加数据记录:

sql="insert into 数据表 (字段1,字段2,字段3 …) valuess (值1,值2,值3 …)"
sql="insert into 目标数据表 select * from 源数据表" (把源数据表的记录添加到目标数据表)

(5) 数据记录统计函数:

AVG(字段名) 得出一个表格栏平均值
COUNT(*|字段名) 对数据行数的统计或对某一栏有值的数据行数统计
MAX(字段名) 取得一个表格栏最大的值
MIN(字段名) 取得一个表格栏最小的值
SUM(字段名) 把数据栏的值相加

引用以上函数的方法:

sql="select sum(字段名) as 别名 from 数据表 where 条件表达式"
set rs=conn.excute(sql)

用 rs("别名") 获取统的计值,其它函数运用同上。

(5) 数据表的建立和删除:

CREATE TABLE 数据表名称(字段1 类型1(长度),字段2 类型2(长度) …… )

例:CREATE TABLE tab01(name varchar(50),datetime default now())

DROP TABLE 数据表名称 (永久性删除一个数据表)

(6) 记录集对象的方法:

rs.movenext 将记录指针从当前的位置向下移一行
rs.moveprevious 将记录指针从当前的位置向上移一行
rs.movefirst 将记录指针移到数据表第一行
rs.movelast 将记录指针移到数据表最后一行
rs.absoluteposition=N 将记录指针移到数据表第N行
rs.absolutepage=N 将记录指针移到第N页的第一行
rs.pagesize=N 设置每页为N条记录
rs.pagecount 根据 pagesize 的设置返回总页数
rs.recordcount 返回记录总数
rs.bof 返回记录指针是否超出数据表首端,true表示是,false为否
rs.eof 返回记录指针是否超出数据表末端,true表示是,false为否
rs.delete 删除当前记录,但记录指针不会向下移动
rs.addnew 添加记录到数据表末端
rs.update 更新数据表记录


判断所填数据是数字型

if not isNumeric(request("字段名称")) then
response.write "不是数字"
else
response.write "数字"
end if

 


[此贴子已经被作者于2006-8-9 10:55:47编辑过]

- ffffffff8 2006-07-27 17:32

ASP数据库语法总结


经常使用到有关数据库的操作。包括连接代码、SQL命令等等,又不曾刻意去记忆它们(我本人是不愿意去记这东东),所以常常在用到的时候又去查书本,翻来翻去。一些比较少用的数据库还不一定能顺利找到,所以现在把它们全归纳到这里,提供大家参考。(个人水平有限,有缺陷之处,欢迎大家指正。)

<一>。数据库的连接方法:

1.Access数据库的DSN-less连接方法:

set adocon=Server.Createobject("adodb.connection")
adoconn.Open"Driver={Microsoft Access Driver(*.mdb)};DBQ="& _
Server.MapPath("数据库所在路径")

2.Access OLE DB连接方法:

set adocon=Server.Createobject("adodb.connection")
adocon.open"Provider=Microsoft.Jet.OLEDB.4.0;"& _
"Data Source=" & Server.MapPath("数据库所在路径")

3.SQL server连接方法:

set adocon=server.createobject("adodb.recordset")
adocon.Open"Driver={SQL Server};Server=(Local);UID=***;PWD=***;"& _
"database=数据库名;"

4.SQL server OLE DB连接方法:

set adocon=Server.Createobject("adodb.connection")
adocon.open"provider=SQLOLEDB.1;Data Source=RITANT4;"& _
"user ID=***;Password=***;"& _
"inital Catalog=数据库名"

5.Oracle 连接方法:

set adocon=Server.Createobject("adodb.connection")
adocon.open"Driver={microsoft odbc for oracle};server=oraclesever.world;uid=admin;pwd=pass;"

6.Oracle OLE DB 连接方法:

set adocon=Server.Createobject("adodb.connection")
adocon.open"Provider=OraOLEDB.Oracle;data source=dbname;user id=admin;password=pass;"

7.dBase 连接方法:

set adocon=Server.Createobject("adodb.connection")
adocon.open"Driver={microsoft dbase driver(*.dbf)};driverid=277;dbq=------------;"

8.mySQL 连接方法:

set adocon=Server.Createobject("adodb.connection")
adocon.open"Driver={mysql};database=yourdatabase;uid=username;pwd=yourpassword;option=16386;"

9.Visual Foxpro 连接方法:

set adocon=Server.Createobject("adodb.connection")
adocon.open"Driver={microsoft Visual Foxpro driver};sourcetype=DBC;sourceDB=*.dbc;Exclusive=No;"

10.MS text 连接方法:

set adocon=Server.Createobject("adodb.connection")
adocon.open"Driver={microsoft text driver(*.txt; *.csv)};dbq=-----;"&_
"extensions=asc,csv,tab,txt;Persist SecurityInfo=false;"

11.MS text OLE DB 连接方法:

set adocon=Server.Createobject("adodb.connection")
adocon.open"Provider=microsof.jet.oledb.4.0;data source=your_path;"&_
"Extended Properties'text;FMT=Delimited'"

<二>。常用的四种SQL命令:

1.查询数据记录(Select)
语法:Select 字段串行 From table Where 字段=内容
例子:想从book表中找出作者为"cancer"的所有记录,SQL语句便如下:
select * from book where author=’cancer’
"*"是取出book表所有的字段,如查询的字段值为数字,则其后的"内容"便无须加上单引号,

如是日期,则在Access中用(#)包括,而在SQL server中则用(’)包括,
如:

select * from book where id=1
select * from book where pub_date=#2002-1-7# (Access)
select * from book where pub_date=’2002-1-7’ (SQL Server)

提示:
日期函数to_date不是标准sql文,不是所有的数据库适用,所以大家在使用的时候要参考数据库具体语法

另外如果是查询传入的变量,则如下:

strau=request.form("author")
strsql="select * from book where author=’"&strau&"’"

如果查询的是数字,则:

intID=request.form("id")
strsql="select * from book where id="&intID

在很多数据库中,如:oracle,上面的语句是可以写成:
strsql="select * from book where id='"&intID&"'"的。
但是字符型一定不能按照数字格式写,需要注意。

2.添加记录(Insert)
语法:Insert into table(field1,field2,....) Values (value1,value2,....)
例子:添加一作者是"cancer"的记录入book表:
insert into book (bookno,author,bookname) values (’CF001’,’cancer’,’Cancer无组件上传程序’)
同样,如果用到变量就如下:

strno=request.form("bookno")
strau=request.form("author")
strname=request.form("bookname")
strsql="insert into book (bookno,author,bookname) values (’"&strno&"’,’"&strau&"’,’"&strname&"’)"

3.用Recordset对象的Addnew插入数据的方法:
语法:

rs.addnew
rs("field1").value=value1
rs("field2").value=value2
...
rs.update

4.修改数据记录(Update)
语法:update table set field1=value1,field2=value2,...where fieldx=valuex
例子:update book set author=’babycrazy’ where bookno=’CF001’
如果用到变量就如下:

strno=request.form("bookno")
strau=request.form("author")
strsql="update book set author=’"&strau&"’ where bookno=’"&strno"’"

5.Recordset对象的Update方法:
语法:

rs("field1").value=value1
rs("field2").value=value2
...
rs.update

注意:使用语法3和语法5的时候,一定要注意字段的类型(尤其是日期型)一致,否则出错的几率非常的高。


例子:

strno=request.form("bookno")
strau=request.form("author")
set adocon=server.createobject("adodb.connection")
adocon.open "Driver={Microsoft Access Driver(*.mdb)};DBQ=" & _
Server.Mappath=("/cancer/cancer.mdb")
strsql="select * from book where bookno=’"&strno&"’"
set rs=server.createobject("adodb.recordset")
rs.open strsql,adconn,1,3
if not rs.eof then ’如果有此记录的话
rs("author").value=strau
rs.update
end if
rs.close
set rs=nothing
adocon.close
set adocon=nothing

6.删除一条记录(Delete)
语法:Delete table where field=value
例子:删除book表中作者是cancer的记录

delete book where author=’cancer’

(注意:如果book表中author字段的值为cancer的记录有多条,将会删除所有author为cancer的记录)

好了,学会了用这些操作,大家在用asp操作数据库的时候,该是没有什么问题了。


[此贴子已经被作者于2006-8-9 10:48:07编辑过]

- ffffffff8 2006-07-27 17:32

sql常用命令方法!!!
(1) 数据记录筛选:

sql="select * from 数据表 where 字段名=字段值 order by 字段名 [desc]"

sql="select * from 数据表 where 字段名 like ''%字段值%'' order by 字段名 [desc]"

sql="select top 10 * from 数据表 where 字段名 order by 字段名 [desc]"

sql="select * from 数据表 where 字段名 in (''值1'',''值2'',''值3'')"

sql="select * from 数据表 where 字段名 between 值1 and 值2"

(2) 更新数据记录:

sql="update 数据表 set 字段名=字段值 where 条件表达式"

sql="update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表达式"

(3) 删除数据记录:

sql="delete from 数据表 where 条件表达式"

sql="delete from 数据表" (将数据表所有记录删除)

(4) 添加数据记录:

sql="insert into 数据表 (字段1,字段2,字段3 …) valuess (值1,值2,值3 …)"

sql="insert into 目标数据表 select * from 源数据表" (把源数据表的记录添加到目标数据表)

(5) 数据记录统计函数:

AVG(字段名) 得出一个表格栏平均值
COUNT(*|字段名) 对数据行数的统计或对某一栏有值的数据行数统计
MAX(字段名) 取得一个表格栏最大的值
MIN(字段名) 取得一个表格栏最小的值
SUM(字段名) 把数据栏的值相加

引用以上函数的方法:

sql="select sum(字段名) as 别名 from 数据表 where 条件表达式"
set rs=conn.excute(sql)

用 rs("别名") 获取统的计值,其它函数运用同上。

(5) 数据表的建立和删除:

CREATE TABLE 数据表名称(字段1 类型1(长度),字段2 类型2(长度) …… )

例:CREATE TABLE tab01(name varchar(50),datetime default now())

DROP TABLE 数据表名称 (永久性删除一个数据表)


select distinct * into yjkc2 from yjkc
drop table yjkc
select * into yjkc from yjkc2
drop table yjkc2







===================================================SQL连接方式==================================================

dim conn
set conn=server.createobject("ADODB.connection")
conn.open "PROVIDER=SQLOLEDB;DATA SOURCE=服务器;UID=用户名;PWD=密码;DATABASE=表名;"



================================================access连接方式=================================================

dim conn
dim connstr
on error resume next
connstr="DBQ="+server.mappath("数据库路径")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
set conn=server.createobject("ADODB.CONNECTION")
conn.open connstr




====================================================包含页========================================================
<!--#include file=文件名 -->


=====================================================调用表=======================================================
set rs=server.createobject("adodb.recordset")
sql="select * from 表名 where 字段=变量 order by 字段 desc"
rs.open sql,conn,1,1

打开数据库之后固定修改某个字段
conn.execute("Update 表名 Set 字段=字段+1 Where 字段=变量"


=====================================================删除内容======================================================
set rs=server.createobject("adodb.recordset")
sql="select * from 表名 where 字段=变量"
rs.open sql,conn,1,3
有图片就删除图片
Picture=rs("newspic")
set fs=server.CreateObject("scripting.filesystemobject")
Picture=server.MapPath(Picture)
if fs.FileExists(Picture) then
fs.DeleteFile Picture,true
end if
rs.delete
rs.update
response.redirect request.servervariables("http_referer")
end if

======================================================分页=====================================================

<table width="98%" border="0" cellspacing="1" cellpadding="3" bgcolor="cccccc">
<tr bgcolor="f5f5f5">
<td width=10% align=center>
<font color="">id 
</td>
<td width=40% align=center>关 键 词;</td>
<td width=10% align=center>价  格</td>
<td width=20% align=center>修  改</td>
<td width=20% align=center>删  除</td>
</tr>
<%
If Request.QueryString("page") = "" or Request.QueryString("page") = 0 then
page = 1
Else
page = CINT(Request.QueryString("page"))
End If
if request("pm")="" then
set rs=server.CreateObject("adodb.recordset")
sql="select * from p_words order by id desc"
rs.open sql,conn,1,1
else
set rs=server.CreateObject("adodb.recordset")
sql="select * from p_words where pm_name like '%"&request("pm")&"%'"
rs.open sql,conn,1,1
end if
if rs.eof and rs.bof then%>
<tr >
<td width=10% align=center colspan="6" >
暂时没有记录!!<br>
</td>
</tr>
<%
else
%>
<%
RS.PageSize=10'设置每页记录数          
Dim TotalPages             
TotalPages = RS.PageCount             
             
If page>RS.Pagecount Then              
page=RS.Pagecount             
end if             
             
RS.AbsolutePage=page
rs.CacheSize = RS.PageSize'设置最大记录数 
Dim Totalcount             
Totalcount =INT(RS.recordcount)             
             
StartPageNum=1             
do while StartPageNum+10<=page             
StartPageNum=StartPageNum+10             
Loop             
                 
EndPageNum=StartPageNum+9             
             
If EndPageNum>RS.Pagecount then EndPageNum=RS.Pagecount %>
<%I=0
p=RS.PageSize*(page-1)             
do while (Not RS.Eof) and (I<RS.PageSize)             
p=p+1%>

<form action="?act=move&id=<%=rs("id")%>" method=post name=form1>
<tr bgcolor="#FFFFFF">
<td align=center><%=rs("id")%></td>
<td><input type=text name="pm_name" size=12 value="<%=rs("pm_name")%>"></td>
<td align=center><input type=text name="pm_p" size=8 value="<%=rs("pm_p")%>"></td>
<td align=center><input type='submit' class='button' value='修改'></td>
<td align=center><input type="button" name="Submit" value="删除" class="button" onclick="location='biglist.asp?act=del&id=<%=rs("id")%>'"></td>
</tr>
</form>

<%I=I+1             
RS.MoveNext             
Loop%>
             
 

<tr> <td colspan="6" align=right height=30>
  共有<font color=red><%=rs.recordcount%></font>个关键词,<font color=red><%=page%></font>/<%=TotalPages%>页
【<a href="<%=request.ServerVariables("URL")%>?page=1">首页</a>】
<% if page>1 then %>
【<a href="<%=request.ServerVariables("URL")%>?page=<%=StartPageNum-1%>">上一页</a>】
<%else%>
<%end if%>
<% For I=StartPageNum to EndPageNum                         
      if I<>page then %><A href="?page=<%=I%>"><u><%=I%></u> </A><% else %><font color=red><%=I%></font> <% end if %><% Next %><% if EndPageNum<RS.Pagecount then %>
【<a href="<%=request.ServerVariables("URL")%>?page=<%=EndcPageNum+i%>">下一页</a>】
<%end if%>
【<a href="<%=request.ServerVariables("URL")%>?page=<%=TotalPages%>">尾页</a>】

</td></tr>


<%
end if
rs.close
%> 

</table>



===============================================常用JAVA===========================================================
response.write"<SCRIPT language=JavaScript>alert('该关键词已经存在。');"
response.write"javascript:history.go(-1)</SCRIPT>"
'response.redirect "biglist.asp"
'response.write"this.location.href='index.asp';</SCRIPT>"
'response.redirect request.servervariables("http_referer")

response.end



=================================================常用命令=============================================================

两个表循环
<%
dim crs1
dim csql1
Set crs1= Server.CreateObject("ADODB.Recordset")
csql1="select * from commercetype"
crs1.open csql1,conn,1,1
%>
<%do while not crs1.eof%>
<%
Set all= Server.CreateObject("ADODB.Recordset")
csql1="select * from Commerce where Typeid="&crs1("Typeid")
all.open csql1,conn,1,1

%>
<td width="20%" height=17 bgcolor="#E4F4FC" valign=middle>
<font color=red>
<%if not all.eof then%>
<%=all.recordcount%>
<%else%>
0
<%end if%>
</font>
</td>
<%
crs1.movenext
loop
%>

去掉太长的录入文字:
<td style="word-wrap:break-word;word-break:break-all;">

<%=ltrim(arr(j))%>
去掉左空格
instr(request.form("t"),",")>0
查验是否有,号
arr=split(request.form("t"),",")
去掉,并付值给arr
ubound(arr)
个数


[此贴子已经被作者于2006-12-7 12:56:21编辑过]

- ffffffff8 2006-07-27 17:32

ASP的对象结构

现在我们要系统地了解一下ASP的对象结构,然后,大家就可以举一反三,不用我过多解释每一个例子了。这一部分,可能有些困难。


  一、Request
  Request对象把客户信息保存在几个集合中,供ASP应用使用。通用的访问方法为:Request.Collection("membername")
  当你不指定集合名时,以(1)QueryString,(2)Form,(3)Cookie和(4)ServerVariable
的顺序搜索所有集合,当发现第一个匹配的变量时,就认定他是要引用的成员。当然,为了提高效率,你最好显式指定是那个集合中的成员。
  QueryString集合
  当HTML表单使用GET方法向ASP文件传递数据时,数据被保存在集合QueryString中。其成员可以具有与之相关的多个值,也就是说,同一个表单中,多个元素可以有相同的名字,下面的代码访问这些数据:
<%For each item in Request.QueryString("Name")
Response.write Item &"<br>"
Next %>
  Form集合
  当表单用POST方法时,数据被保存在Form集合中。
  ServerVariable集合
  保存了随HTTP请求一起传送HTTP头的信息,可以通过他获取有关浏览器的信息,主要成员有:
REMOTE_ADDR 远程主机IP地址
REMOTE_HOST 远程主机名称
REMOTE_USER 客户名称
REQUEST_METHOD 请求方法(如POST,GET,HEAD)
SERVER_NAME 服务器名
SERVER_PROTOCOL 服务器版本号(如HTTP/1。0)

  二、Response对象
  用来控制向客户返回的HTML的内容,有若干属性和方法。下面介绍我认为重要的:
  Buffer属性
  如果为True,则Response的内容要写入缓冲区,当脚本处理完时再发给客户。
  Status属性
传递HTTP Response报文的状态。服务器返回的状态代码由三位数字组成,可以用于测试阶段和转换控制到其他站点(即Forward)
  Write方法
  向客户输出HTML,可以是任何合法的HTML脚本。
  Redirect方法
  使浏览器重新定向到另外一个URL上,如:
<%browsetype=Request.ServerVariables("HTTP_USER_AGENT")
IF Left(browsetype,11)="Mozilla/2.0" then
Response.Redirect "FancyStart.asp"
Else
Response.Redirect "OldStart.asp"
End if%>
  Clear方法
  如果设Buffer属性为True,则Clear方法清楚所有缓冲区内容。
  Flush方法
  将缓冲内容立即发送给客户。
  End方法
  当Active Server遇到该方法时,立即停止处理ASP文件,如果有缓冲,立即发送内容到客户。
  BinaryWrite方法
  输出二进制数据

  三、Request对象和Response对象的Cookies集合
  1.写入Cookies
  Response.Cookies("Cookie名称")[("键名称").属性]=值
  如果该Cookie已经存在,则值被新值替代,否则,创建该cookie
  例如:
<% Response.Cookies("NewCookie")="New Cookie Value" %>
  2.读取Cookies
  如:
<%=Request.Cookies("NewCookie")%>
  Cookie还有一些属性,请参见有关资料。

  四、Application对象
  Active Server应用程序是虚拟目录及其子目录下的所有文件,即一个WEB。可以使用Application对象在应用软件的所有用户**享信息,并可以在服务器运行期间持久地保存数据。他有一些控制访问应用层数据的方法和事件。
  Application本身没有内置属性,可以有用户定义:Application("属性名")=值
  保存在Application对象中的数据可以被Application的所有用户读取。如用来做访问记数:Application("aVisits")=Application("aVisits")+1
  方法有两个:
  Lock:
  当用户调用Lock时,只有当前用户能够编辑或增加Application对象的属性。
  Unlock:
  一定要记住,调用了Lock,完成时一定要调用Unlock.
  事件也有两个:
  Application_OnStart事件:应用程序启动时调用。
  Application_OnStart事件:应用程序终止时调用。
  这两个事件再加上Session的两个事件的处理程序都放在文件Global.asp中,一个Web应用只有一个Global.asa文件,且放在该应用的根目录下。一个Global.asp文件的例子如下:
<Script Language="VBScript" Runat="Server">
Sub Application_OnStart
Dim laChats(15)
Application("gaChats")=maChats
Application("giCounter")=0
End Sub

  五、Session对象
Active Server使用会话设置为使用应用程序的单个用户持久保持数据。当用户请求Active Server应用程序中ASP文件的URL时,要启动Session。在缺省情况下,如果没有用户请求,则服务器只保留Session20分钟。用户也可以通过设Session的属性TimeOut来改变。或显示地调用Session.Abandon方法来释放Session对象。
  SessionID属性
  唯一标识一个会话的标识符。
  TimeOut属性
  定义Session保留的时限,单位为分钟,如Session.TimeOut=10
  像Application一样,Session也可由用户来定义属性。
  Session的唯一方法是Abandon,用来取消用户的Session对象,并释放其占用的服务器资源。如:<%Session.Abandon%>
  事件有Session_OnStart和Session_OnEnd,其处理程序应放在文件Glabal.asa中。

  六、Server对象
  1.HTMLEncode方法
  对特定的字符串进行HTML编码,如你本来要显示下列内容:
The Underline tag(<u></u>) is used to underline the surrounded text.
  但很可能实际显示成:
The Underline tag() is used to underline the surrounded text.
  为了避免这种情况,可以调用Server对象的HTMLEncode方法,如:
<%
Response.Write Server.HTMLEncode("The Underline tag(<U></U>) is used to underline the surrounded text.")
%>
  2.URLEncode方法
  根据URL规则对字符串进行编码。当字符串数据以URL格式传递到服务器时,串中间不能有空格,不能有特殊字符,这时,你就必须用URL编码。
  3.CreateObject方法
  用于创建已注册到服务器机器上的ActiveX组件例程,这恐怕是最重要的一个方法了:
  句法如下:
Server.CreateObject("ComponentName")
  可以作为例程启动的组件可以是ActiveX能够使用的所有内置组件,实际上是存在于服务器上的任何ActiveX组件。比如,要使用金融计算,步骤如下:
  1.创建对象
<%
set x=server.createobject("extend.financial");
%>
  2.调用对象的方法
<%
set x=server.createobject("extend.financial")
response.write Format(x.futval(.07/12,200,-500),"###,###,##0.00")
%>
  3.释放例程
<%
set x=Nothing
%>

  七、FileSystem和TextStream对象
  FileSystem和TextStream对象可用于建立对文件系统的访问,并提供顺序访问文件的机制。FileSystem没有属性,只有两个方法,第一个方法是CreateTextFile方法,可以在宿主机上创建新的文本文件,并返回TextStream对象以提供对新创建文件的访问机制。第二个是OpenTextFile方法,用于打开文本文件供顺序访问并返回一个TextStream对象。如:

<%
set fsFilesys=CreateObject("Scripting.FileSystemObject")
set tsCoffee=fsFilesys.CreateTextFile("c:\coffe.txt",True)
tsCoffee.WriteLine("Man,I Could use some coffee.")
tsCoffee.Close
%>
  TextStream对象的使用有:
  AtEndOfLine:如果文件当前字符处在行的末尾则返回true
  AtEndOfScreen:如果当前字符在文件的末尾则返回true
  Column:返回当前字符的列号
  Line:返回当前字符的行号
  TextStream对象的方法为:
  Close:关闭并释放TextStream对象
  Read:从一个文件中读取给定个数的字符到一个变量中
  ReadAll:读取文件的全部内容到一个变量中
  ReadLine:读取给定行号的内容到一个变量中
  Skip:跳过给定个数的字符
  SkipLine:跳过给顶的行书
  Write:写如字符串
  WriteLine:写入以换行结束的字符串
  WriteBlankLines:写入给顶数量的空格


[此贴子已经被作者于2006-8-9 10:50:59编辑过]

- ffffffff8 2006-07-27 17:32

ASP编程常用的代码


1. ASP与Access数据库连接:

<%
dim conn,mdbfile
mdbfile=server.mappath("数据库名称.mdb")
set conn=server.createobject("adodb.connection")
conn.open "driver={microsoft access driver (*.mdb)};uid=admin;pwd=数据库密码;dbq="&mdbfile
%>


2. ASP与SQL数据库连接:

<%
dim conn
set conn=server.createobject("ADODB.connection")
con.open "PROVIDER=SQLOLEDB;DATA SOURCE=SQL服务器名称或IP地址;UID=sa;PWD=数据库密码;DATABASE=数据库名称
%>

建立记录集对象:

set rs=server.createobject("adodb.recordset")
rs.open SQL语句,conn,3,2

3. SQL常用命令使用方法:

(1) 数据记录筛选:

sql="select * from 数据表 where 字段名=字段值 order by 字段名 "
sql="select * from 数据表 where 字段名 like ‘%字段值%‘ order by 字段名 "
sql="select top 10 * from 数据表 where 字段名 order by 字段名 "
sql="select * from 数据表 where 字段名 in (‘值1‘,‘值2‘,‘值3‘)"
sql="select * from 数据表 where 字段名 between 值1 and 值2"

(2) 更新数据记录:

sql="update 数据表 set 字段名=字段值 where 条件表达式"
sql="update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表达式"

(3) 删除数据记录:

sql="delete from 数据表 where 条件表达式"
sql="delete from 数据表" (将数据表所有记录删除)

(4) 添加数据记录:

sql="insert into 数据表 (字段1,字段2,字段3 …) valuess (值1,值2,值3 …)"
sql="insert into 目标数据表 select * from 源数据表" (把源数据表的记录添加到目标数据表)

(5) 数据记录统计函数:

AVG(字段名) 得出一个表格栏平均值
COUNT(*|字段名) 对数据行数的统计或对某一栏有值的数据行数统计
MAX(字段名) 取得一个表格栏最大的值
MIN(字段名) 取得一个表格栏最小的值
SUM(字段名) 把数据栏的值相加

引用以上函数的方法:

sql="select sum(字段名) as 别名 from 数据表 where 条件表达式"
set rs=conn.excute(sql)

用 rs("别名") 获取统的计值,其它函数运用同上。

(5) 数据表的建立和删除:

CREATE TABLE 数据表名称(字段1 类型1(长度),字段2 类型2(长度) …… )

例:CREATE TABLE tab01(name varchar(50),datetime default now())

DROP TABLE 数据表名称 (永久性删除一个数据表)

(6) 记录集对象的方法:

rs.movenext 将记录指针从当前的位置向下移一行
rs.moveprevious 将记录指针从当前的位置向上移一行
rs.movefirst 将记录指针移到数据表第一行
rs.movelast 将记录指针移到数据表最后一行
rs.absoluteposition=N 将记录指针移到数据表第N行
rs.absolutepage=N 将记录指针移到第N页的第一行
rs.pagesize=N 设置每页为N条记录
rs.pagecount 根据 pagesize 的设置返回总页数
rs.recordcount 返回记录总数
rs.bof 返回记录指针是否超出数据表首端,true表示是,false为否
rs.eof 返回记录指针是否超出数据表末端,true表示是,false为否
rs.delete 删除当前记录,但记录指针不会向下移动
rs.addnew 添加记录到数据表末端
rs.update 更新数据表记录


判断所填数据是数字型

if not isNumeric(request("字段名称")) then
response.write "不是数字"
else
response.write "数字"
end if

 


[此贴子已经被作者于2006-8-9 10:46:12编辑过]

- ffffffff8 2006-07-27 17:33

<%
语句
……
%>
<2>定义变量dim语句
<%
dim a,b
a=10
b=”ok!”
%>
注意:定义的变量可以是数值型,也可以是字符或者其他类型的
<3>简单的控制流程语句
1. If 条件1 then
语句1
elseif 条件2 then
语句2
else
语句3
endif
2.while 条件
语句
wend
3.for count=1 to n step m
语句1
exit for
语句2
next
二.ASP数据库简单*作教程
<1>.数据库连接(用来单独编制连接文件conn.asp)
<%
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("\bbs\db1\user.mdb")
%>
(用来连接bbs\db1\目录下的user.mdb数据库)
<2>显示数据库记录
原理:将数据库中的记录一一显示到客户端浏览器,依次读出数据库中的每一条记录
如果是从头到尾:用循环并判断指针是否到末 使用: not rs.eof
如果是从尾到头:用循环并判断指针是否到开始 使用:not rs.bof

<!--#include file=conn.asp--> (包含conn.asp用来打开bbs\db1\目录下的user.mdb数据库)
<%
set rs=server.CreateObject("adodb.recordset") (建立recordset对象)
sqlstr="select * from message" ---->(message为数据库中的一个数据表,即你要显示的数据所存放的数据表)
rs.open sqlstr,conn,1,3 ---->(表示打开数据库的方式)
rs.movefirst ---->(将指针移到第一条记录)
while not rs.eof ---->(判断指针是否到末尾)
response.write(rs("name")) ---->(显示数据表message中的name字段)
rs.movenext ---->(将指针移动到下一条记录)
wend ---->(循环结束)
------------------------------------------------------
rs.close
conn.close 这几句是用来关闭数据库
set rs=nothing
set conn=nothing
-------------------------------------------------------
%>
其中response对象是服务器向客户端浏览器发送的信息
<3>增加数据库记录
增加数据库记录用到rs.addnew,rs.update两个函数
<!--#include file=conn.asp--> (包含conn.asp用来打开bbs\db1\目录下的user.mdb数据库)
<%
set rs=server.CreateObject("adodb.recordset") (建立recordset对象)
sqlstr="select * from message" ---->(message为数据库中的一个数据表,即你要显示的数据所存放的数据表)
rs.open sqlstr,conn,1,3 ---->(表示打开数据库的方式)
rs.addnew 新增加一条记录
rs("name")="xx" 将xx的值传给name字段
rs.update 刷新数据库
------------------------------------------------------
rs.close
conn.close 这几句是用来关闭数据库
set rs=nothing
set conn=nothing
-------------------------------------------------------

%>
<4>删除一条记录
删除数据库记录主要用到rs.delete,rs.update
<!--#include file=conn.asp--> (包含conn.asp用来打开bbs\db1\目录下的user.mdb数据库)
<%
dim name
name="xx"
set rs=server.CreateObject("adodb.recordset") (建立recordset对象)
sqlstr="select * from message" ---->(message为数据库中的一个数据表,即你要显示的数据所存放的数据表)
rs.open sqlstr,conn,1,3 ---->(表示打开数据库的方式)
-------------------------------------------------------
while not rs.eof
if rs.("name")=name then
rs.delete
rs.update 查询数据表中的name字段的值是否等于变量name的值"xx",如果符合就执行删除,
else 否则继续查询,直到指针到末尾为止
rs.movenext
emd if
wend
------------------------------------------------------
------------------------------------------------------
rs.close
conn.close 这几句是用来关闭数据库
set rs=nothing
set conn=nothing
-------------------------------------------------------
%>
<5>关于数据库的查询
(a) 查询字段为字符型
<%
dim user,pass,qq,mail,message
user=request.Form("user")
pass=request.Form("pass")
qq=request.Form("qq")
mail=request.Form("mail")
message=request.Form("message")
if trim(user)&"x"="x" or trim(pass)&"x"="x" then (检测user值和pass值是否为空,可以检测到空格)
response.write("注册信息不能为空")
else
set rs=server.CreateObject("adodb.recordset")
sqlstr="select * from user where user='"&user&"'" (查询user数据表中的user字段其中user字段为字符型)
rs.open sqlstr,conn,1,3
if rs.eof then
rs.addnew
rs("user")=user
rs("pass")=pass
rs("qq")=qq
rs("mail")=mail
rs("message")=message
rs.update
rs.close
conn.close
set rs=nothing
set conn=nothing
response.write("注册成功")
end if
rs.close
conn.close
set rs=nothing
set conn=nothing
response.write("注册重名")
%>
(b)查询字段为数字型
<%
dim num
num=request.Form("num")
set rs=server.CreateObject("adodb.recordset")
sqlstr="select * from message where id="&num (查询message数据表中id字段的值是否与num相等,其中id为数字型)
rs.open sqlstr,conn,1,3
if not rs.eof then
rs.delete
rs.update
rs.close
conn.close
set rs=nothing
set conn=nothing
response.write("删除成功")
end if
rs.close
conn.close
set rs=nothing
set conn=nothing
response.write("删除失败")
%>
<6>几个简单的asp对象的讲解
response对象:服务器端向客户端发送的信息对象,包括直接发送信息给浏览器,重新定向URL,或设置cookie值
request对象:客户端向服务器提出的请求
session对象:作为一个全局变量,在整个站点都生效
server对象:提供对服务器上方法和属性的访问
(a) response对象的一般使用方法
比如:
<%
resposne.write("hello, welcome to asp!")
%>
在客户端浏览器就会看到 hello, welcome to asp! 这一段文字
<%
response.Redirect("www.sohu.com")
%>
如果执行这一段,则浏览器就会自动连接到 “搜狐” 的网址
关于response对象的用法还有很多,大家可以研究研究
request对象的一般使用方法
比如客户端向服务器提出的请求就是通过request对象来传递的
列如 :你在申请邮箱的所填写的个人信息就是通过该对象来将
你所填写的信息传递给服务器的
比如:这是一段表单的代码,这是提供给客户填写信息的,填写完了按
“提交”传递给request.asp文件处理后再存入服务器数据库
<form name="form1" method="post" action="request.asp">
<p>
<input type="text" name="user">
</p>
<p>
<input type="text" name="pass">
</p>
<p>
<input type="submit" name="Submit" value="提交">
</p>
</form>
那么request.asp该如何将其中的信息读入,在写入数据库,在这里就要用到
request对象了,下面我们就来分析request.asp的写法
<%
dim name,password (定义user和password两个变量)
name=request.form(“user”) (将表单中的user信息传给变量name)
password=request.form(“pass”) (将表单中的pass信息传给变量password)
%>
通过以上的几句代码我们就将表单中的数据读进来了,接下来我们要做的就是将
信息写入数据库了,写入数据库的方法上面都介绍了,这里就不一一复述了。
(通过上面的学习大家完全可以自己做一个留言版了)
[em09][em09][em09][em09][em09][em09][em09][em09][em10][em05][em03][em02][em01][em01]
[此贴子已经被作者于2006-10-9 12:14:08编辑过]

- ffffffff8 2006-07-27 17:33

asp内置对象 session 详解


Session 对象
可以使用 Session 对象存储特定用户会话所需的信息。这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。

当用户请求来自应用程序的 Web 页时,如果该用户还没有会话,则 Web 服务器将自动创建一个 Session 对象。当会话过期或被放弃后,服务器将终止该会话。

Session 对象最常见的一个用法就是存储用户的首选项。例如,如果用户指明不喜欢查看图形,就可以将该信息存储在 Session 对象中。有关使用 Session 对象的详细信息,请参阅“ASP 应用程序”部分的“管理会话”。

注意 会话状态仅在支持 cookie 的浏览器中保留。

语法
Session.collection|property|method

集合
Contents 包含已用脚本命令添加到会话中的项目。
StaticObjects 包含通过 <OBJECT> 标记创建的并给定了会话作用域的对象。


属性
CodePage 将用于符号映射的代码页。
LCID 现场标识。
SessionID 返回用户的会话验证。
Timeout 应用程序会话状态的超时时限,以分钟为单位。


方法
Abandon 该方法破坏 Session 对象并释放其资源。


事件
global.asa 文件中声明下列事件的脚本。

Session_OnEnd
Session_OnStart


有关以上事件及 global.asa 文件的详细信息, 请参阅 Global.asa 参考.

注释
您可以在 Session 对象中存储值。存储在 Session 对象中的信息在会话及会话作用域内有效。下列脚本演示两种类型的变量的存储方式。

<%
Session("username") = "Janine"
Session("age") = 24
%>

但是,如果您将对象存储在 Session对象中,而且您使用 VBScript 作为主脚本语言。则必须使用关键字 Set。如下列脚本所示。

<% Set Session("Obj1") = Server.CreateObject("MyComponent.class1") %>

然后,您就可以在后面的 Web 页上调用 MyComponent.class1 揭示的方法和属性,其调用方法如下:

<% Session("Obj1").MyMethod %>

也可以通过展开该对象的本地副本并使用下列脚本来调用:

<%
Set MyLocalObj1 = Session("Obj1")
MyLocalObj1.MyObjMethod
%>

创建有会话作用域的对象的另一种方法是在 global.asa 文件中使用 <OBJECT> 标记。

但是不能在 Session 对象中存储内建对象。例如,下面每一行都将返回错误。

<%
Set Session("var1") = Session
Set Session("var2") = Request
Set Session("var3") = Response
Set Session("var4") = Server
Set Session("var5") = Application
%>

在将对象存储到 Session 对象之前,必须了解它使用的是哪一种线程模型。只有那些标记为“Both”的对象才能存储在没有锁定单线程会话的 Session 对象中。详细信息, 请参阅“创建 ASP 组件”中的“选择线程模型”。

若您将一个数组存储在 Session对象中,请不要直接更改存储在数组中的元素。例如,下列的脚本无法运行。

<% Session("StoredArray")(3) = "new value" %>

这是因为 Session对象是作为集合被实现的。数组元素 StoredArray(3) 未获得新的赋值。而此值将包含在 Application 对象集合中,并将覆盖此位置以前存储的任何信息。

我们极力建议您在将数组存储在 Session对象中时,在检索或改变数组中的对象前获取数组的一个副本。在对数组操作时,您应再将数组全部存储在 Session 对象中,这样您所做的任何改动将被存储下来。下列的脚本对此进行演示。

---file1.asp---
<%
'Creating and initializing the array
Dim MyArray()
Redim MyArray(5)
MyArray(0) = "hello"
MyArray(1) = "some other string"

'Storing the array in the Session object
Session("StoredArray") = MyArray

Response.Redirect("file2.asp")
%>

---file2.asp---
<%
'Retrieving the array from the Session Object
'and modifying its second element
LocalArray = Session("StoredArray")
LocalArray(1) = " there"

'printing out the string "hello there"
Response.Write(LocalArray(0)&LocalArray(1))

'Re-storing the array in the Session object
'This overwrites the values in StoredArray with the new values
Session("StoredArray") = LocalArray
%>

示例
下列代码将字符串 MyName 分配给名为 name 的会话变量,并给名为 year 的会话变量指定一个值,而且为 some.Obj 组件的实例指定一个名为 myObj 的变量。

Session("name") = "MyName"
Session("year") = 96
Set Session("myObj") = Server.CreateObject("someObj")
%>

 


[此贴子已经被作者于2006-8-9 10:52:16编辑过]

- ffffffff8 2006-07-27 17:33

ASP分页技术


<%''本程序文件名为:Pages.asp%>
<%''包含ADO常量表文件adovbs.inc,可从"\Program Files\Common Files\System\ADO"目录下拷贝%>
<!--#Include File="adovbs.inc"-->
<%''*建立数据库连接,这里是Oracle8.05数据库
Set conn=Server.CreateObject("ADODB.Connection")
conn.Open "Provider=msdaora.1;Data Source=YourSrcName;User ID=YourUserID;Password=YourPassword;"

Set rs=Server.CreateObject("ADODB.Recordset") ''创建Recordset对象
rs.CursorLocation=adUseClient ''设定记录集指针属性
''*设定一页内的记录总数,可根据需要进行调整
rs.PageSize=10

''*设置查询语句
StrSQL="Select ID,姓名,住址,电话 from 通讯录 Order By ID"
rs.Open StrSQL,conn,adOpenStatic,adLockReadOnly,adCmdText
%>
<HTML>
<HEAD>
<title>分页示例</title>
<script language=javascript>
//点击"[第一页]"时响应:
function PageFirst()
{
document.MyForm.CurrentPage.selectedIndex=0;
document.MyForm.CurrentPage.onchange();
}
//点击"[上一页]"时响应:
function PagePrior()
{
document.MyForm.CurrentPage.selectedIndex--;
document.MyForm.CurrentPage.onchange();
}
//点击"[下一页]"时响应:
function PageNext()
{
document.MyForm.CurrentPage.selectedIndex++;
document.MyForm.CurrentPage.onchange();
}
//点击"[最后一页]"时响应:
function PageLast()
{
document.MyForm.CurrentPage.selectedIndex=document.MyForm.CurrentPage.length-1;
document.MyForm.CurrentPage.onchange();
}
//选择"第?页"时响应:
function PageCurrent()
{ //Pages.asp是本程序的文件名
document.MyForm.action='Pages.asp?Page='+(document.MyForm.CurrentPage.selectedIndex+1)
document.MyForm.submit();
}
</Script>
</HEAD>
<BODY bgcolor="#ffffcc" link="#008000" vlink="#008000" alink="#FF0000"">

<%IF rs.Eof THEN
Response.Write("<font size=2 color=#000080>[数据库中没有记录!]</font>")
ELSE
''指定当前页码
If Request("CurrentPage")="" Then
rs.AbsolutePage=1
Else
rs.AbsolutePage=CLng(Request("CurrentPage"))
End If

''创建表单MyForm,方法为Get
Response.Write("<form method=Get name=MyForm>")
Response.Write("<p align=center><font size=2 color=#008000>")
''设置翻页超链接
if rs.PageCount=1 then
Response.Write("[第一页] [上一页] [下一页] [最后一页] ")
else
if rs.AbsolutePage=1 then
Response.Write("[第一页] [上一页] ")
Response.Write("[<a href=javascript:PageNext()>下一页</a>] ")
Response.Write("[<a href=javascript:PageLast()>最后一页</a>] ")
else
if rs.AbsolutePage=rs.PageCount then
Response.Write("[<a href=javascript:PageFirst()>第一页</a>] ")
Response.Write("[<a href=javascript:PagePrior()>上一页</a>] ")
Response.Write("[下一页] [最后一页] ")
else
Response.Write("[<a href=javascript:PageFirst()>第一页</a>] ")
Response.Write("[<a href=javascript:PagePrior()>上一页</a>] ")
Response.Write("[<a href=javascript:PageNext()>下一页</a>] ")
Response.Write("[<a href=javascript:PageLast()>最后一页</a>] ")
end if
end if
end if

''创建下拉列表框,用于选择浏览页码
Response.Write("第<select size=1 name=CurrentPage onchange=PageCurrent()>")
For i=1 to rs.PageCount
if rs.AbsolutePage=i then
Response.Write("<option selected>"&i&"</option>") ''当前页码
else
Response.Write("<option>"&i&"</option>")
end if
Next
Response.Write("</select>页/共"&rs.PageCount&"页 共"&rs.RecordCount&"条记录</font><p>")
Response.Write("</form>")

''创建表格,用于显示
Response.Write("<table align=center cellspacing=1 cellpadding=1 border=1")
Response.Write(" bordercolor=#99CCFF bordercolordark=#b0e0e6 bordercolorlight=#000066>")

Response.Write("<tr bgcolor=#ccccff bordercolor=#000066>")

Set Columns=rs.Fields

''显示表头
For i=0 to Columns.Count-1
Response.Write("<td align=center width=200 height=13>")
Response.Write("<font size=2><b>"&Columns(i).name&"</b></font></td>")
Next
Response.Write("</tr>")
''显示内容
For i=1 to rs.PageSize
Response.Write("<tr bgcolor=#99ccff bordercolor=#000066>")
For j=0 to Columns.Count-1
Response.Write("<td><font size=2>"&Columns(j)&"</font></td>")
Next
Response.Write("</tr>")

rs.movenext
if rs.EOF then exit for
Next

Response.Write("</table>")

END IF
%>
</BODY>
</HTML>


[此贴子已经被作者于2006-8-9 10:57:28编辑过]

- ffffffff8 2006-07-27 17:34

很多朋友想用SQL2000数据库的编程方法,但是却又苦于自己是学ACCESS的,对SQL只是一点点的了解而已,这里我给大家提供以下参考---将ACCESS转化成SQL2000的方法和注意事项

一,首先,我说的是在ACCESS2000,SQL2000之间转换,其他的我也还没有尝试过,希望大家多多试验,肯定是有办法的;

二,转换的方法

1,打开”控制面板“下”管理工具“中的”数据库源“;

2,按”添加“添加一个新的数据源,在选择栏里选“Driver do microsoft Access (*.mdb)”,完成后将出现一个框,在“数据库源”里面输入你想写的名称,我取名叫“ABC”,说明不需要填,接着,按下面的选择,寻找你的数据库地址和选中(注意,请先备份自己的ACCESS数据库),然后确定。数据源在这里建好了,剩下转换了。

3,打开SQL2000企业管理器,进入数据库,新建一个空的数据库“ABC”;

4,选择新建立的数据库,按鼠标右键,选择“所有任务”下“导入数据”,按“下一步”继续;

5,在数据库源下拉但中选择”Driver do microsoft Access(*.mdb)“,在”用户/系统DSN“中,选种你刚才添加的”ABC“,按 ”下一步“;

6,“目的”不需要修改,选择服务器(一般下为自己的本机local,也可以选择服务器地址或者局域网地址,确定你的权限是否可以操作,),使用WINDOWS 身份验证指用自己的系统管理员身份操作,使用SQL身份操作验证可以用于网站的操作,推荐用后者;

7,选上使用SQL身份操作验证后,填写你的用户名和密码,我自己选择的是系统默认号码sa,****,数据库选择刚新建的ABC,按下一步;

8,这一步的两个单项选择,从数据源复制表和视图与用一条查询指令指定要传输的数据,选择前者,按下一步继续;

9,这里将出现你自己ACCESS数据库的表,按全选后,下一步;

10,DTS导入/导出向导,看立即运行被选中按下一步,

11,按完成继续;

12,这个步骤你将看到你的数据被导入SQL2000里面,当出现已经成功把XXX个表导入到数据库的字样,而且所有的表前面都有绿色的勾,就表示成功导入所有数据,如果中途出现问题或者表前面有红色的叉的话,说明该表没有成功导入,这时就要回去查看自己的操作是否正确了.

三,数据修改

1,由于SQL2000里面没有自动编号,所以你的以自动编号设置的字段都会变成非空的字段,这就必须手工修改这些字段,并把他的标示选择是,种子为1,增量为1,

2,另外,ACCESS2000转换成SQL2000后,原来属性为是/否的字段将被转换成非空的bit,这时候你必须修改成自己想要的属性了;

3,另外,大家要注意对时间函数的把握.ACCESS与SQL是有很多不同的.

ACCESS转MS SQL数据库的几点经验

1.ACCESS的数据库中的自动编号类型在转化时,SQL server并没有将它设为自动编号型,我们需在SQL创建语句中加上identity,表示自动编号!

2.转化时,跟日期有关的字段,SQL SERVER默认为smalldatetime型,我们最好将它变为datetime型,因为datetime型的范围比smalldatetime型大。我遇见这种情况,用smalldatetime型时,转化失败,而用datetime型时,转化成功。

3.对此两种数据库进行操作的SQL语句不全相同,例如:在对ACCESS数据库进行删除纪录时用:delete * from user where id=10,而对SQL SERVER数据库进行删除是用:delete user where id=10.

4.日期函数不相同,在对ACCESS数据库处理中,可用date()、time()等函数,但对SQL SERVER数据库处理中,只能用datediff,dateadd等函数,而不能用date()、time()等函数。

5.在对ACCESS数据库处理中,SQL语句中直接可以用一些VB的函数,像cstr()函数,而对SQL SERVER数据库处理中,却不能用。


[此贴子已经被作者于2006-9-30 11:17:45编辑过]

- ffffffff8 2006-07-27 17:35

此为占位。。。。。

- ffffffff8 2006-07-27 17:35

左栏浮动广告
<script language=javascript>var specialcode="<DIV id=searchspe style='Z-INDEX: <script language=javascript>var specialcode="<DIV id=searchspe style='Z-INDEX: 100; right: 1px; POSITION: absolute; TOP: 180px;'><TABLE cellSpacing=0 cellPadding=0 width=150 style='border-left:1px solid #2E6287;border-top:1px solid #2E6287;border-right:1px solid #2E6287;font-size:12px;color:#ffffff; border-bottom-color:#2E6287; border-bottom-width:1px'><TR bgcolor=#2E6287><TD height=20> 推荐↓</TD><TD style='CURSOR: hand' onclick=searchspe.style.visibility='hidden' width=30>关 闭</TD></TR></TABLE><table border='1' width='150' height='500' bordercolor='#2E6287'><tr><td>广告内容</td></tr></table></DIV>";document.write(specialcode);lastScrollY=0;function heartBeat0(){diffY=document.body.scrollTop;percent=.1*(diffY-lastScrollY);if(percent>0)percent=Math.ceil(percent);else percent=Math.floor(percent);document.all.searchspe.style.pixelTop+=percent;lastScrollY=lastScrollY+percent;}window.setInterval("heartBeat0()",1);</script>

右栏浮动广告
<script language=javascript>var specialcode="<DIV id=searchspe style='Z-INDEX: 100; left: 1px; POSITION: absolute; TOP: 50px;'><TABLE cellSpacing=0 cellPadding=0 width=360 style='border-left:1px solid #333333;border-top:1px solid #333333;border-right:1px solid #333333;font-size:12px;color:#ffffff'><TR bgcolor=#2E6287><TD height=20> 推荐↓</TD><TD style='CURSOR: hand' onclick=searchspe.style.visibility='hidden' width=30>关 闭</TD></TR></TABLE><table border='1' width='150' id='table1' bordercolor='#2E6287' height='500'><tr><td>广告内容</td></tr></table></DIV>";document.write(specialcode);lastScrollY=0;function heartBeat0(){diffY=document.body.scrollTop;percent=.1*(diffY-lastScrollY);if(percent>0)percent=Math.ceil(percent);else percent=Math.floor(percent);document.all.searchspe.style.pixelTop+=percent;lastScrollY=lastScrollY+percent;}window.setInterval("heartBeat0()",1);</script>

左栏固定广告
<DIV id=searchspe style='Z-INDEX: 100; left: 1px; POSITION: absolute; TOP: 50px;'><TABLE cellSpacing=0 cellPadding=0 width=360 style='border-left:1px solid #333333;border-top:1px solid #333333;border-right:1px solid #333333;font-size:12px;color:#ffffff'><TR bgcolor=#2E6287><TD height=20> 推荐↓</TD><TD style='CURSOR: hand' onclick=searchspe.style.visibility='hidden' width=30>关 闭</TD></TR></TABLE>广告内容</DIV>

右栏固定广告
<DIV id=searchspe style='Z-INDEX: 100; right: 1px; POSITION: absolute; TOP: 50px;'><TABLE cellSpacing=0 cellPadding=0 width=360 style='border-left:1px solid #333333;border-top:1px solid #333333;border-right:1px solid #333333;font-size:12px;color:#ffffff'><TR bgcolor=#2E6287><TD height=20> 推荐↓</TD><TD style='CURSOR: hand' onclick=searchspe.style.visibility='hidden' width=30>关 闭</TD></TR></TABLE>广告内容</DIV>


漂浮广告代码
<div id="img" style="position:absolute;; width: 200; height: 151">广告内容</div>
<script LANGUAGE="JavaScript">
var xPos = 20;
var yPos = 10;
img.style.left= xPos;
img.style.top = yPos;
var step = 1;
var delay = 30;
var width,height,Hoffset,Woffset;
var y = 1;
var x = 1;
var interval;
img.visibility = "visible";

function changePos()
{
width = document.body.clientWidth;
height = document.body.clientHeight;
Hoffset = img.offsetHeight;
Woffset = img.offsetWidth;
if (y)
{
yPos = yPos + step;
}
else
{
yPos = yPos - step;
}
if (yPos < 0)
{
y = 1;
yPos = 0;
}
if (yPos >= (height - Hoffset))
{
y = 0;
yPos = (height - Hoffset);
}
if (x)
{
xPos = xPos + step;
}
else
{
xPos = xPos - step;
}
if (xPos < 0)
{
x = 1;
xPos = 0;
}
if (xPos >= (width - Woffset))
{
x = 0;
xPos = (width - Woffset);
}
img.style.left = xPos + document.body.scrollLeft;
img.style.top = yPos + document.body.scrollTop;
}

function start()
{
interval = setInterval('changePos()', delay);
}

function pause_resume()
{
clearInterval(interval);
}
start();
</script>



固定对联
<DIV id=searchspe style='Z-INDEX: 100; right: 5px; POSITION: absolute; TOP: 50px;'><TABLE cellSpacing=0 cellPadding=0 width=150 style='font-size:12px;color:#ffffff'><TR bgcolor=#C54A00><TD height=20> 推荐↓</TD><TD style='CURSOR: hand' onclick=searchspe.style.visibility='hidden' width=30>关 闭</TD></TR></TABLE>
广告内容</DIV><DIV id=searchspe2 style='Z-INDEX: 100; left: 5px; POSITION: absolute; TOP: 50px;'><TABLE cellSpacing=0 cellPadding=0 width=150 style='font-size:12px;color:#ffffff'><TR bgcolor=#12BDFF><TD height=20> 推荐↓</TD><TD style='CURSOR: hand' onclick=searchspe2.style.visibility='hidden' width=30>关 闭</TD></TR></TABLE>
广告内容</DIV>


随动对联
<script language=javascript>function close163news(){searchspe.style.visibility='hidden';searchspe2.style.visibility='hidden';} var specialcode="<DIV id=searchspe style='Z-INDEX: 100; right: 1px; POSITION: absolute; TOP: 30px;'><TABLE cellSpacing=0 cellPadding=0 width=150 style='font-size:12px;color:#ffffff'><TR bgcolor=#C54A00><TD height=20> 推荐↓</TD><TD style='CURSOR: hand' onclick='close163news()' width=30>关 闭</TD></TR></TABLE>广告内容</DIV>";document.write(specialcode);lastScrollX=0;function heartBeat0(){diffY=document.body.scrollTop;percent=.1*(diffY-lastScrollX);if(percent>0)percent=Math.ceil(percent);else percent=Math.floor(percent);document.all.searchspe.style.pixelTop+=percent;lastScrollX=lastScrollX+percent;}window.setInterval("heartBeat0()",1);var specialcode2="<DIV id=searchspe2 style='Z-INDEX: 100; left: 1px; POSITION: absolute; TOP: 30px;'><TABLE cellSpacing=0 cellPadding=0 width=150 style='font-size:12px;color:#ffffff'><TR bgcolor=#12BDFF><TD height=20> 推荐↓</TD><TD style='CURSOR: hand' onclick='close163news()' width=30>关 闭</TD></TR></TABLE>广告内容</DIV>";document.write(specialcode2);lastScrollY=0;function heartBeat1(){diffY=document.body.scrollTop;percent=.1*(diffY-lastScrollY);if(percent>0)percent=Math.ceil(percent);else percent=Math.floor(percent);document.all.searchspe2.style.pixelTop+=percent;lastScrollY=lastScrollY+percent;}window.setInterval("heartBeat1()",1);</script>

qq好友上线广告代码
<!-- 代码开始 请将下面的代码放到body结束标签之前-->
<DIV id=eMeng
style="BORDER-RIGHT: #455690 1px solid; BORDER-TOP: #a6b4cf 1px solid; Z-INDEX: 99999; LEFT: 64px; VISIBILITY: hidden; BORDER-LEFT: #a6b4cf 1px solid; WIDTH: 168px; BORDER-BOTTOM: #455690 1px solid; POSITION: absolute; TOP: 374px; HEIGHT: 115px; BACKGROUND-COLOR: #c9d3f3">
<TABLE style="BORDER-TOP: #ffffff 1px solid; BORDER-LEFT: #ffffff 1px solid"
cellSpacing=0 cellPadding=0 width="100%" bgColor=#cfdef4 border=0>
<TBODY>
<TR>
<TD
style="FONT-SIZE: 12px; BACKGROUND-IMAGE: none; COLOR: #0f2c8c"
width=30 height=24> </TD>
<TD
style="PADDING-LEFT: 4px; FONT-WEIGHT: normal; FONT-SIZE: 12px; BACKGROUND-IMAGE: none; COLOR: #1f336b; PADDING-TOP: 4px"
vAlign=center width="100%"><span class="style13">本站提示</span></TD>
<TD vAlign=center align=right width=19 2px? padding-top: 2px;
padding-right:><SPAN title=关闭
style="FONT-WEIGHT: bold; FONT-SIZE: 12px; CURSOR: hand; COLOR: red; MARGIN-RIGHT: 4px"
onclick=closeDiv()>×</SPAN></TD></TR>
<TR>
<TD
style="PADDING-RIGHT: 1px; BACKGROUND-IMAGE: none; PADDING-BOTTOM: 1px"
colSpan=3 height=90><DIV
style="BORDER-RIGHT: #b9c9ef 1px solid; PADDING-RIGHT: 13px; BORDER-TOP: #728eb8 1px solid; PADDING-LEFT: 13px; FONT-SIZE: 12px; PADDING-BOTTOM: 13px; BORDER-LEFT: #728eb8 1px solid; WIDTH: 100%; COLOR: #1f336b; PADDING-TOP: 18px; BORDER-BOTTOM: #b9c9ef 1px solid; HEIGHT: 100%">
<div align="left"> <span style="text-decoration: none">
<FONT
color=#FF0000>仿造qq好友上线<br>
<center> </center>
</FONT></span></div>
</DIV></td></tr></table>
<SCRIPT language=JavaScript>
window.onload = getMsg;
window.onresize = resizeDiv;
window.onerror = function(){}
var divTop,divLeft,divWidth,divHeight,docHeight,docWidth,objTimer,i = 0;
function getMsg()
{
try{
divTop = parseInt(document.getElementById("eMeng").style.top,10)
divLeft = parseInt(document.getElementById("eMeng").style.left,10)
divHeight = parseInt(document.getElementById("eMeng").offsetHeight,10)
divWidth = parseInt(document.getElementById("eMeng").offsetWidth,10)
docWidth = document.body.clientWidth;
docHeight = document.body.clientHeight;
document.getElementById("eMeng").style.top = parseInt(document.body.scrollTop,10) + docHeight + 10;// divHeight
document.getElementById("eMeng").style.left = parseInt(document.body.scrollLeft,10) + docWidth - divWidth
document.getElementById("eMeng").style.visibility="visible"
objTimer = window.setInterval("moveDiv()",10)
}
catch(e){}
}

function resizeDiv()
{
try{
divHeight = parseInt(document.getElementById("eMeng").offsetHeight,10)
divWidth = parseInt(document.getElementById("eMeng").offsetWidth,10)
docWidth = document.body.clientWidth;
docHeight = document.body.clientHeight;
document.getElementById("eMeng").style.top = docHeight - divHeight + parseInt(document.body.scrollTop,10)
document.getElementById("eMeng").style.left = docWidth - divWidth + parseInt(document.body.scrollLeft,10)
}
catch(e){}
}

function moveDiv()
{
try
{
if(parseInt(document.getElementById("eMeng").style.top,10) <= (docHeight - divHeight + parseInt(document.body.scrollTop,10)))
{
window.clearInterval(objTimer)
objTimer = window.setInterval("resizeDiv()",1)
}
divTop = parseInt(document.getElementById("eMeng").style.top,10)
document.getElementById("eMeng").style.top = divTop - 1
}
catch(e){}
}
function closeDiv()
{
document.getElementById('eMeng').style.visibility='hidden';
if(objTimer) window.clearInterval(objTimer)
}
</SCRIPT>
<!-- 代码复制结束 -->
[此贴子已经被作者于2007-1-16 14:28:40编辑过]

页码: 1 2 3 4 5 6 7 8 9 10 ... 51