本文整理汇总了C#中System.Data.Odbc.OdbcConnection.GetInfoInt32Unhandled方法的典型用法代码示例。如果您正苦于以下问题:C# OdbcConnection.GetInfoInt32Unhandled方法的具体用法?C# OdbcConnection.GetInfoInt32Unhandled怎么用?C# OdbcConnection.GetInfoInt32Unhandled使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Data.Odbc.OdbcConnection
的用法示例。
在下文中一共展示了OdbcConnection.GetInfoInt32Unhandled方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GetDataSourceInformationCollection
private DataTable GetDataSourceInformationCollection(string [] restrictions,
OdbcConnection connection){
if (ADP.IsEmptyArray(restrictions) == false) {
throw ADP.TooManyRestrictions(DbMetaDataCollectionNames.DataSourceInformation);
}
// verify that the data source information table is in the data set
DataTable dataSourceInformationTable = CollectionDataSet.Tables[DbMetaDataCollectionNames.DataSourceInformation];
if (dataSourceInformationTable == null){
throw ADP.UnableToBuildCollection(DbMetaDataCollectionNames.DataSourceInformation);
}
// copy the table filtering out any rows that don't apply to the current version of the provider
dataSourceInformationTable = CloneAndFilterCollection(DbMetaDataCollectionNames.DataSourceInformation, null);
// after filtering there better be just one row
if (dataSourceInformationTable.Rows.Count != 1){
throw ADP.IncorrectNumberOfDataSourceInformationRows();
}
DataRow dataSourceInformation = dataSourceInformationTable.Rows[0];
string stringValue;
Int16 int16Value;
Int32 int32Value;
ODBC32.RetCode retcode;
// update the catalog separator
stringValue = connection.GetInfoStringUnhandled(ODBC32.SQL_INFO.CATALOG_NAME_SEPARATOR);
if (!ADP.IsEmpty(stringValue)) {
StringBuilder patternEscaped = new StringBuilder();
ADP.EscapeSpecialCharacters(stringValue,patternEscaped);
dataSourceInformation[DbMetaDataColumnNames.CompositeIdentifierSeparatorPattern] = patternEscaped.ToString();
}
// get the DBMS Name
stringValue = connection.GetInfoStringUnhandled(ODBC32.SQL_INFO.DBMS_NAME);
if (stringValue != null) {
dataSourceInformation[DbMetaDataColumnNames.DataSourceProductName] = stringValue;
}
// update the server version strings
dataSourceInformation[DbMetaDataColumnNames.DataSourceProductVersion] = ServerVersion;
dataSourceInformation[DbMetaDataColumnNames.DataSourceProductVersionNormalized] = ServerVersionNormalized;
// values that are the same for all ODBC drivers. See
dataSourceInformation[DbMetaDataColumnNames.ParameterMarkerFormat] = "?";
dataSourceInformation[DbMetaDataColumnNames.ParameterMarkerPattern] = "\\?";
dataSourceInformation[DbMetaDataColumnNames.ParameterNameMaxLength] = 0;
// determine the supportedJoinOperators
// leave the column null if the GetInfo fails. There is no explicit value for
// unknown.
if (connection.IsV3Driver) {
retcode = connection.GetInfoInt32Unhandled(ODBC32.SQL_INFO.SQL_OJ_CAPABILITIES_30,out int32Value);
}
else {
retcode = connection.GetInfoInt32Unhandled(ODBC32.SQL_INFO.SQL_OJ_CAPABILITIES_20, out int32Value);
}
if ((retcode == ODBC32.RetCode.SUCCESS) || (retcode == ODBC32.RetCode.SUCCESS_WITH_INFO)){
Common. SupportedJoinOperators supportedJoinOperators = Common.SupportedJoinOperators.None;
if ((int32Value & (Int32)ODBC32.SQL_OJ_CAPABILITIES.LEFT) != 0){
supportedJoinOperators = supportedJoinOperators | Common.SupportedJoinOperators.LeftOuter;
}
if ((int32Value & (Int32)ODBC32.SQL_OJ_CAPABILITIES.RIGHT) != 0){
supportedJoinOperators = supportedJoinOperators | Common.SupportedJoinOperators.RightOuter;
}
if ((int32Value & (Int32)ODBC32.SQL_OJ_CAPABILITIES.FULL) != 0){
supportedJoinOperators = supportedJoinOperators | Common.SupportedJoinOperators.FullOuter;
}
if ((int32Value & (Int32)ODBC32.SQL_OJ_CAPABILITIES.INNER) != 0){
supportedJoinOperators = supportedJoinOperators | Common.SupportedJoinOperators.Inner;
}
dataSourceInformation[DbMetaDataColumnNames.SupportedJoinOperators] = supportedJoinOperators;
}
// determine the GroupByBehavior
retcode = connection.GetInfoInt16Unhandled(ODBC32.SQL_INFO.GROUP_BY, out int16Value);
Common.GroupByBehavior groupByBehavior = Common.GroupByBehavior.Unknown;
if ((retcode == ODBC32.RetCode.SUCCESS) || (retcode == ODBC32.RetCode.SUCCESS_WITH_INFO)){
switch (int16Value) {
case (Int16)ODBC32.SQL_GROUP_BY.NOT_SUPPORTED:
groupByBehavior = Common.GroupByBehavior.NotSupported;
break;
case (Int16)ODBC32.SQL_GROUP_BY.GROUP_BY_EQUALS_SELECT:
groupByBehavior = Common.GroupByBehavior.ExactMatch;
break;
case (Int16)ODBC32.SQL_GROUP_BY.GROUP_BY_CONTAINS_SELECT:
groupByBehavior = Common.GroupByBehavior.MustContainAll;
//.........这里部分代码省略.........
示例2: GetDataSourceInformationCollection
private DataTable GetDataSourceInformationCollection(string[] restrictions, OdbcConnection connection)
{
ODBC32.RetCode code;
int num;
short num2;
if (!ADP.IsEmptyArray(restrictions))
{
throw ADP.TooManyRestrictions(DbMetaDataCollectionNames.DataSourceInformation);
}
if (base.CollectionDataSet.Tables[DbMetaDataCollectionNames.DataSourceInformation] == null)
{
throw ADP.UnableToBuildCollection(DbMetaDataCollectionNames.DataSourceInformation);
}
DataTable table = base.CloneAndFilterCollection(DbMetaDataCollectionNames.DataSourceInformation, null);
if (table.Rows.Count != 1)
{
throw ADP.IncorrectNumberOfDataSourceInformationRows();
}
DataRow row = table.Rows[0];
string infoStringUnhandled = connection.GetInfoStringUnhandled(ODBC32.SQL_INFO.CATALOG_NAME_SEPARATOR);
if (!ADP.IsEmpty(infoStringUnhandled))
{
StringBuilder escapedString = new StringBuilder();
ADP.EscapeSpecialCharacters(infoStringUnhandled, escapedString);
row[DbMetaDataColumnNames.CompositeIdentifierSeparatorPattern] = escapedString.ToString();
}
infoStringUnhandled = connection.GetInfoStringUnhandled(ODBC32.SQL_INFO.DBMS_NAME);
if (infoStringUnhandled != null)
{
row[DbMetaDataColumnNames.DataSourceProductName] = infoStringUnhandled;
}
row[DbMetaDataColumnNames.DataSourceProductVersion] = base.ServerVersion;
row[DbMetaDataColumnNames.DataSourceProductVersionNormalized] = base.ServerVersionNormalized;
row[DbMetaDataColumnNames.ParameterMarkerFormat] = "?";
row[DbMetaDataColumnNames.ParameterMarkerPattern] = @"\?";
row[DbMetaDataColumnNames.ParameterNameMaxLength] = 0;
if (connection.IsV3Driver)
{
code = connection.GetInfoInt32Unhandled(ODBC32.SQL_INFO.SQL_OJ_CAPABILITIES_30, out num);
}
else
{
code = connection.GetInfoInt32Unhandled(ODBC32.SQL_INFO.SQL_OJ_CAPABILITIES_20, out num);
}
if ((code == ODBC32.RetCode.SUCCESS) || (code == ODBC32.RetCode.SUCCESS_WITH_INFO))
{
SupportedJoinOperators none = SupportedJoinOperators.None;
if ((num & 1) != 0)
{
none |= SupportedJoinOperators.LeftOuter;
}
if ((num & 2) != 0)
{
none |= SupportedJoinOperators.RightOuter;
}
if ((num & 4) != 0)
{
none |= SupportedJoinOperators.FullOuter;
}
if ((num & 0x20) != 0)
{
none |= SupportedJoinOperators.Inner;
}
row[DbMetaDataColumnNames.SupportedJoinOperators] = none;
}
code = connection.GetInfoInt16Unhandled(ODBC32.SQL_INFO.GROUP_BY, out num2);
GroupByBehavior unknown = GroupByBehavior.Unknown;
if ((code == ODBC32.RetCode.SUCCESS) || (code == ODBC32.RetCode.SUCCESS_WITH_INFO))
{
switch (num2)
{
case 0:
unknown = GroupByBehavior.NotSupported;
break;
case 1:
unknown = GroupByBehavior.ExactMatch;
break;
case 2:
unknown = GroupByBehavior.MustContainAll;
break;
case 3:
unknown = GroupByBehavior.Unrelated;
break;
}
}
row[DbMetaDataColumnNames.GroupByBehavior] = unknown;
code = connection.GetInfoInt16Unhandled(ODBC32.SQL_INFO.IDENTIFIER_CASE, out num2);
IdentifierCase insensitive = IdentifierCase.Unknown;
if ((code == ODBC32.RetCode.SUCCESS) || (code == ODBC32.RetCode.SUCCESS_WITH_INFO))
{
switch (num2)
{
case 1:
case 2:
case 4:
insensitive = IdentifierCase.Insensitive;
break;
//.........这里部分代码省略.........