⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bckj简要说明.htm

📁 三层的通用架构
💻 HTM
📖 第 1 页 / 共 3 页
字号:
           ExecFlag: WordBool): WordBool; safecall;
       供远程客户指定操作数据库的SQL语句,其中ClearFlag指明是否先清空TADOQuery的SQL
   属性, ExeFlag指明是否通过TADOQuery执行上传的SQL语句而不通过TDataSetProvider返回
   结果.每个ClientDataSet在Active之前都应使用本方法指定SQL,多个ClientDataSet调用时
   则每个ClientDataSet使用ApplyUpdates(0)之前也都要调用此方法.所谓通用的中间层服务
   器也就在于每次客户端查询数据都可以指定SQL语句而不用使用不同的提供者.
       必须登录成功而且有连接数据库的权限才有可能正确执行.
       ●function ChangePassword(const OldPassword, NewPassword: WideString;
           EncryptFlag: WordBool): WordBool; safecall;
       提供远程客户远程修改密码的功能,其中EncryptFlag指明OldPassword,NewPassword是
   不是加密串(加密时BasicStr是登录用户名,即Login方法中的UserName).
       必须登录成功而且有修改密码的权限才能正确执行.
       ●function GetErrorString(Index: Integer): WideString; safecall;
       远程客户的每次方法调用都可能产生错误信息,该方法提供读取错误信息提示的功能.
   其中Index指明第几次调用,0表示最后一次, 无错误则返回空串. 此方法本身不产生错误信
   息.
       调用此方法不要求登录成功.
       ●procedure SetUpdateTableName(const TableName, 
           FieldIndexs: WideString); safecall;
       提供远程客户多表查询时在更新前指定不更新字段的功能, 其中TableName指定要更新
   的表名,可以为空,FieldIndexs则是不用更新的字段序号列表, 由TSTRINGLIST.TEXT转换而
   来,如:
         DCOMConnection.Appserver.Login('Admin', '', False);//远程登录,假设成功.
         DCOMConnection.Appserver.AddSQL(True, 'select a.a1,a.a2,b.* from a,b',
           False);
         DCOMConnection.Appserver.AddSQL(False, ' where a.a1=b.b1', False);
         ClientDataset.Active := True;
         ...
         FFieldIndexs.Clear;FFieldIndexs.Add('0');FFieldIndexs.Add('1');...
         DCOMConnection.Appserver.AddSQL(True, 'select a.a1,a.a2,b.* from a,b',
           False);
         DCOMConnection.Appserver.AddSQL(False, ' where a.a1=b.b1', False);
         DCOMConnection.Appserver.SetUpdateTableName('', 
           WideString(FFieldIndexs.Text);
         ClientDataSet.ApplyUpdates(0);
       在每次ClientDataSet调用ApplyUpdates之前都要调用SetUpdateTableName方法.
       ●procedure BeginTrans; safecall;
       提供远程客户启动数据库事务的功能,事务可以嵌套(即多次调用这个方法,但要注意配
   套的提交或回滚).
       必须登录成功而且有连接数据库的权限才有可能正确执行.
       ●procedure CommitTrans(RollbackFlag: WordBool); safecall;
       提供远程客户提交事务的功能.其中RollbackFlag指定提交失败后是否立即回滚.
       必须登录成功而且有连接数据库的权限才有可能正确执行.
       ●procedure RollbackTrans; safecall;
       提供远程客户回滚事务的功能.
       必须登录成功而且有连接数据库的权限才有可能正确执行.
       ●function GetUserInfo(AllUsersFlag: WordBool): WideString; safecall;
       提供远程客户读取用户相关权限信息的功能,其中AllUsersFlag表明是读取当前登录用
   户还是读取所有用户信息, 要想读取所有用户信息, 当前登录用户不必具有用户管理权限.
   返回串可转换成TSTRINGLIST.TEXT,其中:TSTRINGLIST[0]=登录用户名,TSTRINGLIST[1]=登
   录用户真名,TSTRINGLIST[2]=登录用户别名, TSTRINGLIST[3]=由调用者解释的登录用户关
   键信息,TSTRINGLIST[4]=登录用户是否可以更改密码(YES/NO), TSTRINGLIST[5]=既定的登
   录用户的数据库连接方式(如BDE或ADO等八种/NO不允许连接数据库, 只要不是NO,本程序作
   为 COM/DCOM 服务器只用ADO方式连接数据库,实际上与前面介绍的数据库连接方式无关),
   TSTRINGLIST[6]=登录用户当前的连接数据库方式(空则表示未连接数据库),TSTRINGLIST[7]
   =登录用户登录成功后再重新登录失败后是否自动退出系统(YES/NO),TSTRINGLIST[8]=登录
   用户是否具有用户管理权限(YES/NO), 当AllUsersFlag=True时,TSTRINGLIST[9]=其他用户
   一真名,TSTRINGLIST[10]=其他用户一别名, TSTRINGLIST[11]=由调用者负责解释的其他用
   户一关键信息,TSTRINGLIST[12]=其他用户一是否具有用户管理权限(YES/NO),TSTRINGLIST
   [13]=其他用户一是否被禁用(YES/NO),TSTRINGLIST[14]=其他用户二真名,TSTRINGLIST[15]
   =其他用户二别名,TSTRINGLIST[16]=由调用者负责解释的其他用户二关键信息,TSTRINGLIST
   [17]=其他用户二是否具有用户管理权限(YES/NO), TSTRINGLIST[18]=其他用户二是否被禁
   用(YES/NO),......, 依此类推,列出所有用户的信息,其他用户是以它们的真名排序的.
       必须登录成功才能返回正确结果.
       ●function ProcessPassword(const BasicStr, Value: WideString;
           ToNatural: WordBool): WideString; safecall;
       提供加解密字串的功能,其中ToNatural=True时表示解密,反之加密,加密解密都需依赖
   于同一BasicStr串(任意长度),加密时Value为明文,不超过16个字符, 返回密文是96个字符
   (全部是0到9的数字),解密时Value为96个字符的密文,返回16个以下字符的明文. 
       调用此方法不要求登录成功.
       ●function ProcessPassword2(const BasicStr, Value: WideString): WideString;
           safecall;
       提供加密字串的功能,Value为明文,不超过16个字符, 返回密文是96个字符(全部是0到
   9的数字). 调用Login方法时如指定EncryptFlag为真,则其中的Password必须是经本方法加
   密后的密文字串.
       调用此方法不要求登录成功.
       ●function StringEncrypt(const SourceString, Password: WideString;
           EncryptFlag: WordBool): WideString; safecall;
       提供加解密字串的功能,其中EncryptFlag=True时表示加密,反之加密,加密解密都需依
   赖于同一Password串,加密时SourceString为明文,任意长度,密文是以十六进制编码的形式
   返回的,解密时SourceString为密文,返回明文. 加密字串所用的算法是随机选择的(可选加
   密算法很多,如DES,BLOWFISH等),因此同一字串同一密码每次加密后的密文不一定是一致的,
   但不影响其解密.
       调用此方法不要求登录成功.
       ●function StringCompress(const SourceString: WideString;
           CompressFlag: WordBool): WideString; safecall;
       提供压缩解压缩字串的功能,其中CompressFlag=True时表示压缩,反之解压缩,待压缩
   的字串中不能存在零字符,压缩后是以十六进制编码的形式返回的,很可能比原字串还要长,
   解压缩则返回原字串.
       调用此方法不要求登录成功.
       ●function GetProcedureNames: WideString; safecall;
       此方法用于读取所连接数据库的存储过程列表,返回值可转换成TSTRINGLIST.TEXT.
       必须登录成功而且有连接数据库的权限才有可能正确执行.
       ●function GetTableNames(SystemTables: WordBool): WideString; safecall;
       此方法用于读取所连接数据库的表名列表,其中SystemTables表明是否包含系统表, 返
   回结果可转换成TSTRINGLIST.TEXT.
       必须登录成功而且有连接数据库的权限才有可能正确执行.
       ●function GetFieldNames(const TableName: WideString): WideString;
           safecall;
       此方法用于读取所连接数据库的指定表名(TableName)的字段列表, 返回结果可转换成
   TSTRINGLIST.TEXT.
       必须登录成功而且有连接数据库的权限才有可能正确执行.
       ●function GetRegisterUser: WideString; safecall;
       此方法用于读取本程序的注册用户名,未注册或假注册失效则返回空串.
       必须登录成功才能返回正确结果.
       ●function SetUserValue(const UserName, Value: WideString): WordBool;
           safecall;
       此方法用于保存指定用户(UserName为用户真名)的由调用者解释的关键信息.
       必须登录成功而且有用户管理权限才能正确执行.
       ●function GetDateTime: TDateTime; safecall;
       此方法用于读取本程序所在计算机的系统时间,返回结果为该方法在本程序上执行时的
   系统时间, 要用于客户机器与服务器时间同步,请自行考虑返回结果在网络中传输所造成的
   延时误差.
       调用此方法不要求登录成功.
       ●function ConnectNewObject(const TheClassName: WideString): WordBool;
           safecall;
       此方法用于连接指定类名TheClassName的自动化服务器, 返回结果指是否成功连接,成
   功则用CustomObject属性可以访问所连接的自动化服务器. 不管成功与否,先前的连接肯定
   要断开.
       调用此方法要求登录成功并有相应权限.
       ●procedure DisConnectObject; safecall;
       此方法用于断开CustomObject属性所连接的自动化服务器,CustomObject将不可访问.
       调用此方法要求登录成功并有相应权限.
       ●CustomObject属性: function Get_CustomObject: OleVariant; safecall;
       此属性用于访问由ConnectNewObject方法连接的自动化服务器的相关属性和方法.
       访问此属性要求登录成功并有相应权限.
       ●Object0属性: function Get_Object0: OleVariant; safecall;
       此属性用于访问第一个外挂COM服务器的相关属性和方法.
       访问此属性要求登录成功并有相应权限.
       同样的属性还有:Object1、Object2、...Object9.

       本COM/DCOM服务器自动将远程客户的登录、修改密码、数据库查询与更新、 断开等信
   息记录在ServerViewForm中用于监视远程客户的操作(由DLL打开方式中的IDefaultRDM参数
   执行的操作将不记录),在ServerViewForm中可以选择是否自动保存监视信息(监视信息达到
   一定量时会被清除),可以随时查看客户连接信息(如连接时间,登录用户以及外挂COM服务器
   的激活状态等),还可选择远程客户强行断开(最好是APARTMENT线程选项).</PRE>
</BODY>
</HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -