Thread: [pgsqlclient-checkins] pgsqlclient_10/PostgreSql.Data.PgSqlClient/source PgCommandBuilder.cs,1.1.1.1
Status: Inactive
Brought to you by:
carlosga_fb
From: <car...@us...> - 2003-08-05 17:59:10
|
Update of /cvsroot/pgsqlclient/pgsqlclient_10/PostgreSql.Data.PgSqlClient/source In directory sc8-pr-cvs1:/tmp/cvs-serv27530 Modified Files: PgCommandBuilder.cs PgParameter.cs Log Message: * source/PgParameter.cs: - Fixed casing of pgDbType field. * source/PgCommandbuilder.cs: - Improved DeriveParameters method. Index: PgCommandBuilder.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PostgreSql.Data.PgSqlClient/source/PgCommandBuilder.cs,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** PgCommandBuilder.cs 2 Aug 2003 19:43:00 -0000 1.1.1.1 --- PgCommandBuilder.cs 5 Aug 2003 17:59:07 -0000 1.2 *************** *** 191,231 **** } command.Parameters.Clear(); - command.Prepare(); - - int index = 0; ! // Derive input parameters ! if (command.Statement.Parameters != null) { ! for (int i = 0; i < command.Statement.Parameters.Length; i++) { ! PgType type = command.Statement.Parameters[i].DataType; ! PgParameter parameter = new PgParameter(); ! parameter.ParameterName = "@ip" + i.ToString(); ! parameter.DbType = type.DbType; ! command.Parameters.Add(parameter); } ! ! index = command.Parameters.Count; ! } ! ! if (command.Statement.RowDescriptor != null) ! { ! // Derive output parameters ! for (int i = 0; i < command.Statement.RowDescriptor.Fields.Length; i++) { ! PgType type = command.Statement.RowDescriptor.Fields[i].DataType; ! ! PgParameter parameter = new PgParameter(); ! parameter.ParameterName = "@ip" + i.ToString(); ! parameter.DbType = type.DbType; ! ! command.Parameters.Add(parameter); ! index++; } } } --- 191,232 ---- } + string paramsText = String.Empty; + command.Parameters.Clear(); ! DataTable spSchema = command.Connection.GetDbSchemaTable(PgDbSchemaType.Functions, ! new object[] {null, command.CommandText.ToLower()}); ! ! if (spSchema.Rows.Count != 0) { ! int[] parameterTypes = (int[])spSchema.Rows[0]["ARGUMENTS"]; ! int parameterCount = (short)spSchema.Rows[0]["ARGUMENT_NUMBER"]; ! ! for (int i = 0; i < parameterCount; i++) { ! PgParameter parameter = command.Parameters.Add( ! "@ip" + i.ToString(), ! PgDbClient.Types[parameterTypes[i]].ProviderType); ! parameter.Direction = ParameterDirection.Input; ! paramsText = paramsText + parameter.ParameterName; ! if ((i + 1) != parameterCount) ! { ! paramsText = paramsText + ","; ! } } ! ! int returnType = (int)spSchema.Rows[0]["RETURN_TYPE"]; ! if (returnType != 0) { ! PgParameter parameter = command.Parameters.Add( ! "@op0", ! PgDbClient.Types[returnType]); ! parameter.Direction = ParameterDirection.Output; } + + command.CommandText = command.CommandText + "(" + paramsText + ")"; } } Index: PgParameter.cs =================================================================== RCS file: /cvsroot/pgsqlclient/pgsqlclient_10/PostgreSql.Data.PgSqlClient/source/PgParameter.cs,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** PgParameter.cs 2 Aug 2003 19:43:01 -0000 1.1.1.1 --- PgParameter.cs 5 Aug 2003 17:59:07 -0000 1.2 *************** *** 36,40 **** byte scale; int size; ! PgDbType PgDbType; #endregion --- 36,40 ---- byte scale; int size; ! PgDbType pgDbType; #endregion *************** *** 82,87 **** public DbType DbType { ! get { return PgDbTypeToDbType(PgDbType); } ! set { PgDbType = dbTypeToPgType(value); } } --- 82,87 ---- public DbType DbType { ! get { return PgDbTypeToDbType(pgDbType); } ! set { pgDbType = dbTypeToPgType(value); } } *************** *** 89,96 **** Category("Data"), DefaultValue(PgDbType.VarChar)] ! public PgDbType PgType { ! get { return PgDbType; } ! set { PgDbType = value; } } --- 89,96 ---- Category("Data"), DefaultValue(PgDbType.VarChar)] ! public PgDbType PgDbType { ! get { return pgDbType; } ! set { pgDbType = value; } } *************** *** 146,150 **** sourceVersion = DataRowVersion.Current; isNullable = false; ! PgDbType = PgDbType.VarChar; } --- 146,150 ---- sourceVersion = DataRowVersion.Current; isNullable = false; ! pgDbType = PgDbType.VarChar; } *************** *** 158,162 **** { this.parameterName = parameterName; ! this.PgDbType = dbType; } --- 158,162 ---- { this.parameterName = parameterName; ! this.pgDbType = dbType; } *************** *** 164,168 **** { this.parameterName = parameterName; ! this.PgDbType = dbType; this.size = size; } --- 164,168 ---- { this.parameterName = parameterName; ! this.pgDbType = dbType; this.size = size; } *************** *** 171,175 **** { this.parameterName = parameterName; ! this.PgDbType = dbType; this.size = size; this.sourceColumn = sourceColumn; --- 171,175 ---- { this.parameterName = parameterName; ! this.pgDbType = dbType; this.size = size; this.sourceColumn = sourceColumn; *************** *** 189,193 **** { this.parameterName = parameterName; ! this.PgDbType = dbType; this.size = size; this.direction = direction; --- 189,193 ---- { this.parameterName = parameterName; ! this.pgDbType = dbType; this.size = size; this.direction = direction; |