首页 / 软件开发 / Delphi / 第十八章-Delphi客户服务器应用开发(二)(3)
第十八章-Delphi客户服务器应用开发(二)(3)2007-05-0718.2.2.1 配置SQL Link驱动程序缺省设置的方法SQL Link驱动程序缺省设置是指在BDE配置工具的Drivers页中的参数设置,这些参数在建立新的Alias中使用。Alias是描述网络资源的一组参数的集合。BDE应用使用Alias 联接共享数据库。Alias对于访问局部数据库并不是必要的,但要访问SQL数据库,却是必不可少。SQL Links驱动程序的缺省设置,是你建立新的Alias 的原型。尽管你在建立Alias后能定制它,但在建立新的Alias前设置相应的缺省设置要来的容易。因为这样建立的每一个Alias将继承这些设置。要描述驱动程序的缺省设置,要完成以下几项:● 将亮条移到驱动程序的入口,驱动程序管理程序显示所有的该驱动程序的配置参数,在参数列表表端可用滚行杠检察各配置参数● 如果需要编辑驱动程序的缺省配置参数,如果光标停在这格, 配置工作将自动套用缺省参数● 当完成这些工作,选择File|Save,修改将在应用程序下一次启动时生效18.2.2.2 SQL Links驱动程序的缺省设置项目的含义1. VERSIONSQL Links驱动程序的版本号。2. TYPE 描述当前驱动程序类型。SERVER就表示该驱动程序用于连接一个SQL服务器,FILE就表示驱动程序用于连接一个标准的基于文件服务器。3. DLL选项 所选SQL Links的16位驱动程序的动态链接库名。4. DLL32所选SQL Links的32位驱动程序的动态链接库名。5. DRIVER FIAGS 内部的产品描述标志。6. TRACE MODE描述记录跟踪信息的类型7. SERVER NAME 指定目标SQL服务器名。如果指定为InterBase服务器,将包含数据库文件的全部路径,Servername:/Usr/gds/directoryname/databasenam.gdb8. USER NAME 访问SQL服务器的缺省用户名。9. OPENMODE OPENMODE是SQL Links打开SQL数据库时的读写模式。取值可以是READ/WRITE或READ ONLY,缺省值是READ/WRITE。把OPEN MODE设为READ ONLY,将影响用户端的操作,但对SQL服务器没有影响。10. SCHEMA CACHE SIZE 描述被贮存视图信息的SQL表个数。取值范围是0-32, 缺省值为8。11. LANGDRIVER 用来操作来自SQL 服务器的数据的语言驱动程序。当光标停止LANGDRIVER域时,一个滚行框出现在正文域的左侧,用滚行杠可以用于你的驱动程序的可选的语言列表。如使用美国英语,该缺省值是空格。当描述的语言驱动程序与一个服务器别名相适应,那么你的应用程序将使用该驱动程序处理从服务器发来的数据。这包括你察看的所有表和所有查询返回的结果表。运行在不同系统上的服务器利用字符集的转换来决定怎样对数据编码。如果你操作在非英语环境,你的BDE应用程序可以使用不同于SQL服务器的字符集。如果你的平台上的字符集同SQL服务器上的不匹配,那么在两种不同平台间传递数据将引起下列问题:● 数据在你的平台上不正确的显示● SQL数据库上将记录错误的字符为防止这种情况的出现,SQL Links提供语言驱动程序,实现你的应用程序的字符集与SQL数据库的字符集的数据转换。这将使从SQL服务器传来的数据在你的平台上正确显示,或将你输入的数据可靠地传送到服务器上。语言驱动程序包含有关排序和大小写转换的信息。无论何时,对SQL数据库的查询按本地数据库的规则处理应用程序的语言驱动程序用于评测排序的字符范围。 如果平台上的排序和大小写转换与SQL服务器上的不同,你的应用程序就会显示不一致的结果。如果SQL数据库使用扩展字符集,请确信用于访问SQL 服务的别名中描述正确的,SQL Links语言版本选择的驱动程序的字符集应当与SQL服务器的相同。如果你没有找到合适的SQL Links语言驱动,你可修改别名中的SQLQRYMODE入口,防止按局部数据库规则处理查询。12. SQLPASSTHRU MODE描述应用程序访问SQL服务器时是否借助平台命令和传递式SQL。取值范围和它们的含义列于下表:表18.3 SQLPASSTHRU MODE设置━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━设置 含 义──────────────────────────────────────NOT SHARED 传递SQL和非传递性SQL不共享相同的连接SHARED AUTOCOMMIT 缺省值。传递SQL和非传递SQL将共享相同连接,传递式SQL将以与非传递SQL相似的方式动作。 也就说用户的传递式SQL表达式将被自动提交。SHARED NOAUTOCOMMIT 传递式SQL和非传递式SQL将共享同一个连接,但SQL驱动程序并不自动提交SQL表达式。在这种模式下,传 递行为是服务器独立的。━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━SHARED AUTOCOMMIT和SHARED NOAUTOCOMMIT 模式并不支持所有的传递式表达式。当SHARED AUTOCOMMIT或SHARED NOAUTOCOMMIT模式被设置,在传递式SQL中不需执行事务控制语言。使用你的BDE应用编程语言来开始,提交回送事务。当传递式SQL和非传递式SQL共享一个连接,记录快存并不立即反映传递SQL操作的更新。13. SQLQRYMODE描述处理查询SQL数据的方法。取值范围含义列于下表,缺省值NULL:表18.4 SQLQRYMODE设置━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━设置 模 式 含 义──────────────────────────────────────NULL Server-Local 在Server-local中,查询模式查询首先传递给SQL服 务器,如果服务器不能执行查询,查询就在本地执行。SERVER Server-Only 在Server-Only查询模式,查询被发送给SQL 服务器。如果服务器不能执行查询,不执行本地查询。LOCAL Local-Only 在local-only模式,查询总是本地执行。━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━正常情况下,查询SQL数据库将在数据库服务器端被处理。然而,在某些情况下,完全在SQL服务器端执行的查询的结果不同于在本地执行的查询的结果。例如,你的BDE 应用程序查询函数执行在字符域的大小写敏感搜索。如果,服务器不支持大小写敏感搜索,那么Select语句的条件如“>A”在不同地方查询将产生不同的结果。 如果你想确信所有来自BDE应用的查询都按照SQL服务器上的规则来执行,那么你就应合理配置SQL Links驱动程序,阻止查询的本地处理。使用BDE配置工具修改SQL数据库别名,将SQL QRYMODE设置成SERVER就可做到这一点。新的SQLQRYMODE值将在应用程序下一次启动时生效。