OdbcConnection.GetSchema与SQLGetInfo

时间:2013-01-17 12:31:28

标签: c# .net odbc

我有一些传统的ODBC连接编码,它使用SQLGetInfo函数在请求时收集各种连接细节。该代码目前正在重新考虑到.NET,但它仍然必须保持少量的向后兼容性,直到剩余的区域也被重新计算到.NET中

我需要能够使用c#OdbcConnection.GetSchema()

重现以下c ++代码
char strInstanceName[200];
SQLSMALLINT lengthReturned;
SQLGetInfo(myhInstance, SQL_SERVER_NAME, strInstanceName, 200, &lengthReturned);

char strDSN[200];
SQLSMALLINT lengthReturned;
SQLGetInfo(myhInstance, SQL_DATA_SOURCE_NAME, strDSN, 200, &lengthReturned);

char strActiveStmts[200];
SQLSMALLINT lengthReturned;
SQLGetInfo(myhInstance, SQL_ACTIVE_STATEMENTS, strActiveStmts, 200, &lengthReturned);

char strActiveConns[200];
SQLSMALLINT lengthReturned;
SQLGetInfo(myhInstance, SQL_ACTIVE_CONNECTIONS, strActiveConns, 200, &lengthReturned);

我花了好几个小时查看文档并搜索网页,但我无法找到或理解等效使用OdbcConnection.GetSchema()的内容,即使文档和网站让我相信这是获取所有这些信息的功能。

示例代码会很好:)

此致 DIG的

1 个答案:

答案 0 :(得分:2)

通过MSDN论坛回答。

基本上我需要的信息在.NET框架中是不可信的,我需要使用InteropServices和DllImport直接在c#中调用ODBC API。

http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/4579ccbc-4977-493e-a863-94ecdfe181b4/#9d74fc73-7be9-482b-b6db-1b4c256cb355

DIG的