|
|
|
temporary table in stored procedure
|
|||
|---|---|---|---|
|
#18+
Уважаемые форумчане. Есть хранимка: CREATE PROCEDURE TestProc BEGIN CREATE TABLE #T ( ID NUMERIC(10,0), NAME VARCHAR(10) ) INSERT INTO #T SELECT * FROM Test SELECT NAME FROM #T END Вопрос в следующем: почему с помощью OleDbDataReader-а using (OleDbConnection connection = new OleDbConnection(...)) { OleDbCommand myCommand = new OleDbCommand(); myCommand.Connection = connection; connection.Open(); myCommand.CommandType = CommandType.StoredProcedure; myCommand.CommandText = "TmpProc"; DataTable dataTable = new DataTable(); OleDbDataReader oleDbDataReader = myCommand.ExecuteReader(); dataTable.Load(oleDbDataReader); } Отрабатывает замечательно без каких-либо проблем. для OleDbDataAdapter-а же ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2010, 17:50 |
|
||
|
temporary table in stored procedure
|
|||
|---|---|---|---|
|
#18+
Уважаемые форумчане. Есть хранимка: CREATE PROCEDURE TestProc BEGIN CREATE TABLE #T ( ID NUMERIC(10,0), NAME VARCHAR(10) ) INSERT INTO #T SELECT * FROM Test SELECT NAME FROM #T END Вопрос в следующем: почему с помощью OleDbDataReader-а using (OleDbConnection connection = new OleDbConnection(...)) { OleDbCommand myCommand = new OleDbCommand(); myCommand.Connection = connection; connection.Open(); myCommand.CommandType = CommandType.StoredProcedure; myCommand.CommandText = "TmpProc"; DataTable dataTable = new DataTable(); OleDbDataReader oleDbDataReader = myCommand.ExecuteReader(); dataTable.Load(oleDbDataReader); } Отрабатывает замечательно без каких-либо проблем. для OleDbDataAdapter-а же OleDbCommand myCommand = new OleDbCommand(); myCommand.Connection = connection; connection.Open(); myCommand.CommandType = CommandType.StoredProcedure; myCommand.CommandText = "TmpProc"; DataTable dataTable = new DataTable(); OleDbDataAdapter oleDbDataAdapter = new OleDbDataAdapter(myCommand); oleDbDataAdapter.Fill(dataTable); данные не отображаются. но стоит убрать из процедуры временную таблицу и все норм. Кто в курсе, укажите плиз, где этот ньюанс указан в документации? И есть ли какой-нить способ все таки использовать DataAdapter? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2010, 17:53 |
|
||
|
temporary table in stored procedure
|
|||
|---|---|---|---|
|
#18+
ех... set nocount on ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2010, 17:59 |
|
||
|
temporary table in stored procedure
|
|||
|---|---|---|---|
|
#18+
Огромное спасибо! следующий код заработал: OleDbCommand myCommand = new OleDbCommand(); myCommand.Connection = connection; connection.Open(); myCommand.CommandType = CommandType.Text; myCommand.CommandText = "set nocount on"; myCommand.ExecuteNonQuery(); myCommand.CommandType = CommandType.StoredProcedure; myCommand.CommandText = "TmpProc"; DataTable dataTable = new DataTable(); OleDbDataAdapter oleDbDataAdapter = new OleDbDataAdapter(myCommand); oleDbDataAdapter.Fill(dataTable); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2010, 18:07 |
|
||
|
|

start [/forum/topic.php?fid=17&gotonew=1&tid=1351147]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
173ms |
get topic data: |
9ms |
get first new msg: |
6ms |
get forum data: |
3ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 229ms |
| total: | 492ms |

| 0 / 0 |
