From: olegmad <ol...@ya...> - 2004-03-06 12:54:52
|
Hi! When i try update data in database (i use data adapter for this), i catch exception :( What i do wrong??? Here my example: using (FbConnection connection = new FbConnection(ConnectionString)) { connection.Open(); FbTransaction transaction = connection.BeginTransaction(); FbCommand selectCommand = new FbCommand("\"TEST_SELECT\"", connection, transaction); selectCommand.CommandType = CommandType.StoredProcedure; FbCommandBuilder.DeriveParameters(selectCommand); // Get data table. FbDataAdapter adapter = new FbDataAdapter(selectCommand); DataTable table = new DataTable(); adapter.Fill(table); // Delete first row. table.Rows[0].Delete(); FbCommand deleteCommand = new FbCommand("\"TEST_DELETE\"", connection, transaction); deleteCommand.CommandType = CommandType.StoredProcedure; FbCommandBuilder.DeriveParameters(deleteCommand); deleteCommand.Parameters[0].SourceColumn = "ID"; adapter.DeleteCommand = deleteCommand; adapter.Update(table); // EXCEPTION HERE !!!!!!!!!!!!!!!! transaction.Commit(); } -------------------------- Exception text: An unhandled exception of type 'FirebirdSql.Data.Firebird.FbException' occurred in system.data.dll Additional information: Dynamic SQL Error SQL error code = -84 procedure TEST_DELETE does not return any values At line 1, column 10. ----------------- I create table and two stored procedure like this: SET TERM ^ ; /*************************************************************************** ***/ /*** Stored Procedures ***/ /*************************************************************************** ***/ CREATE PROCEDURE TEST_DELETE ( ID BIGINT) AS BEGIN EXIT; END^ CREATE PROCEDURE TEST_SELECT RETURNS ( ID BIGINT, NAME VARCHAR(64)) AS BEGIN EXIT; END^ SET TERM ; ^ /*************************************************************************** ***/ /*** Tables ***/ /*************************************************************************** ***/ CREATE TABLE TEST ( ID BIGINT NOT NULL, NAME VARCHAR(64) NOT NULL ); /*************************************************************************** ***/ /*** Primary Keys ***/ /*************************************************************************** ***/ ALTER TABLE TEST ADD CONSTRAINT PK_TEST PRIMARY KEY (ID); /*************************************************************************** ***/ /*** Stored Procedures ***/ /*************************************************************************** ***/ SET TERM ^ ; ALTER PROCEDURE TEST_DELETE ( ID BIGINT) AS begin delete from test where :ID = ID; end ^ ALTER PROCEDURE TEST_SELECT RETURNS ( ID BIGINT, NAME VARCHAR(64)) AS begin for select ID, NAME from test into :ID, :NAME do suspend; end ^ SET TERM ; ^ |