protected override void PrepareParameters() { // Prepare parameters foreach (SQLParameter parameter in Parameters) { OraHome.Client.OracleParameter oracleParameter = (OraHome.Client.OracleParameter)_command.CreateParameter(); oracleParameter.ParameterName = String.Format("@{0}", parameter.Name); switch (parameter.Direction) { case SQLDirection.Out: oracleParameter.Direction = System.Data.ParameterDirection.Output; break; case SQLDirection.InOut: oracleParameter.Direction = System.Data.ParameterDirection.InputOutput; break; case SQLDirection.Result: oracleParameter.Direction = System.Data.ParameterDirection.ReturnValue; break; default: oracleParameter.Direction = System.Data.ParameterDirection.Input; break; } if (parameter.Type is SQLStringType) { oracleParameter.OracleDbType = OraHome.Client.OracleDbType.Varchar2; oracleParameter.Size = ((SQLStringType)parameter.Type).Length; } else if (parameter.Type is SQLBooleanType) { oracleParameter.OracleDbType = OraHome.Client.OracleDbType.Int32; } else if (parameter.Type is SQLIntegerType) { switch (((SQLIntegerType)parameter.Type).ByteCount) { case 1: oracleParameter.OracleDbType = OraHome.Client.OracleDbType.Byte; break; case 2: oracleParameter.OracleDbType = OraHome.Client.OracleDbType.Int16; break; case 8: oracleParameter.OracleDbType = OraHome.Client.OracleDbType.Decimal; oracleParameter.Precision = 20; oracleParameter.Scale = 0; break; default: oracleParameter.OracleDbType = OraHome.Client.OracleDbType.Int32; break; } } else if (parameter.Type is SQLNumericType) { SQLNumericType type = (SQLNumericType)parameter.Type; oracleParameter.OracleDbType = OraHome.Client.OracleDbType.Decimal; oracleParameter.Precision = type.Precision; oracleParameter.Scale = type.Scale; } else if (parameter.Type is SQLBinaryType) { oracleParameter.OracleDbType = OraHome.Client.OracleDbType.Blob; } else if (parameter.Type is SQLTextType) { oracleParameter.OracleDbType = OraHome.Client.OracleDbType.Clob; } else if (parameter.Type is SQLDateTimeType) { oracleParameter.OracleDbType = OraHome.Client.OracleDbType.Date; } else if (parameter.Type is SQLDateType) { oracleParameter.OracleDbType = OraHome.Client.OracleDbType.Date; } else if (parameter.Type is SQLTimeType) { oracleParameter.OracleDbType = OraHome.Client.OracleDbType.Date; } else if (parameter.Type is SQLGuidType) { oracleParameter.OracleDbType = OraHome.Client.OracleDbType.Char; oracleParameter.Size = 24; } else if (parameter.Type is SQLMoneyType) { oracleParameter.OracleDbType = OraHome.Client.OracleDbType.Decimal; oracleParameter.Precision = 28; oracleParameter.Scale = 8; } else { throw new ConnectionException(ConnectionException.Codes.UnknownSQLDataType, parameter.Type.GetType().Name); } _command.Parameters.Add(oracleParameter); } }
protected override void PrepareParameters() { // Prepare parameters SQLParameter parameter; for (int index = 0; index < _parameterIndexes.Length; index++) { parameter = Parameters[_parameterIndexes[index]]; IBM.DB2Parameter dB2Parameter = (IBM.DB2Parameter)_command.CreateParameter(); dB2Parameter.ParameterName = String.Format("@{0}{1}", parameter.Name, index.ToString()); switch (parameter.Direction) { case SQLDirection.Out: dB2Parameter.Direction = System.Data.ParameterDirection.Output; break; case SQLDirection.InOut: dB2Parameter.Direction = System.Data.ParameterDirection.InputOutput; break; case SQLDirection.Result: dB2Parameter.Direction = System.Data.ParameterDirection.ReturnValue; break; default: dB2Parameter.Direction = System.Data.ParameterDirection.Input; break; } if (parameter.Type is SQLStringType) { dB2Parameter.DB2Type = IBM.DB2Type.VarChar; dB2Parameter.Size = ((SQLStringType)parameter.Type).Length; } else if (parameter.Type is SQLBooleanType) { dB2Parameter.DB2Type = IBM.DB2Type.Integer; } else if (parameter.Type is SQLIntegerType) { switch (((SQLIntegerType)parameter.Type).ByteCount) { case 1: dB2Parameter.DB2Type = IBM.DB2Type.Integer; break; case 2: dB2Parameter.DB2Type = IBM.DB2Type.SmallInt; break; case 8: dB2Parameter.DB2Type = IBM.DB2Type.BigInt; break; default: dB2Parameter.DB2Type = IBM.DB2Type.Integer; break; } } else if (parameter.Type is SQLNumericType) { SQLNumericType type = (SQLNumericType)parameter.Type; dB2Parameter.DB2Type = IBM.DB2Type.Decimal; // could not be decimal because of issue with DB2/400 dB2Parameter.Scale = type.Scale; dB2Parameter.Precision = type.Precision; } else if (parameter.Type is SQLFloatType) { SQLFloatType type = (SQLFloatType)parameter.Type; if (type.Width == 1) { dB2Parameter.DB2Type = IBM.DB2Type.Real; } else { dB2Parameter.DB2Type = IBM.DB2Type.Double; } } else if (parameter.Type is SQLBinaryType) { dB2Parameter.DB2Type = IBM.DB2Type.Blob; } else if (parameter.Type is SQLTextType) { dB2Parameter.DB2Type = IBM.DB2Type.Clob; } else if (parameter.Type is SQLDateTimeType) { dB2Parameter.DB2Type = IBM.DB2Type.Timestamp; } else if (parameter.Type is SQLDateType) { dB2Parameter.DB2Type = IBM.DB2Type.Date; } else if (parameter.Type is SQLTimeType) { dB2Parameter.DB2Type = IBM.DB2Type.Time; } else if (parameter.Type is SQLGuidType) { dB2Parameter.DB2Type = IBM.DB2Type.Char; dB2Parameter.Size = 24; } else if (parameter.Type is SQLMoneyType) { dB2Parameter.DB2Type = IBM.DB2Type.Decimal; dB2Parameter.Scale = 28; dB2Parameter.Precision = 8; } else { throw new ConnectionException(ConnectionException.Codes.UnknownSQLDataType, parameter.Type.GetType().Name); } _command.Parameters.Add(dB2Parameter); } }
private void PrepareParameters() { // Prepare parameters SQLParameter parameter; for (int index = 0; index < _parameterIndexes.Length; index++) { parameter = Parameters[_parameterIndexes[index]]; ADODB.Parameter aDOParameter = _command.CreateParameter(parameter.Name, ADODB.DataTypeEnum.adInteger, ADODB.ParameterDirectionEnum.adParamInput, 0, Missing.Value); switch (parameter.Direction) { case SQLDirection.In: aDOParameter.Direction = ADODB.ParameterDirectionEnum.adParamInput; break; case SQLDirection.Out: aDOParameter.Direction = ADODB.ParameterDirectionEnum.adParamOutput; break; case SQLDirection.InOut: aDOParameter.Direction = ADODB.ParameterDirectionEnum.adParamInputOutput; break; case SQLDirection.Result: aDOParameter.Direction = ADODB.ParameterDirectionEnum.adParamReturnValue; break; default: aDOParameter.Direction = ADODB.ParameterDirectionEnum.adParamUnknown; break; } if (parameter.Type is SQLStringType) { aDOParameter.Type = ADODB.DataTypeEnum.adVarChar; aDOParameter.Size = ((SQLStringType)parameter.Type).Length; } else if (parameter.Type is SQLBooleanType) { aDOParameter.Type = ADODB.DataTypeEnum.adBoolean; } else if (parameter.Type is SQLIntegerType) { switch (((SQLIntegerType)parameter.Type).ByteCount) { case 1: aDOParameter.Type = ADODB.DataTypeEnum.adTinyInt; break; case 2: aDOParameter.Type = ADODB.DataTypeEnum.adSmallInt; break; case 8: aDOParameter.Type = ADODB.DataTypeEnum.adBigInt; break; default: aDOParameter.Type = ADODB.DataTypeEnum.adInteger; break; } } else if (parameter.Type is SQLNumericType) { SQLNumericType type = (SQLNumericType)parameter.Type; aDOParameter.Type = ADODB.DataTypeEnum.adNumeric; aDOParameter.NumericScale = type.Scale; aDOParameter.Precision = type.Precision; } else if (parameter.Type is SQLFloatType) { SQLFloatType type = (SQLFloatType)parameter.Type; if (type.Width == 1) { aDOParameter.Type = ADODB.DataTypeEnum.adSingle; } else { aDOParameter.Type = ADODB.DataTypeEnum.adDouble; } } else if (parameter.Type is SQLBinaryType) { aDOParameter.Type = ADODB.DataTypeEnum.adLongVarBinary; aDOParameter.Attributes |= (int)ADODB.ParameterAttributesEnum.adParamLong; aDOParameter.Size = 255; } else if (parameter.Type is SQLByteArrayType) { aDOParameter.Type = ADODB.DataTypeEnum.adBinary; aDOParameter.Size = ((SQLByteArrayType)parameter.Type).Length; } else if (parameter.Type is SQLTextType) { aDOParameter.Type = ADODB.DataTypeEnum.adLongVarChar; aDOParameter.Size = 255; } else if (parameter.Type is SQLDateTimeType) { aDOParameter.Type = ADODB.DataTypeEnum.adDBTimeStamp; } else if (parameter.Type is SQLDateType) { aDOParameter.Type = ADODB.DataTypeEnum.adDBDate; } else if (parameter.Type is SQLTimeType) { aDOParameter.Type = ADODB.DataTypeEnum.adDBTime; } else if (parameter.Type is SQLGuidType) { aDOParameter.Type = ADODB.DataTypeEnum.adChar; aDOParameter.Size = 38; //LADOParameter.Type = ADODB.DataTypeEnum.adGUID; } else if (parameter.Type is SQLMoneyType) { aDOParameter.Type = ADODB.DataTypeEnum.adCurrency; } else { throw new ConnectionException(ConnectionException.Codes.UnknownSQLDataType, parameter.Type.GetType().Name); } _command.Parameters.Append(aDOParameter); } }
protected override void PrepareParameters() { // Prepare parameters foreach (SQLParameter parameter in Parameters) { MySqlParameter mySQLParameter = (MySqlParameter)_command.CreateParameter(); mySQLParameter.ParameterName = String.Format("@{0}", parameter.Name); switch (parameter.Direction) { case SQLDirection.Out: mySQLParameter.Direction = System.Data.ParameterDirection.Output; break; case SQLDirection.InOut: mySQLParameter.Direction = System.Data.ParameterDirection.InputOutput; break; case SQLDirection.Result: mySQLParameter.Direction = System.Data.ParameterDirection.ReturnValue; break; default: mySQLParameter.Direction = System.Data.ParameterDirection.Input; break; } if (parameter.Type is SQLStringType) { mySQLParameter.DbType = DbType.String; mySQLParameter.Size = ((SQLStringType)parameter.Type).Length; } else if (parameter.Type is SQLBooleanType) { mySQLParameter.DbType = DbType.Boolean; } else if (parameter.Type is SQLIntegerType) { switch (((SQLIntegerType)parameter.Type).ByteCount) { case 1: mySQLParameter.DbType = DbType.Byte; break; case 2: mySQLParameter.DbType = DbType.Int16; break; case 8: mySQLParameter.DbType = DbType.Int64; break; default: mySQLParameter.DbType = DbType.Int32; break; } } else if (parameter.Type is SQLNumericType) { SQLNumericType type = (SQLNumericType)parameter.Type; mySQLParameter.DbType = DbType.Decimal; mySQLParameter.Scale = type.Scale; mySQLParameter.Precision = type.Precision; } else if (parameter.Type is SQLBinaryType) { mySQLParameter.DbType = DbType.Binary; } else if (parameter.Type is SQLTextType) { mySQLParameter.DbType = DbType.String; } else if (parameter.Type is SQLDateTimeType) { mySQLParameter.DbType = DbType.DateTime; } else if (parameter.Type is SQLDateType) { mySQLParameter.DbType = DbType.DateTime; } else if (parameter.Type is SQLTimeType) { mySQLParameter.DbType = DbType.DateTime; } else if (parameter.Type is SQLGuidType) { mySQLParameter.DbType = DbType.Guid; } else if (parameter.Type is SQLMoneyType) { mySQLParameter.DbType = DbType.Currency; } else { throw new ConnectionException(ConnectionException.Codes.UnknownSQLDataType, parameter.Type.GetType().Name); } _command.Parameters.Add(mySQLParameter); } }
protected override void PrepareParameters() { // Prepare parameters SQLParameter LParameter; for (int LIndex = 0; LIndex < FParameterIndexes.Length; LIndex++) { LParameter = Parameters[FParameterIndexes[LIndex]]; OdbcParameter LODBCParameter = (OdbcParameter)FCommand.CreateParameter(); LODBCParameter.ParameterName = String.Format("@{0}", LParameter.Name); switch (LParameter.Direction) { case SQLDirection.Out: LODBCParameter.Direction = System.Data.ParameterDirection.Output; break; case SQLDirection.InOut: LODBCParameter.Direction = System.Data.ParameterDirection.InputOutput; break; case SQLDirection.Result: LODBCParameter.Direction = System.Data.ParameterDirection.ReturnValue; break; default: LODBCParameter.Direction = System.Data.ParameterDirection.Input; break; } if (LParameter.Type is SQLStringType) { LODBCParameter.OdbcType = OdbcType.VarChar; LODBCParameter.Size = ((SQLStringType)LParameter.Type).Length; } else if (LParameter.Type is SQLBooleanType) { LODBCParameter.OdbcType = OdbcType.Bit; } else if (LParameter.Type is SQLIntegerType) { switch (((SQLIntegerType)LParameter.Type).ByteCount) { case 1: LODBCParameter.OdbcType = OdbcType.TinyInt; break; case 2: LODBCParameter.OdbcType = OdbcType.SmallInt; break; case 8: LODBCParameter.OdbcType = OdbcType.BigInt; break; default: LODBCParameter.OdbcType = OdbcType.Int; break; } } else if (LParameter.Type is SQLNumericType) { SQLNumericType LType = (SQLNumericType)LParameter.Type; LODBCParameter.OdbcType = OdbcType.Int; // could not be decimal because of issue with DB2/400 LODBCParameter.Scale = LType.Scale; LODBCParameter.Precision = LType.Precision; } else if (LParameter.Type is SQLBinaryType) { LODBCParameter.OdbcType = OdbcType.Image; } else if (LParameter.Type is SQLTextType) { LODBCParameter.OdbcType = OdbcType.Text; } else if (LParameter.Type is SQLDateTimeType) { LODBCParameter.OdbcType = OdbcType.DateTime; } else if (LParameter.Type is SQLDateType) { LODBCParameter.OdbcType = OdbcType.DateTime; } else if (LParameter.Type is SQLTimeType) { LODBCParameter.OdbcType = OdbcType.DateTime; } else if (LParameter.Type is SQLGuidType) { LODBCParameter.OdbcType = OdbcType.UniqueIdentifier; } else if (LParameter.Type is SQLMoneyType) { LODBCParameter.OdbcType = OdbcType.Decimal; LODBCParameter.Scale = 28; LODBCParameter.Precision = 8; } else { throw new ConnectionException(ConnectionException.Codes.UnknownSQLDataType, LParameter.Type.GetType().Name); } FCommand.Parameters.Add(LODBCParameter); } }