powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Пакетное выполнение запроса
14 сообщений из 14, страница 1 из 1
Пакетное выполнение запроса
    #38637134
_andrews_.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В ADO.NET пробую пакетный запрос, когда возвращается несколько результатов при одном обращении к базе.

Такой пример с запросами через точку с запятой работает для MSSql:
Код: c#
1.
2.
3.
4.
5.
6.
            using (var connection = new FbConnection(aConnectionString))
            {
                var cmd = new FbCommand("SELECT * FROM TABLE1; SELECT * FROM TABLE2", connection);
                connection.Open();
                var r = cmd.ExecuteReader();
            }




Но для Firebird выдает ошибку:Error
ErrorDynamic SQL Error
SQL error code = -104
Token unknown - line 1, column 23
SELECT

Как это сделать для Firebird (2.5)?
...
Рейтинг: 0 / 0
Пакетное выполнение запроса
    #38637136
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_andrews_.,

FB этого не умеет. Только через EXECUTE BLOCK. Хотя IBProvider может и может. Там много чего из MSSQL эмулируется
...
Рейтинг: 0 / 0
Пакетное выполнение запроса
    #38637138
_andrews_.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

Так работает (DELETE).
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
            
            using (FbConnection connection = new FbConnection(ConnectionString))
            {
                FbCommand command = connection.CreateCommand();
                command.CommandText = "EXECUTE BLOCK (PNr INTEGER = @PNr)"+
                                      "  as begin"+
                                      "  DELETE FROM ORDER_GOODS WHERE ORDER_NR = :PNr;"+
                                      "  DELETE FROM ORDERS WHERE NR = :PNr;"+
                                      "  end ";
                command.Parameters.AddWithValue("@PNr", aOrderNr);

                connection.Open();
                command.ExecuteNonQuery();
            }



Но если засунуть два SELECT (через точку с запятой) то уже не работает:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
            using (FbConnection connection = new FbConnection(ConnectionString))
            {
                FbCommand command = connection.CreateCommand();
                command.CommandText = "EXECUTE BLOCK as begin \r\n"+
                                                      "SELECT * FROM REF_LONG WHERE SIMPLE_NR < 100; \r\n"+
                                                      "SELECT * FROM SIMPLE_LONG WHERE NR < 100; \r\n"+
                                                     "end";
                connection.Open();
                command.ExecuteReader();
            }



ErrorDynamic SQL Error
SQL error code = -104
Token unknown - line 2, column 45
;
...
Рейтинг: 0 / 0
Пакетное выполнение запроса
    #38637139
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_andrews_.,

вообще эта фича сомнительная. Для чего она потребовалась?
...
Рейтинг: 0 / 0
Пакетное выполнение запроса
    #38637184
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_andrews_.Но если засунуть два SELECT (через точку с запятой) то уже не работает:

Если высасывать синтаксис из пальца вместо документации, то вероятность, что результат
заработает закономерно стремится к нулю.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Пакетное выполнение запроса
    #38637681
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovЕсли высасывать синтаксис из пальца вместо документацииКак минимум пара косяков прямо на поверхности. Звездочка в процедуре и куда девать результат селекта, где секция into?
RTFM без вариантов.
...
Рейтинг: 0 / 0
Пакетное выполнение запроса
    #38638421
_andrews_.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я хочу попробовать некоторые возможности ADO.NET, описанные в книге Microsoft ADO. NET 2.0 для профессионалов в главе 5:
...
Рейтинг: 0 / 0
Пакетное выполнение запроса
    #38638483
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ADO.NET - тупиковая ветвь эволюции.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Пакетное выполнение запроса
    #38638496
_andrews_.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вы намекаете на ORM? Или на что-то еще?
...
Рейтинг: 0 / 0
Пакетное выполнение запроса
    #38638585
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_andrews_.,

это работает только с MS SQL. Да и вообще вся идеология ADO.NET под собственный сервер подстроена, а остальные работают как могут
...
Рейтинг: 0 / 0
Пакетное выполнение запроса
    #38639755
_andrews_.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МимопроходящийADO.NET - тупиковая ветвь эволюции.

что рекомендуете использовать вместо ADO.NET?
Почему?
...
Рейтинг: 0 / 0
Пакетное выполнение запроса
    #38639764
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_andrews_.что рекомендуете использовать вместо ADO.NET?
Почему?
Нативный интерфейс fbclient. Потому что он прямой и, как следствие, быстрый.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Пакетное выполнение запроса
    #38639830
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Dimitry Sibiryakov!
You wrote on 13 мая 2014 г. 14:41:39:

Dimitry Sibiryakov> Нативный интерфейс fbclient. Потому что он прямой и, как следствие, быстрый.

а потом он тебя спросит: " как сделать мапинг базы firebird для
последущего использования в С# (BLToolkit)?
"
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Пакетное выполнение запроса
    #38639845
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А может быть просто не использовать эти множественные выборки? Тем более что даже в процитированной книжке написано, что это только для MSSQL, а Оракля может не работать в следующих версиях.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Пакетное выполнение запроса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]