![]() |
![]() |
![]() |
|
ADODB.Recordset. Как правильно выполнять пакетный запрос? | ☑ | ||
---|---|---|---|---|
0
DTX 4th
12.05.17
✎
19:03
|
Нужно после вставки строки получить сгенерированный id.
Запрос такой: INSERT INTO table VALUES (123);
Далее пытаюсь его выполнить: RS = Новый COMОбъект("ADODB.Recordset");
Получаю Произошла исключительная ситуация (ADODB.Recordset): Operation is not allowed when the object is closed.
Но если запросы выполнять по отдельности, то всё ок. Подозреваю, что ему нужно указать, что нужно читать второй запрос, а он первый пытается. Кто-нибудь сталкивался? |
|||
1
МихаилМ
12.05.17
✎
19:07
|
прочитайте документацию по ado/
и не будете пользоваться неондертальскими INSERT INTO и знать pk |
|||
2
NorthWind
12.05.17
✎
19:16
|
Как-то все сложно. А почему просто не сделать обновляемый RS и не проаппендить в него запись? В дельфи это работает...
|
|||
3
DTX 4th
12.05.17
✎
19:19
|
(1) Ссылка есть на нормальный мануал?
Так можно на второй запрос указатель поставить? Если запрос будет вида SELECT * FROM table1;
То после RS.open() будет возможность прочитать данные table1, а не table2. (2) Пример есть?) |
|||
4
Неверный Параметр И
12.05.17
✎
19:21
|
(0) Напиши в начале SET NOCOUNT ON
|
|||
5
NorthWind
12.05.17
✎
19:23
|
(3) Мануал зовется MSDN. https://msdn.microsoft.com/ru-ru/library/ms675841(v=vs.85).aspx
Я бы посоветовал сделать обновляемый рекордсет на основе запроса select * from table. Затем методом AddNew добавить туда запись и обновить методом Update. После этого просто считайте ваш первичный ключ. |
|||
6
МихаилМ
12.05.17
✎
19:28
|
(3)
есть ссылка на "нормальную" документацию но только для тех , кто умеет пользоваться поисковыми сервисами интернет. |
|||
7
DTX 4th
12.05.17
✎
19:31
|
(4) Помогло, спасибо!
Но ADO выучить было бы неплохо. Вот ток боюсь, что там слишком много воды/инфы. (5) Это как НаборЗаписей получается? И тип всю таблицу считать это нормально? Звучит странно (6) Другого ответа я и не ждал |
|||
8
DTX 4th
12.05.17
✎
19:34
|
(5) Не могу себе представить, как что-то можно выучить по MSDN. Искать нужный тебе объект и смотреть его методы по очереди?
|
|||
9
NorthWind
12.05.17
✎
19:34
|
(7) и тип всю таблицу считать это нормально? Звучит странно
так сделайте на основе select * from table where id is null, не считаете вообще ничего, но структуру полей получите и для обновления все подготовите. |
|||
10
NorthWind
12.05.17
✎
19:35
|
(8) я никак не могу понять, что означает "выучить". Вы к экзамену готовитесь, что ли? Я вообще никогда ничего не учил применительно к работе. Есть понятие "сделать".
|
|||
11
NorthWind
12.05.17
✎
19:37
|
MSDN вполне нормальный справочник, ничем не хуже других
|
|||
12
NorthWind
12.05.17
✎
19:41
|
вот до кучи ветка с примером, чел то же хочет сделать что и вы: v8: ADODB RecordSet AddNew()
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |