首页  ·  知识 ·  编程语言
asp初学者疑问及解答(十问)
佚名  wrclub.net  ASP  编辑:dezai  图片来源:网络
1) set conn=server.CreateObject("adodb.connection") DBPath = Server.MapPath("client_db/cdb.mdb")<

1) set conn=server.CreateObject("adodb.connection")
  DBPath = Server.MapPath("client_db/cdb.mdb")
   conn.open "provider=microsoft.jet.oledb.4.0; data source="&DBpath

   db="client_db/cdb.mdb"
   set conn=server.createobject("adodb.connection")
   dbpath=server.mappath(db)
   conn.open"DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&dbpath
   set rs =server.createobject("adodb.recordset")
   好像实现的作用是一样的!不过具体区别是什么呢?

答:
   Microsoft Access Driver (*.mdb)是面向编程人员的接口方式,而
   microsoft.jet.oledb.4.0是内部的数据库引擎的版本。提供Microsoft Access Driver
  (*.mdb)的原因是一旦数据库引擎升级,不用修改代码,程序就能用最新的数据库引
  擎,如果直接使用microsoft.jet.oledb.4.0,而不经过转换的话,某一天升级到5.0,
  而你的程序还是用的4.0。当然,如果旧版本很稳定的话,而且效率符合要求,就没有
  必要升级了,直接使用microsoft.jet.oledb.4.0可以避免新版本带来的问题。


2)在asp中怎么将留言内容作为电子邮件发布到指定

答:
  电子邮件处理提交表单
enctype="text/plain">


  复杂的做法!

  将表单提交到服务器端,用CDONTS或者jmail(是第三方软件,需要安装)就可以了,
如果是用的CDONTS,还需要本机的smtp服务支持。

CDONTS的最简使用:
    Set SendMailmail = Server.CreateObject("CDONTS.NewMail")
    SendMailmail.TO  = "收件人地址"
    SendMailmail.From = "对方回复地址"
    SendMailmail.Subject = SendMailmailTitle '标题
    SendMailmail.Body = SendMailmailContent '内容
    SendMailmail.Send
    Set SendMailmail = nothing

JMail的使用:
    Set oJmail=Server.CreateObject("Jmail.Message")
    oJmail.Logging=false
    oJmail.Silent=True
    oJmail.FromName="发件人地址"
    oJmail.From= "对方回复地址"
    oJmail.CharSet="gb2312"
    oJmail.MailServerUserName = "smtp邮件用户名"
    oJmail.MailServerPassWord = "smtp邮件密码"
    oJmail.ContentTransferEncoding = "base64"

   oJmail.HTMLBody = SendMailmailContent '邮件内容

    oJmail.AddRecipient SendMailmailReciever '收件人地址
    oJmail.Subject = SendMailmailTitle '标题
    oJmail.Send("SMTP服务器地址")

3) 如何刷新页面?

答: 像洪恩的论坛是用 javascript:location.reload()

4)  "Server.CreateObject"和"new ActiveXObject"的区别?

答:
   这两种都是创建activex对象的方法,Server.CreateObject是asp对象Server的方法,
只能用于服务器端。而ActiveXObject是Jscript脚本创建对象的方法,可以用于客户端
和服务器端。如果是在服务器端运行,两者应该是没有差别的。

5)  为什么不能执行AbsolutePage?

答:你的记录集的游标应该设为2以上
     rs.open sql,conn,3,3
   
6) 本地的ASP如何打开网络上的数据库读取数?
 
答:access不可以。sql可以直接开打

7)  将ACCESS数据库移植到SQL2000的问题!!!

答:
    1.数据库导入以后,自动增加字段需要重写,所有的数字类型需要增加长度,最好用
   decimal。
    2.所有的默认值都丢失了。主要是数字类型和日期类型。
    3.所有now(),time(),date()要改成getdate()。
    4.所有datediff('d', time1, time2)要改成datediff(day, time1, time2)
    5.有可能一些true/false类型不能使用,要变为1/0。
    6.备注类型要通过cast(column as varchar)来使用。
   7.CursorType要改成1,也就是打开数据库时要给出第一个数字参数为1,否则记录可能
    显示不完整。
   8.isnull(rowname)要改成rowname = null

8) 如何制作页面分离的计数器

答:

页面分离的计数器txtcounter.asp代码:

<%
CountFile=Server.MapPath("txtcounter.txt")
Set FileObject=Server.CreateObject("Scripting.FileSystemObject")
Set Out=FileObject.OpenTextFile(CountFile,1,FALSE,FALSE)
counter=Out.ReadLine
Out.Close
SET FileObject=Server.CreateObject("Scripting.FileSystemObject")
Set Out=FileObject.CreateTextFile(CountFile,TRUE,FALSE)
Application.lock
counter= counter + 1
Out.WriteLine(counter)
Application.unlock
Response.Write"document.write("&counter&")"
'为了在页面正确显示计数器的值,调用VBScript函数Document.write
Out.Close
%>

在要计数的页面加入如下的代码:


您是第



位来客



9)建表问题

问题:
1)怎么删除一个“字段”。。。
drop 是删这个表, delete光把内容删了~~
(2)设置字段类型为 备注 的 命令是什么?(怎么找我也找不到了~~)
我用text后,进到access2000后看它的属性是文本,不是我想要的备注,
还有就是varchar 的属性也是文本,它们一样吗?
(3)就是6k用来存储“帖子内容” 的字段是什么啊?
文本还是备注,是用text 建的吗?
(4)
<%
server.scriptTimeout="30"
set conn=Server.CreateObject("ADODB.Connection")
conn.open="driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("bbs.
mdb")
conn.execute("create table gonggao (id int IDENTITY (1,1),zhuti varchar(255),nam
e varchar(20),body text,riqi datetime,bd int default 0)")
%>

错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access Driver] CREATE TABLE 语句中的语法错误。
/lx/up.asp, 第 5 行有什么问题吗?我把 default 0 和 identity(1,1)去掉好象就可以了~~不知道怎么办!
我现在就是想加上这个啊!

解答:

1.alter table 表名 drop 字段名 就可以删除字段了
2.就是text啊。文本应该是varchar啊。备注就是text
3.当然是备注类型了。最多存储64k,post一个表单域100k.
4.odbc不支持default设置默认值,请用oledb驱动。


=====================
10) ASP.NET与ASP的不同?
=================

答:
   ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象,这就明显产生以下几个问题:
  1、代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。
  2、代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。
  3、弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。  
  以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。那么,ASP.Net有哪些改进呢?
  ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++ , VB , JS等等,当然,最合适的编程语言还是MS为.Net Frmaework专门推出的C(读c sharp),它可以看作是VC和Java的混合体吧,尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高,你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。 

本文作者:佚名 来源:wrclub.net
CIO之家 www.ciozj.com 微信公众号:imciow
   
免责声明:本站转载此文章旨在分享信息,不代表对其内容的完全认同。文章来源已尽可能注明,若涉及版权问题,请及时与我们联系,我们将积极配合处理。同时,我们无法对文章内容的真实性、准确性及完整性进行完全保证,对于因文章内容而产生的任何后果,本账号不承担法律责任。转载仅出于传播目的,读者应自行对内容进行核实与判断。请谨慎参考文章信息,一切责任由读者自行承担。
延伸阅读