dbo.sysobjects 为系统数据库master中的系统表sysobjects;
OBJECT_ID:返回数据库对象标识号。N是显式的将非unicode字符转成unicode字符,写作object_id(PerPersonData);
OBJECTPROPERTY:返回当前数据库中对象的有关信息。“1”表“真”。同样可以写成OBJECTPROPERTY(id, isUserTable) = 1;
例如:
if exists (select * from sysobjects where objectproperty(object_id('P_QueryStockWarning'),'isProcedure') = 1)
这句话判断存储过程'P_QueryStockWarning'是否存在.
其中唯一陌生的是COLLATE Chinese_PRC_CI_AS
指定SQL server的排序规则
Chinese_PRC指的是中国大陆地区,如果是台湾地区则为Chinese_Taiwan
CI指定不区分大小写,如果要在查询时区分输入的大小写则改为CS
AS指定区分重音,同样如果不需要区分重音,则改为AI
COLLATE可以针对整个数据库更改排序规则,也可以单独修改某一个表或者某一个字段的排序规则,指定排序规则很有用,比如用户管理表,需要验证输入的用户名和密码的正确性,一般是要区分大小写的。
一标识 Recordset 对象中当前记录的书签,或者将 Recordset 对象的当前记录设置为由有效书签所标识的记录。
打开 Recordset 对象时,其每个记录都有唯一的书签。要保存当前记录的书签,请将 Bookmark属性的值赋给一个变量。移动到其他记录后要快速返回到该记录,请将该 Recordset对象的 Bookmark属性设置为该变量的值。
使用的必要用:
随着系统安全性的加强,每个系统里越来越多不同的帐号登录。假如你正在开发一个上网安全软件,让不同的用户有不同的上网权限,这样就需要识别当前的用户是什么帐号登录了,然后再作出权限分配。还有出错时,也需要对当前帐号进行记录下来,因为不同的帐号有不同的权限,有些磁盘是不允许操作的。面对这些需求,就需要使用函数GetUserName。
Declare Function GetUserName Lib "advapi32.dll " Alias "GetUserNameA " (ByVal lpBuffer As String, nSize As Long) As Long
说明
取得当前用户的名字
返回值
Long,TRUE(非零)表示成功,否则返回零。会设置GetLastError
参数表
参数 类型及说明
lpBuffer String,一个字串缓冲区,预先初始化成由nSize指定的长度。它将用于容纳用户名,是获取名称缓冲区。
nSize Long,初始化成lpBuffer的长度。返回以后,它会包含载入lpBuffer的字符数量 ,是缓冲区的大小和返回帐号的大小。
目前理解到的有两个:
1是防止一些比较大的程序启动时间长,使用户误认为卡死了。用sub main()过程启动展示屏
Private Sub Main()
'显示快速显示。
frmSplash.Show
'在此处添加启动过程。
...
'显示主窗体并卸载快速显示。
frmMain.Show
Unload frmSplash
End Sub
2有时候也许要应用程序启动时不加载任何窗体。例如:可能想先运行装入数据文件的代码,然后再根据数据文件的内容决定显示几个不同窗体中的哪一个。要做到这一点,可在标准模块中创建一个名为 Main 的子过程,如下面的例子所示。
Sub Main()
Dim intStatus As Integer
'调用一个函数过程来检验用户状态。
intStatus = GetUserStatus
'根据状态显示某个启动窗体。
If intStatus = 1 Then
frmMain.Show
Else
frmPassword.Show
End If