ODBC and DB2 stored procedures from C#: Routine not found -
i seem have come across short coming odbc , db2 when running stored procedures. seems not possible return data stored procedure, , have prexisting query need use. has got around particular issue?
thanks in advance
update
the code calling follows (assuming connection opened):
string basesql = "call b6009822.o#04666803.put"; odbccommand command = new odbccommand(basesql, myconnection); command.commandtype = commandtype.storedprocedure; command.parameters.add("@owner", odbctype.varchar).value = "mh"; int rows = command.executenonquery(); myconnection.close();
i following error ..
error [hy000] [ibm][system access odbc driver][db2 i5/os]sql0440 - routine put in o#04666803 not found specified parameters.
it seems objecting catalog/library , procedure name. idea on need procedure called ?
second update - real example
string basesql = "{ call b6009822.o#04666803.put(?,?,?,?,?,?,?,?,?) }"; odbccommand command = myconnection.createcommand(); command.commandtext = basesql; //odbccommand command = new odbccommand(basesql, myconnection); command.commandtype = commandtype.storedprocedure; /* @param1 varchar(4), @param2 dec(8,0), @param3 dec(4,0), @param4 dec(8,0), @param5 varchar(60), @param6 dec(9,2), @param7 dec(9,0), @param8 dec(9,2), @param9 varchar(10)) */ command.parameters.add("@param1", odbctype.varchar, 4).value = "mh"; command.parameters.add("@param2", odbctype.decimal, 8).value = 20110217; command.parameters.add("@param3", odbctype.decimal, 4).value = 1; command.parameters.add("@param4", odbctype.decimal, 8).value = 178377; command.parameters.add("@param5", odbctype.varchar, 60).value = "description"; command.parameters.add("@param6", odbctype.decimal, 9).value = 0; command.parameters.add("@param7", odbctype.decimal, 9).value = 45; command.parameters.add("@param8", odbctype.decimal, 9).value = 0; command.parameters.add("@param9", odbctype.varchar, 10).value = "*create"; int rows = command.executenonquery(); myconnection.close();
have tried call syntax?
edit: in case comment above correct:
from resource, have tried:
string basesql = "call b6009822.o#04666803.put (?)";
important: unlike odbc, db2 odbc not support literals procedure arguments. must use parameter markers specify procedure parameter.
Comments
Post a Comment