我想试一下在asp中怎样调用自定义函数,于是建了一个文件如下图所示,浏览器调试有如下提示,望大侠帮忙

我想试一下在asp中怎样调用自定义函数,于是建了一个文件如下图所示,浏览器调试有如下提示,望大侠帮忙,第1张

function xianshi(x,y)

xianshi= x&“<br>”

xianshi=xianshi& (y+1 )

end function

调用方式 <%=xianshi(a,b)%>

另外一种

Sub xianshi(x,y)

responsewrite x&“<br>”

responsewrite y+1

End Sub 调用方式

Call xianshi(a,b)

两种根据情况而定 采纳推荐哦

使用SQL SERVER 2000的全文检索功能

步骤:

1、 打开NorthWind数据库,右键Products表,选择“全文索引表”,“在表上定义全文索引”,为其创建全文目录。在“全文索引向导”中,选择你需要全文查询条件的列(可以是文本或图像),我们选择Productname和QuantityPerUnit列。然后下一步,输入一个新的目录proCatalog,点击下一步。在填充调度一项里,我们暂时不建立填充调度。接着“下一步”,全成全文索引向导。完成后,我们可以看到在“全文目录”里,多了一个全文目录proCatalog。右键proCatalog属性,可以看到其状态、表、调度情况。

2、 右键全文目录proCatalog, “启动完全填充”,系统会出现“全文目录填充成功启动”。

3、 这时,我们可以使用Transact-SQL进行全文检索了,我们使用CONTAINS、FREETEXT等谓词。如:

检索ProductName中,即包含b又包含c的所有列

SELECT

FROM Products

WHERE CONTAINS(ProductName, '"c" and "b" ')

检索ProductName中,即包含chai chang tofu之一的所有列

SELECT

FROM Products

WHERE FREETEXT(ProductName, 'chai chang tofu ')

我们还可以使用CONTAINSTABLE、FREETEXTTABLE等

4、 我们可以用NET创建WEB或Form客户端,提供一个良好的全文检索界面,使自己的应用程序得到扩展

参考:

全文查询有关的系统存储过程

(1)启动数据库的全文处理功能(sp_fulltext_datebase);

(2)建立全文目录(sp_fulltext_catalog);

(3)在全文目录中注册需要全文索引的表(sp_fulltext_table);

(4)指出表中需要全文检索的列名(sp_fulltext_column)

(5)为表创建全文索引(sp_fulltext_table);

(6)填充全文索引(sp_fulltext_catalog)。

全文查询支持

Microsoft® SQL Server™ 2000 在接收带全文构造的 Transact-SQL 语句时,使用全文提供程序从 Microsoft 搜索服务检索所需信息。全文构造是 CONTAINS 或 FREETEXT 谓词,或者是 CONTAINSTABLE 或 FREETEXTTABLE 行集函数。如果不知道包含搜索条件的列,全文构造可以在全文索引中引用多列。该进程的流程如下图所示。

这一进程涉及的步骤包括:

应用程序给 SQL Server 实例发送带全文构造的 Transact-SQL 语句。

SQL Server 关系引擎通过查询系统表验证全文构造,确定全文索引是否覆盖列引用。关系引擎将每个 SQL 语句简化为一系列行集 *** 作,并使用 OLE DB 将这些 *** 作传递给基础组件,通常是存储引擎。关系引擎通过全文提供程序而不是存储引擎,将任何全文构造转换成对行集的请求。请求的行集是满足搜索条件和等级的键集,而这个等级表示每个键的数据满足搜索条件的程度。向全文提供程序发送的行集请求命令包括全文检索条件。

全文提供程序验证请求并将搜索条件更改为由Microsoft 搜索服务的查询支持组件使用的形式。将请求发送到搜索服务。

查询支持组件使用搜索引擎组件从全文索引析取所请求的数据。然后以行集的形式将这些数据传递回全文提供程序。

全文提供程序将这个行集返回给关系引擎。

关系引擎将它从存储引擎和全文提供程序收到的所有行集进行组合,以生成发送回客户端的最终结果集。

全文目录和索引

Microsoft® SQL Server™ 2000 全文索引为在字符串数据中进行复杂的词搜索提供有效支持。全文索引存储关于重要词和这些词在特定列中的位置的信息。全文查询利用这些信息,可快速搜索包含具体某个词或一组词的行。

全文索引包含在全文目录中。每个数据库可以包含一个或多个全文目录。一个目录不能属于多个数据库,而每个目录可以包含一个或多个表的全文索引。一个表只能有一个全文索引,因此每个有全文索引的表只属于一个全文目录。

全文目录和索引不存储在它们所属的数据库中。目录和索引由 Microsoft 搜索服务分开管理。

全文索引必须在基表上定义,而不能在视图、系统表或临时表上定义。 全文索引的定义包括:

能唯一标识表中各行的列(主键或候选键),而且不允许 NULL 值。

索引所覆盖的一个或多个字符串列。

全文索引由键值填充。每个键的项提供与该键相关联的重要词(干扰词或终止词除外)、它们所在的列和它们在列中的位置等有关信息。

格式化文本字符串(如 Microsoft® Word™ 文档文件或 HTML 文件)不能存储在字符串或 Unicode 列中,因为这些文件中的许多字节包含不构成有效字符的数据结构。数据库应用程序可能仍需要访问这些数据并对其应用全文检索。因为 image 列并不要求每一字节都构成一个有效字符,所以许多站点将这类数据存储在 image 列中。SQL Server 2000 引入了对存储在 image 列中的这些类型的数据执行全文检索的能力。SQL Server 2000 提供筛选,可从 Microsoft Office™ 文件(doc、xls 和 ppt 文件)、文本文件(txt 文件)及 HTML 文件(htm 文件)中析取文本化数据。设计表时除包括保存数据的 image 列外,还需包括绑定列来保存存储在 image 列中的数据格式的文件扩展名。可以创建引用 image 列和绑定列的全文索引,以便在存储于 image 列中的文本化信息上启用全文检索。SQL Server 2000 全文检索引擎使用绑定列中的文件扩展名信息,选择从列中析取文本化数据的合适的筛选。

