主题:  一个计划

5D荣誉版主

职务:普通成员
等级:2
金币:10.0
发贴:658
#12002/9/6 9:55:41
学了这么长时间的ASP了,也做了不少的程序。(没有什么是经典的,混口饭吃) ;)

我体会最深的就是初学的时候我一直是手写代码,
比如什么分页显示,还有一些动态的技术(写起来比较烦)。

后来我有一段时间要在网页里面做一个WINSOCK控件的功能(失败告终,不过体会很深,如果哪位高手曾经做过这方面的东西,麻烦你把方法告诉我!)

现在我的程序大部分都是用服务器端的组件(是在代码里面为可视的界面比如你在你的程序里面插入一个。OCX有界面的组件那么在代码里面显示出来的时候也是有界面的)来做的,
发现它的功能真的很强大开发出来的东西速度也比较快。

比如说下面这一段代码表示了一个服务器端的RECORDSET控件。


---------------------------------------------------------------------------------------------------


-------------------------------------------------------------------------

这段代码表面上看起来好像有一些复杂,
其实在设计的时候是一个可视化的界面你只要用右键去设它的属性就可以链接到不同的数据环境中去。

注::我的这个时候的篇程环境是
Interdev+win2000+iis5.0+SQL SERVER2000
Interdev是安装了服务器扩展的INTERDEV,用它是可以建立工程文件的。

下面我就解释一下上面那段程序。(大家要知道的是在INTERDEV中开发的时候这些代码都是自动生成的)

1。
这一句比较简单了,只是../../_ScriptLibrary/Recordset.ASP是在你建工程文件的时候自动写到你的工程里面的。
除了这个文件夹还写了很多的其它的文件里面,都是一些用脚本写成的服务器端的组件。

2。
    var DBConn = Server.CreateObject('ADODB.Connection');
    DBConn.ConnectionTimeout = Application('pnta_ConnectionTimeout');
    DBConn.CommandTimeout = Application('pnta_CommandTimeout');
    DBConn.CursorLocation = Application('pnta_CursorLocation');
    DBConn.Open(Application('pnta_ConnectionString'), Application('pnta_RuntimeUserName'), Application('pnta_RuntimePassword'));
这一段相信大家都能看的懂,我所要说的是那些APPLICATION变量也是自动生成的。连变量名也是自动生成的。

怎么生成的?在刚开始建完工程之后,你在工程里面继续建立数据环境(其实就是建立数据链接)的时候自动生成的。我们这里的数据环境指SQL SERVER2000

3。
    var cmdTmp = Server.CreateObject('ADODB.Command');
    var rsTmp = Server.CreateObject('ADODB.Recordset');
定义了两个对象。

4。
    cmdTmp.ActiveConnection = DBConn;
    rsTmp.Source = cmdTmp;
    cmdTmp.CommandType = 2;
    cmdTmp.CommandTimeout = 10;
    cmdTmp.CommandText = '"aboutme"';
    rsTmp.CacheSize = 10;
    rsTmp.CursorType = 3;
    rsTmp.CursorLocation = 3;
    rsTmp.LockType = 3;
初始化这两个对象,这些属性都是COMMAND和RECORDSET的标准属性

5。
    Recordset1.setRecordSource(rsTmp);
    Recordset1.open();
    if (thisPage.getState('pb_Recordset1') != null)
        Recordset1.setBookmark(thisPage.getState('pb_Recordset1'));
初始化这个控件的内容。

6。
    function _Recordset1_ctor()
{
    CreateRecordset('Recordset1', _initRecordset1, null);
}
function _Recordset1_dtor()
{
    Recordset1._preserveState();
    thisPage.setState('pb_Recordset1', Recordset1.getBookmark());
}
表示在网页里面加入一个控件Recordset1
getbookmark()是Recordset1的成员(它的具体含义:获取setbookmark设置的当前记录的书签)

这些资料性的东西建议大家去买一本叫Visual Interdev 6 技术内幕的书(900页,计算机技术(译林)精选系列)人民邮电出版社,99元)它讲的很全面,我怎么说也是看它看来的。

************************************
上面的部分写的比较烦,这个时候我是在我的工程里面随便新建了一个文件,拖了一个RECORDSET控件放在里面,并没有设它的属性。
以下为这个网页的全部代码。

<%@ Language=VBScript %>

<% ' VI 6.0 Scripting Object Model Enabled %>

<% if StartPageProcessing() Then Response.End() %>







    
    
    
    
-->






<% ' VI 6.0 Scripting Object Model Enabled %>
<% EndPageProcessing() %>




——--------------------------------------------我一句程序也没有写,全是自动生成的,在程序里面也就看见一个、控件一样的东西,它的用法我就不想多说什么了,相信大家也看的出来,ADO的用法嘛!


我写了这么多,自己也不知道自己想表达什么东西。
我发现很多写ASP的人,初学者,包括几个月前的我,或者一些学了一段时间的ASP的人,都在用手写代码的方式编程。
(我从来没有用过DREAMWEAVER 或MX来做过工程,可能有一些局限吧)
但是我真的很想对那些苦苦的学ASP,或者用ASP却还在手写一些后台的人说INTERDEV真的不错,在后台方面没有话说了,用它绝对可以写出一流的程序(我现在手中在这个工程就是1999年,我们老板在美国的时候请老美写的4000美金一个月!我看了之后真的了解到了ASP的另一个天地)



5D荣誉版主

职务:普通成员
等级:2
金币:10.0
发贴:658
#22002/9/6 9:57:22
我的文笔不好总是不知道该怎么讲,
对不起各位看的人了。
如果有关程序方面的疑问,我尽全力解答。