ODBC读取BMC AR系统/补救数据到VS2010 / VB .NET

时间:2012-06-01 20:39:37

标签: vb.net visual-studio-2010 odbc remedy

编辑我的目标就是这个,我需要使用VB .Net应用程序从Remedy数据库中读取数据。 / 修改 我试图在VS 2010 VB窗体中从AR System ODBC驱动程序读取数据。 我在数据连接中添加了一个连接,系统dsn,从工作的excel数据拉取拉的连接字符串,并通过向导构建了一个连接字符串。 我可以测试连接,它回来'测试连接成功'。 当我单击确定并且数据连接进入我的服务器资源管理器时,它会扩展到表,视图和过程,并查看/刷新这些导致错误,例如: 列'Table_Cat'不属于表Tables。 错误[im00] [ar system odbc driver]不受支持

我知道那里有api,但是这有一个问题,api就像是来自客户端的登录会话,这限制了你到一个登录会话。这对于手头的任务是不可行的,因为用户需要保持登录补救,而我正在编写的应用程序将只读取数据。

目标是一个广告牌应用程序,它将显示某些票证,有点像股票代码。 将不会修复故障单中的故障单数据,我只需要阅读故障单并为我们的服务台提供提示和警报。

当我坐下来时似乎很容易,但是现在4个小时之后,一个令人头疼的无关紧要的谷歌结果,我几乎想知道我是否必须报告它是不能完成的api并创建更多补救帐户。不必创建额外的补救帐户是我提出的请求的一部分。 标签:Visual Studio 2010 BMC AR系统补救措施ODBC VB.NET

更新 所以我手工完成了代码,现在看起来向前迈了几步,但仍然是盲目的。

好的,所以如果我导出我的excel查询,它从dqy文件看起来像这样 export.dqy

DRIVER={AR System ODBC Driver};ARServer=xxxxxx;ARServerPort=xxxxx;UID=xxxx;PWD=xxxx;ARAuthentication=;SERVER=NotTheServer
SELECT "EN:HelpDesk"."Company Name", "EN:HelpDesk"."Call Status", "EN:HelpDesk"."Caller Region", "EN:HelpDesk"."Next Action", "EN:HelpDesk"."Detailed Description(FTS)", "EN:HelpDesk".Device, "EN:HelpDesk"."Submitted-by", "EN:HelpDesk".Impact, "EN:HelpDesk"."Arrival Time", "EN:HelpDesk"."Call Id", "EN:HelpDesk".Market  FROM "EN:HelpDesk" "EN:HelpDesk"  WHERE ("EN:HelpDesk"."Call Status"<>'Closed') AND ("EN:HelpDesk"."Submitted-by"<>'nis') AND ("EN:HelpDesk".Impact='High') AND ("EN:HelpDesk".Market='DCIN') AND ("EN:HelpDesk"."Caller Region"<>'UK')

首先,这些引用对我来说是错误的,但它似乎有效,因为如果我离开它们,执行命令不会失败,但它不会将数据返回到vb中的数据网格视图。 第二个EN:帮助台对我来说很奇怪但是再次与引号相同。 我已经尝试将引号更改为方括号[],但一旦我这样做就会收到错误。

这是我的代码:

VB代码

Imports SystemM My goal 
Imports System.Data
Imports System.Data.Odbc
Imports System.Data.SqlClient

Sub Main()

    Dim sql As String

    Dim connectionString As String = "DRIVER={AR System ODBC Driver};ARServer=xxx;ARServerPort=xxx;UID=xxx;PWD=xxx;ARAuthentication=;SERVER=NotTheServer"

    sql = "SELECT ""EN:HelpDesk"".""Company Name"", ""EN:HelpDesk"".""Call Status"", ""EN:HelpDesk"".""Caller Region"", ""EN:HelpDesk"".""Next Action"", ""EN:HelpDesk"".""Detailed Description(FTS)"", ""EN:HelpDesk"".Device, ""EN:HelpDesk"".""Submitted-by"", ""EN:HelpDesk"".Impact, ""EN:HelpDesk"".""Arrival Time"", ""EN:HelpDesk"".""Call Id"", ""EN:HelpDesk"".Market  FROM EN:HelpDesk WHERE (""EN:HelpDesk"".""Call Status""<>'Closed') AND (""EN:HelpDesk"".""Submitted-by""<>'nis') AND (""EN:HelpDesk"".Impact='High') AND (""EN:HelpDesk"".Market='DCIN') AND (""EN:HelpDesk"".""Caller Region""<>'UK')"

    Dim bindingSource1 As New BindingSource()

    Me.SQLDS_reportresults.DataSource = bindingSource1

    Dim myAdapter = New OdbcDataAdapter(sql, connectionString)

    Dim commandBuilder As New OdbcCommandBuilder(myAdapter)

    Dim table As New DataTable()

    table.Locale = System.Globalization.CultureInfo.InvariantCulture

    myAdapter.Fill(table)

    bindingSource1.DataSource = table

    Me.SQLDS_reportresults.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCellsExceptHeader)

End Sub

Project是一个带有激活main()的按钮的Windows窗体,一个文本框(textbox1)和一个datagridview(SQLDS_reportresults)。

代码代表,这不会导致错误,但我的datagridview永远不会填充。由于没有错误,我倾向于认为我的连接正在运行,并且我的命令正在执行,使我的问题在于代码,但是在sql命令中使用引号和en:helpdesk的时髦使用,我'我还担心这是错误的,并导致where部分返回没有结果。

任何人都有任何建议/想法吗?

我需要一种在app中显示这些结果的方法,而现在我并不关心我只能看到一些数据。

我一直在谷歌搜索并查看api zip中的vb示例,但这与打开odbc连接无关,我发现在我的研究中没什么帮助。

我几乎觉得我错过了一些简单或明显的东西。

当我运行odbcad32.exe时,我的系统odbc驱动程序显示7.00.01.02这是我假设安装在每台机器上的,因为我使用了由IT /软件管理员提供给我的补救安装集来构建这个开发框。

0 个答案:

没有答案