标题：declare
vb中Declare 语句
语法和引用用于在模块级别中声明对动态链接库 (DLL) 中外部过程的引用。
语法 1[Public | Private] Declare Sub name Lib "libname" [Alias "aliasname"] [([arglist])]
语法 2[Public | Private] Declare Function name Lib "libname" [Alias "aliasname"] [([arglist])] [As type]Declare 
语句的语法包含下面部分：
部分描述
Public可选的。用于声明对所有模块中的所有其它过程都可以使用的过程。
Private可选的。用于声明只能在包含该声明的模块中使用的过程。
Sub可选的（但 Sub 或 Function 二者需选其一）。表示该过程没有返回值。
Function可选的（但 Sub 或 Function 二者需选其一）。表示该过程会返回一个可用于表达式的值。
name必需的。任何合法的过程名。注意动态链接库的入口处（entry points）区分大小写。
Lib必需的。指明包含所声明过程的动态链接库或代码资源。所有声明都需要 Lib 子句。
libname必需的。包含所声明的过程动态链接库名或代码资源名。
Alias可选的。表示将被调用的过程在动态链接库 (DLL) 中还有另外的名称。当外部过程名与某个关键字重名时，就可以使用这个参数。当动态链接库的过程与同一范围内的公用变量、常数或任何其它过程的名称相同时，也可以使用 Alias。如果该动态链接库过程中的某个字符不符合动态链接库的命名约定时，也可以使用 Alias。
aliasname可选的。动态链接库或代码资源中的过程名。如果首字符不是数字符号 (#)，则 aliasname 是动态链接库中该过程的入口处的名称。如果首字符是 (#)，则随后的字符必须指定该过程的入口处的顺序号。
arglist可选的。代表调用该过程时需要传递的参数的变量表。
type可选的。Function 过程返回值的数据类型；可以是 Byte、布尔、Integer、Long、Currency、Single、Double、Decimal（目前尚不支持）、Date、String（只支持变长）或 Variant，用户定义类型，或对象类型。
arglist 参数的语法以及语法各个部分如下：
[Optional] [ByVal | ByRef] [ParamArray] varname[( )] [As type]
部分描述
Optional可选的。表示参数不是必需的。如果使用该选项，则 arglist 中的后续参数都必需是可选的，而且必须都使用 Optional 关键字声明。如果使用了 ParamArray，则任何参数都不能使用 Optional。
ByVal可选的。表示该参数按值传递。ByRef表示该参数按地址传递。 ByRef 是 Visual Basic 的缺省选项。
ParamArray可选的。只用于 arglist 的最后一个参数，表示最后的参数是一个 Variant 元素的 Optional 的数组。使用 ParamArray 关键字可以提供任意数目的参数。ParamArray 关键字不能与 ByVal、ByRef或 Optional 一起使用。
varname必需的。代表传给该过程的参数的变量名；遵循标准的变量命名约定。( )对数组变量是必需的。指明 varname 是一个数组。
type可选的。传递给该过程的参数的数据类型；可以是 Byte、Boolean、Integer、Long、Currency、Single、Double、Decimal（目前尚不支持）、Date、String（只支持变长）、Object、Variant、用户自定义的类型或对象类型。
说明和注意对Function 过程而言，过程的数据类型决定其返回值的数据类型。可以在 arglist 之后使用 As 子句来指定函数返回值的数据类型。在 arglist 中，可以使用 As 子句来指定任何传给该过程的参数的数据类型。不单可以指定为任何标准数据类型，还可以在 arglist 中指定 As Any 来禁止类型检查，从而允许将任意数据类型传递给该过程。
空圆括号表示该 Sub 或 Function 过程没有参数，且 Visual Basic 应确保不会传递任何参数。在下面的示例中，First 不带任何参数。如果对 First 的调用中使用了参数，就会产生错误：Declare Sub First Lib "MyLib" ()如果带参数表，则每次调用该过程时都要检查参数的个数和类型。
在下面的示例中，First 有一个 Long 参数：Declare Sub First Lib "MyLib" (X As Long)
注意1 在 Declare 语句的参数表中不能有定长的字符串；只有变长的字符串才能传给过程。定长的字符串可以作为过程参数使用，但在传递前都要被转换为变长的字符串。
注意2 当所调用的外部过程需要一个值为 0 的字符串时，就要使用 vbNullString 常数。该常数与零长度字符串 ("") 是不相同的。
vf中：定义数组
在vf中，可以用declare定义数组，和dimension一样，
命令格式：dimension <数组名1>(<数字表达式1>[,<数字表达式2>])[,<数组名2>(数字表达式1>[,<数字表达式2>])……]
例如：DIMENSION A(1),B(1,1)
Linux命令：declare
功能说明：声明 shell 变量。
语　法：declare [+/-][afrix]
补充说明：declare为shell指令，在第一种语法中可用来声明变量并设置变量的属性([rix]即为变量的属性），在第二种语法中可用来显示shell函数。若不加上任何参数，则会显示全部的shell变量与函数(与执行set指令的效果相同)。
参　数：
+/- "-"可用来指定变量的属性，"+"则是取消变量所设的属性。
-a　定义为数组array
-f　定义为函数function
-i　定义为整数integer
-r 定义为只读
-x　定义为通过环境输出变量
SQL中declare
功能说明：SQL块中声明变量。
语　法：declare 变量名称 变量类型； l_count number;
例：
declare
l_sql varchar2(2000);
l_count number;
l_param1 varchar2(100);
l_param2 varchar2(100);
begin
php declare语句
[1]declare 结构用来设定一段代码的执行指令。declare 的语法和其它流程控制结构相似：
declare (directive) statement
directive 部分允许设定 declare 代码段的行为。目前只认识一个指令：ticks（更多信息见下面 ticks 指令）。
declare 代码段中的 statement 部分将被执行――怎样执行以及执行中有什么副作用出现取决于 directive 中设定的指令。
declare 结构也可用于全局范围，影响到其后的所有代码。
<?php// these are the same:// you can use this:declare(ticks=1) { // entire script here}// or you can use this:declare(ticks=1);// entire script here?>
Ticks
Tick 是一个在 declare 代码段中解释器每执行 N 条低级语句就会发生的事件。N 的值是在 declare 中的 directive 部分用 ticks=N 来指定的。
在每个 tick 中出现的事件是由 register_tick_function() 来指定的。更多细节见下面的例子。注意每个 tick 中可以出现多个事件。
例子 16-3. 评估一段 php 代码的执行时间
<?php// A function that records the time when it is calledfunction profile($dump = FALSE){ static $profile; // Return the times stored in profile, then erase it if ($dump) { $temp = $profile; unset($profile); return ($temp); } $profile[] = microtime();}// Set up a tick handlerregister_tick_function("profile");// Initialize the function before the declare blockprofile();// Run a block of code, throw a tick every 2nd statementdeclare(ticks=2) { for ($x = 1; $x < 50; ++$x) { echo similar_text(md5($x), md5($x*$x)), "<br />;"; }}// Display the data stored in the profilerprint_r(profile (TRUE));?>这个例子评估“declare”中的 php 代码，每执行两条低级语句就记录一次时间。此信息可以用来找到一段特定代码中速度慢的部分。这个过程也可以用其它方法完成，但用 tick 更方便也更容易实现。  Ticks 很适合用来做调试，以及实现简单的多任务，后台 I/O 和很多其它任务。
参见 register_tick_function() 和 unregister_tick_function()。
SQL中declare的经典语句
一.随机批量插入信息
DECLARE @MyID uniqueidentifier 
DECLARE @INT AS INT 
SET @INT = 0 
WHILE @INT < 20 --这里设置需要插入多少行 
BEGIN 
SET @INT = @INT + 1 
SET @MyID = NEWID() 
INSERT INTO testss (testa, testb,CateID) SELECT substring(CONVERT(nvarchar(50), @MyID),3,16), substring(CONVERT(nvarchar(50), @MyID),5,16),rand() * 100 
END 
二.批量更新
DECLARE @INT AS INT 
DECLARE @ntt AS INT 
SET @INT = 1
set @ntt = 1
WHILE @INT <1000
WHILE @ntt <10000--设置对应行数 
BEGIN 
SET @INT = @INT + 1
set @ntt = @ntt + 1 
update aatable set UserID=@INT where ID=@ntt 
END