我正在尝试使用多线程来连接CData驱动程序。是否可以在CData中并行处理数据。
OdbcConnection conn = new OdbcConnection();
conn.ConnectionString = "xxxx";
Task task1 = Task.Factory.StartNew(() => ReadData(conn));
Task task2 = Task.Factory.StartNew(() => ReadData(conn));
Task task3 = Task.Factory.StartNew(() => ReadData(conn));
Task task4 = Task.Factory.StartNew(() => ReadData(conn));
Task task5 = Task.Factory.StartNew(() => ReadData(conn));
public static void ReadData(OdbcConnection con)
{
con.Open();
// code
}
请让我知道有任何解决方案。提前谢谢。
这是可能的。如果使用"其他"属性设置 OAuthSettingsLocation 属性,则可以执行数据的并行处理。可以在 DSN 中设置该属性,也可以在无 DSN 连接中动态设置该属性(请参阅下面的代码示例)。
OAuth设置位置- 保存 OAuth 值的设置文件的位置。这可以是磁盘上驱动程序具有读/写权限的任何位置。
使用 DSN 管理器执行 OAuth
在使用驱动程序之前,您需要向服务进行身份验证。为此,您可以使用DSN向导中的测试连接。
打开 ODBC- 数据源管理器(从"开始"菜单中,键入"ODBC")
- 使用驱动程序选择或创建新的 DSN。 在"其他"属性
- 中设置"OAuthSettingsLocation"属性,然后单击"测试连接"。(系统将提示您在新的浏览器窗口中使用服务进行身份验证。
代码示例
字符串驱动程序 ="CData ODBC 驱动程序用于 QuickBooksOnline"; string oauthSettingsLocation = "C:/users//AppData/Roaming/CData/QuickBooksOnline ODBC Driver"; 字符串 connString = "DRIVER={" + driver + "};其他=OAuth设置位置=" + oauthSettingsLocation; Task task1 = Task.Factory.StartNew(() => ReadData(new OdbcConnection(connString))); Task task2 = Task.Factory.StartNew(() => ReadData(new OdbcConnection(connString))); Task task3 = Task.Factory.StartNew(() => ReadData(new OdbcConnection(connString))); Task task4 = Task.Factory.StartNew(() => ReadData(new OdbcConnection(connString))); Task task5 = Task.Factory.StartNew(() => ReadData(new OdbcConnection(connString)));
注意
CData 软件还制作了 ADO.NET 提供程序,这些提供程序可能会在 .NET 应用程序中提供更原生的体验。