Форум: "Начинающим";
Текущий архив: 2008.10.12;
Скачать: [xml.tar.bz2];
ВнизSQL-запрос Найти похожие ветки
← →
Delphist (2008-09-03 13:32) [0]Как написать SQL запрос который удаляет из таблицы записи и возвращает количество удаленных записей в компонент Edit
← →
Сергей М. © (2008-09-03 13:33) [1]Никак.
← →
Palladin © (2008-09-03 13:36) [2]При помощи нажатий на кнопочки клавиатуры. Как его еще то написать... Хотя... на планшете нарисовать и OCRом каким нибудь :)
← →
Ega23 © (2008-09-03 13:36) [3]Сначала Select count по условию, потом Delete по условию.
Иначе - никак, насколько мне известно...
← →
Anatoly Podgoretsky © (2008-09-03 13:38) [4]> Delphist (03.09.2008 13:32:00) [0]
TAdoCommand
← →
brother © (2008-09-03 13:38) [5]удалять по одному и считать, а потом в edit отдавать результат?
← →
Vlad Oshin © (2008-09-03 13:40) [6]
> Сначала Select count по условию
и тут вставили еще запись..
> потом Delete по условию
← →
Palladin © (2008-09-03 13:43) [7]да и у TADOQuery есть RowAffected, если что...
← →
Правильный$Вася (2008-09-03 13:45) [8]
> есть RowAffected, если что...
отрабатывает не на всех SQL-серверах, т.к. не все они поддерживаюттакие фичи
← →
Anatoly Podgoretsky © (2008-09-03 13:50) [9]> Palladin (03.09.2008 13:43:07) [7]
TADOQuery в топку. Пусть привыкает работать без костылей.
← →
Anatoly Podgoretsky © (2008-09-03 13:50) [10]> Правильный$Вася (03.09.2008 13:45:08) [8]
Это его проблема, что ведет себя как партизан.
← →
Palladin © (2008-09-03 13:56) [11]а у меня вообще ощущения полного незнания SQL аффтором :)
← →
MsGuns © (2008-09-03 15:48) [12]>Anatoly Podgoretsky © (03.09.08 13:50) [9]
>TADOQuery в топку. Пусть привыкает работать без костылей.
Не возражаю при условии что ты мне покажешь как можно получить RowAffects без этого "костыля" ;)
← →
Palladin © (2008-09-03 15:52) [13]
> MsGuns © (03.09.08 15:48) [12]
у Execute возвращаемый параметр... просто с TADOQuery удобней...
← →
MsGuns © (2008-09-03 15:55) [14]>Palladin © (03.09.08 15:52) [13]
>у Execute возвращаемый параметр
Поподробнее, пожалуйста, а то у меня не выходит почему-то ;)
← →
clickmaker © (2008-09-03 16:17) [15]delete from table
select @@rowcount
или
delete from table
select @RowsAffectedOutParam = @@rowcount
св-во RowsAffected может не сработать, если в запросе (в хранимке) стоит set nocount on
это все для MS SQL
← →
Palladin © (2008-09-03 16:36) [16]
> MsGuns © (03.09.08 15:55) [14]
ADODB.pas, TADOQuery.ExecSQL, TADOQuery.Open :)
подробней некуда :)
← →
Сергей М. © (2008-09-03 16:42) [17]А автор, видимо, хотел увидить нечто вроде
Query.SQL.Text := "DELETE FROM TABLE THEN SELECT DELETEDCOUNT FROM TABLE INTO EDIT1";
))
← →
clickmaker © (2008-09-03 16:44) [18]а почему бы сначала не вводить в Edit количество удаляемых записей, а потом уже удалять?
тогда и возвращать ничего не придется
← →
MsGuns © (2008-09-03 16:52) [19]>clickmaker © (03.09.08 16:17) [15]
>Palladin © (03.09.08 16:36) [16]
Действительно. Самое интерсное, что я это и сам когда-то делал. Но забыл ;))
Спасибо
ЗЫ. Для акцеса это также верно ?
← →
Palladin © (2008-09-03 16:55) [20]А для всех, кто корректно возвращает в OLEDB драйвере, значение Affected верно. но есть одно но, не будет работать в большинстве случаев при CursorLocation=clUseServer и еще пары настроек... в общем практически та же ситуация, что и с RowCount...
← →
Anatoly Podgoretsky © (2008-09-03 16:59) [21]> MsGuns (03.09.2008 15:48:12) [12]
С помощью прямого компонента TAdoCommand
← →
Palladin © (2008-09-03 17:12) [22]А вообще по теме jet и mssql: Поведение их очень и очень схоже. Практически один в один.
← →
stas © (2008-09-03 17:45) [23]MSSQL 2005
create table #tbl (Number int)
DELETE MYTABLE OUTPUT 1 INTO #tbl WHERE [ID]=3
Select count (*) from #tbl
← →
Palladin © (2008-09-03 17:50) [24]
> stas © (03.09.08 17:45) [23]
кхм, а
Delete from mytable
select @@rowcount
низя? замест страшных ресурсоемких операций?
← →
stas © (2008-09-03 18:44) [25]Palladin © (03.09.08 17:50) [24]
а точно, забыл за эту переменную.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.10.12;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.044 c