Infopath2010为我们提供了多种接收数据的方式,今天我来讲讲里面其中的一种直接读取SQL Server数据库表数据方法(高阶者的下面可以略省,只针对入门者)。
1、选择数据库(SQL)
2、选择数据库
3、新建源
4、如图
5、填写相关信息
6、选择好你要用到的数据库
7、到这一步就基本配置好数据的连接了。
将表单发布后,大家会发现无法正常使用(会报错误报告),这是什么问题呢?让我们先到日志里找找问题出在哪里(如图)。
日志名称: Microsoft-SharePoint Products-Shared/Operational 来源: Microsoft-SharePoint Products-InfoPath Forms Services 日期: 2013/6/17 14:43:47 事件 ID: 5566 任务类别: 运行时 - 数据连接 级别: 警告 关键字: 用户: SFOAany 计算机: oa.sfoa.com 描述: 以下查询失败: Stock_Details (用户: SFOAany,表单名称: 调拨单,IP: ,连接目标: ,请求: http://oa/_layouts/FormServer.aspx?XsnLocation=http://oa/FormServerTemplates/调拨单.xsn&SaveLocation=http://oa/Stock/DocLib15&ClientInstalled=true&Source=http://oa/Stock/DocLib15/Forms/AllItems.aspx&DefaultItemOpen=1,表单 ID: urn:schemas-microsoft-com:office:infopath:3XE:-myXSD-2013-06-14T07-04-56,类型: DataAdapterException,异常消息: 当前配置设置禁止在数据库连接字符串中嵌入用户名和密码。) 事件 Xml: <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event"> <System> <Provider Name="Microsoft-SharePoint Products-InfoPath Forms Services" Guid="{A3499A35-DB34-421A-94FC-4D76522BEAB3}" /> <EventID>5566</EventID> <Version>14</Version> <Level>3</Level> <Task>5</Task> <Opcode>0</Opcode> <Keywords>0x2000000000000000</Keywords> <TimeCreated SystemTime="2013-06-17T06:43:47.302862900Z" /> <EventRecordID>2136</EventRecordID> <Correlation ActivityID="{70733056-96FF-41AC-B65B-563B4960D5B6}" /> <Execution ProcessID="8492" ThreadID="5868" /> <Channel>Microsoft-SharePoint Products-Shared/Operational</Channel> <Computer>oa.sfoa.com</Computer> <Security UserID="S-1-5-21-2353579695-1072628527-929179540-1104" /> </System> <EventData> <Data Name="string0">Stock_Details</Data> <Data Name="string1">SFOAany</Data> <Data Name="string2">调拨单</Data> <Data Name="string3"> </Data> <Data Name="string4"> </Data> <Data Name="string5">http://oa/_layouts/FormServer.aspx?XsnLocation=http://oa/FormServerTemplates/调拨单.xsn&SaveLocation=http://oa/Stock/DocLib15&ClientInstalled=true&Source=http://oa/Stock/DocLib15/Forms/AllItems.aspx&DefaultItemOpen=1</Data> <Data Name="string6">urn:schemas-microsoft-com:office:infopath:3XE:-myXSD-2013-06-14T07-04-56</Data> <Data Name="string7">DataAdapterException</Data> <Data Name="string8">当前配置设置禁止在数据库连接字符串中嵌入用户名和密码。</Data> </EventData> </Event>
从日志错误信息中不难得知问题出在哪里,接下来就让我们动手解决一下吧。
为 InfoPath Forms Services 配置身份验证和数据连接设置,如上图所示配置好即可。
安全性注意:
-
连接到数据库的表单可以在连接字符串中嵌入 SQL Server 用户名和密码数据。可以在与解决方案关联的数据连接文件中或在解决方案清单中以纯文本形式读取连接字符串。
-
在“数据源的身份验证(用户表单模板)”部分,选中“允许用户表单模板使用数据连接文件中包含的身份验证信息”复选框,以允许用户表单模板使用嵌入的身份验证信息,如 Microsoft 安全存储应用程序 ID。
-
在“用户表单模板的跨域访问”部分,选中“允许使用数据连接文件中的连接设置的用户表单模板跨域访问数据”复选框,以允许用户表单模板访问其他域中的数据。
-
单击“确定”保存设置。
(出自Bany Blog)