全文索引是用于执行两个 Transact-SQL 谓词的组件,以便根据全文检索条件对行进行测试:

CONTAINS

FREETEXT

Transact-SQL 还包含两个返回符合全文检索条件的行集的函数:

CONTAINSTABLE

FREETEXTTABLE

SQL Server 在内部将搜索条件发送给 Microsoft 搜索服务。Microsoft 搜索服务查找所有符合全文检索条件的键并将它们返回给 SQL Server。SQL Server 随后使用键的列表来确定表中要处理的行。

全文索引

对 Microsoft® SQL Server™ 2000 数据的全文支持涉及两个功能:对字符数据发出查询的能力和创建及维护基础索引以简化这些查询的能力。

全文索引在许多地方与普通的 SQL 索引不同。

普通 SQL 索引

全文索引

存储时受定义它们所在的数据库的控制。

存储在文件系统中,但通过数据库管理。

每个表允许有若干个普通索引。

每个表只允许有一个全文索引。

当对作为其基础的数据进行插入、更新或删除时,它们自动更新。

将数据添加到全文索引称为填充,全文索引可通过调度或特定请求来请求,也可以在添加新数据时自动发生。

不分组。

在同一个数据库内分组为一个或多个全文目录。

使用 SQL Server 企业管理器、向导或 Transact-SQL 语句创建和除去。

使用 SQL Server 企业管理器、向导或存储过程创建、管理和除去。

这些差异使大量管理任务变得不可缺少。全文管理是在几个层次上实施的:

服务器

可以对服务器范围的某些属性(如 resource_usage)加以设置,以便增加或减少全文服务所使用的系统资源数量。

说明 全文引擎作为名为 Microsoft 搜索的服务在 Microsoft Windows NT® Server 和 Microsoft Windows® 2000 Server 上运行。对于 Microsoft SQL Server 个人版,Microsoft 搜索服务不可用。尽管这意味着 Microsoft 搜索服务既未安装在 Microsoft Windows 95/98 上,也未安装在 Windows NT 工作站或 Windows 2000 Professional 客户端上,但这些客户端在连接到 SQL Server 标准版安装或企业版实例时可以使用这项服务。

数据库

必须启用数据库才能使用全文服务。可以在已启用的数据库中创建和除去一个或多个全文目录的元数据。

如果能输入数字,就代表赋值是正确的,可能变量类型不统一,用clng转换一下应该可以了!

do while not rseof

tmp=rs("id")

%>

<% if clng(tmp)>clng(num) then %>

<img src="<%=rs("pic")%>" width=120 />

<%

exit do

end if %>

<%

rsmovenext

loop

第二个问题的意思不太明白,说明白一下!

直接从数据库输出肯定是不能够运行函数的,asp中没有像JS中的eval函数,不过你可以将从数据库中读取出来的函数写入到一个asp文件中,然后这个文件使用include 包含到需要的页面文件中就可以了。

例如 输出内容

function showit(str)

responsewrite str

end function

sub showit()

responsewrite "你好"

end function

我来说说详细点:

sub和function的区别

SUB和FUNCTION有什么不同呢,他们的语法应该怎么构成?

Sub:过程; Function:函数,可以带返回值

语法:

Sub SubName(参数1, 参数2,)

End Sub

Function FunctionName(参数1, 参数2,)

FunctionName = 返回值

End Function

调用方法:

Sub直接用 SubName 参数1, 参数2,

Function如果不要返回值用 FunctionName 参数1, 参数2,

如果要返回值 Result = FunctionName(参数1, 参数2,)

语法是这样,这是对的

Sub SubName(参数1, 参数2,)

End Sub

Function FunctionName(参数1, 参数2,)

FunctionName = 返回值

End Function

调用时:

sub 只能用:

SubName 参数1, 参数2,

函数则:

变量=FunctionName (参数1, 参数2,)

FunctionName 参数1, 参数2,

上面均未讲出根本:

SUB与FUNCTION均可有返回值。所以首先要讲清返回方式:有两种,过程或函数返回,即分配与过程或函数同名的返回变量地址。function分配,但sub不分配。VB用此方式加以区分,VC则用VOID声明不用分配。即如p=aa()若aa()是sub则什么也得不到,还会报错。但函数则会得到数值。其次,参数返回,VB中缺省用地址传参,即能返回。但声明为BYVAL即值传参,则不可返回,所以,不存在灵活性的差别。比如函数function bb(a,b), 调用时可以bb m, n也可以p=bb(m,n) 实际,如果确认不会失败,才能用SUB,否则,必须要用FUNCTION以确认是否成功或取得返回值。所以编程,应少用SUB,少用 SubName 参数1, 参数2,的调用方式。

sub是过程不需要返回值,function是函数,需要返回值,如下:

Function NameOfFunction(parameter1, parameter2)

'some code

NameOfFunction = return value

End Function

________________________________________________

Sub NameOfSubRoutine(parameter1, parameter2)

'some code

End Sub

除了function有返回一个值的区别外,我发现在ASP中好像没有多大的区别,我把所有的sub写成FUNCTION好像效果一样。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/12157778.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-21
下一篇2023-05-21

发表评论

登录后才能评论

评论列表(0条)

    保存