odbc| Stored Procedures
DB2 version: DB 2 UDB 8.X for Linux
in . Net, DB2 stored procedures are invoked with ODBC, and you cannot use this common method of calling stored procedures like OLE DB (ADO):
System.Data.Odbc.OdbcCommand Cmd=null;
System.Data.Odbc.OdbcConnection Con =new System.Data.Odbc.OdbcConnection ( system.configuration.configurationsettings.appsettings["ConnectionString"]);
Cmd=new System.Data.Odbc.OdbcCommand ("Reportplan", con);
Cmd.commandtype=system.data.commandtype.storedprocedure;
Con. Open ();
Parm=cmd. CreateParameter ();
Parm=new System.Data.Odbc.OdbcParameter ("V_baseno", system.data.odbc.odbctype.varchar,20);
Cmd. Parameters.Add (Parm);
Parm=new System.Data.Odbc.OdbcParameter ("Tmp_v_start", system.data.odbc.odbctype.varchar,20);
Cmd. Parameters.Add (Parm);
Parm=new System.Data.Odbc.OdbcParameter ("Tmp_v_end", system.data.odbc.odbctype.varchar,20);
Cmd. Parameters.Add (Parm);
Parm=new System.Data.Odbc.OdbcParameter ("V_ip", system.data.odbc.odbctype.varchar,50);
Cmd. Parameters.Add (Parm);
Cmd. parameters["V_baseno"]. Value= (DropDownList1.SelectedItem.Value);
Cmd. parameters["Tmp_v_start"]. Value= StartDate;
Cmd. parameters["Tmp_v_end"]. Value=enddate;
Cmd. parameters["V_ip"]. Value= Request.userhostname;
Cmd. ExecuteNonQuery ();
Only this parameterized method can be used:
cmd = con. CreateCommand ();
Cmd.commandtext = "{call Reportplan (?,?,?,?)}";
OdbcParameter p1 = cmd. CreateParameter ();
P1. Value =dropdownlist1.selecteditem.value;
P1. OdbcType = Odbctype.varchar;
Cmd. Parameters.Add (p1);
OdbcParameter P2 = cmd. CreateParameter ();
P2. Value =startdate;
P2. OdbcType = Odbctype.varchar;
Cmd. Parameters.Add (p2);
OdbcParameter p3 = cmd. CreateParameter ();
P3. Value =enddate;
P3. OdbcType = Odbctype.varchar;
Cmd. Parameters.Add (p3);
OdbcParameter P4 = cmd. CreateParameter ();
P4. Value =request.userhostname;
P4. OdbcType = Odbctype.varchar;
Cmd. Parameters.Add (P4)
Cmd. ExecuteNonQuery ();