Yonger
1

Получить AffectedRecords в SQL-запросе типа delete

16.06.2008, 18:21. Показов 3144. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Пишу в 1С, работаю с MySQL через ADODB
А задача очень простая:
Если это DELETE FROM ..., то нужно знать AffectedRecords
Если INSERT, то LAST_INSERT_ID().
Ни то ни другое у меня почему-то не работает
Казалось бы, в документации описано:
Execute(CommandText, RecordsAffected, Options)

Выполняет запрос, оператор SQL, хранимую процедуру или любую другую команду, доступную провайдеру. Возвращает объект Recordset, доступный только для чтения курсором Forward-only, если переданная команда возвращает записи. (Если нужен объект Recordset, доступный для записи, следует создать его непосредственно, и воспользоваться его свойствами и методами.) Параметры:
CommandText - обязательный. Строка, содержащая оператор SQL, имя таблицы, хранимой процедуры или другую команду провайдера.
RecordsAffected - необязательный. Целое число (long), определяющее число записей, затронутых командой. Заполняется провайдером.

Делаем что-то типа
1C
1
2
3
4
5
6
7
8
9
10
11
Соединение    = СоздатьОбъект("ADODB.Connection");
    // строка соединения
    ConnectionString =  СокрЛП(Константа.NX_MySQL_Driver)+
                        "; server="     +СокрЛП(Константа.NX_MySQL_Server)+
                        "; uid="        +СокрЛП(Константа.NX_MySQL_User)+
                        "; pwd="        +СокрЛП(Константа.NX_MySQL_Password)+
                        "; database="   +СокрЛП(Константа.NX_MySQL_DataBase)+";";
    Соединение.Open(ConnectionString);
        Affected = 0;
        //tt = Команда.Execute();
        Соединение.Execute(Запрос,Affected);
И, тепля в душе надежду увидеть в переменной Affected воджеленный AffectedRecords, запускаем, и ... болт, короче. "0".

Полностью аналогичным образом работает и функция мускуля LAST_INSERT_ID().
Интересно, что в консоли на той машине где он, мускуль, бегает, эта фция работает, а у меня через АДО - нет Всегда возвращает "0".
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.06.2008, 18:21
Ответы с готовыми решениями:

Соединение строковых, числовых и типа дата полей в запросе. Аналог CAST() SQL
Добрый день! Мне уже объяснили на форуме от 1С, что приведения числовых полей и полей типа дата в...

SQL Access Можно ли в одном запросе объединить Insert,delete,update
Можно ли в одном запросе объединить Insert,delete,update? или делать каждой команде новый запрос?

Переменная типа Date в SQL запросе
Не могу составить грамотно запрос используя переменную, в которой дата. Public ss As Date =...

Как с помощью обычного контрола Data выполнить SQL запрос типа UPDATE или DELETE?
Ребята, как с помощью обычного контрола Data выполнить SQL запрос типа UPDATE или DELETE? Короче...

2
25 / 24 / 1
Регистрация: 07.04.2008
Сообщений: 231
15.10.2008, 15:19 2
Во блин, я сам только начал ковырятся в 1С но да такого не дошол
0
DenIv
25.11.2008, 11:37 3
Актуальная тема! Есть результат?
25.11.2008, 11:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.11.2008, 11:37
Помогаю со студенческими работами здесь

Как получить порядковый номер записи в запросе SQL
Есть какая то выборка из базы. Нужно узнать порядковый номер записи, удовлетворяющей определенным...

Ошибка в Delete запросе
Доброго времени! В программе требуется удалить договор, реализовал окно выбора типа да/нет, при...

Ошибка в запросе DELETE
Вот запрос: Form1->ADOQuery1->SQL->Add("DELETE * FROM Table1 WHERE...

В SQL запросе получить дату начала и дату конца следующего месяца
В SQL запросе необходимо использовать дату начала следующего месяца, и дату конца следующего...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru