Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

SQL-запрос


Страницы:   1 2

Delphist ©   (2008-09-03 13:32:00) 

Как написать SQL запрос который удаляет из таблицы записи и возвращает количество удаленных записей в компонент Edit


stas   (2008-09-03 18:44:00) [1]

Palladin ©   (03.09.08 17:50) [24]
а точно, забыл за эту переменную.


Palladin   (2008-09-03 17:50:00) [2]


> stas ©   (03.09.08 17:45) [23]

кхм, а
Delete from mytable
select @@rowcount
низя? замест страшных ресурсоемких операций?


stas   (2008-09-03 17:45:00) [3]

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:12:00) [4]

А вообще по теме jet и mssql: Поведение их очень и очень схоже. Практически один в один.


Anatoly Podgoretsky   (2008-09-03 16:59:00) [5]

> MsGuns  (03.09.2008 15:48:12)  [12]

С помощью прямого компонента TAdoCommand


Palladin   (2008-09-03 16:55:00) [6]

А для всех, кто корректно возвращает в OLEDB драйвере, значение Affected верно. но есть одно но, не будет работать в большинстве случаев при CursorLocation=clUseServer и еще пары настроек... в общем практически та же ситуация, что и с RowCount...


MsGuns   (2008-09-03 16:52:00) [7]

>clickmaker ©   (03.09.08 16:17) [15]
>Palladin ©   (03.09.08 16:36) [16]

Действительно. Самое интерсное, что я это и сам когда-то делал. Но забыл ;))
Спасибо

ЗЫ. Для акцеса это также верно ?


clickmaker   (2008-09-03 16:44:00) [8]

а почему бы сначала не вводить в Edit количество удаляемых записей, а потом уже удалять?
тогда и возвращать ничего не придется


Сергей М.   (2008-09-03 16:42:00) [9]

А автор, видимо, хотел увидить нечто вроде

Query.SQL.Text := 'DELETE FROM TABLE THEN SELECT DELETEDCOUNT FROM TABLE INTO EDIT1';

))


Palladin   (2008-09-03 16:36:00) [10]


> MsGuns ©   (03.09.08 15:55) [14]

ADODB.pas, TADOQuery.ExecSQL, TADOQuery.Open :)
подробней некуда :)


clickmaker   (2008-09-03 16:17:00) [11]

delete from table
select @@rowcount
или
delete from table
select @RowsAffectedOutParam = @@rowcount

св-во RowsAffected может не сработать, если в запросе (в хранимке) стоит set nocount on

это все для MS SQL


MsGuns   (2008-09-03 15:55:00) [12]

>Palladin ©   (03.09.08 15:52) [13]
>у Execute возвращаемый параметр

Поподробнее, пожалуйста, а то у меня не выходит почему-то ;)


Palladin   (2008-09-03 15:52:00) [13]


> MsGuns ©   (03.09.08 15:48) [12]

у Execute возвращаемый параметр... просто с TADOQuery удобней...


MsGuns   (2008-09-03 15:48:00) [14]

>Anatoly Podgoretsky ©   (03.09.08 13:50) [9]
>TADOQuery в топку. Пусть привыкает работать без костылей.

Не возражаю при условии что ты мне покажешь как можно получить RowAffects без этого "костыля" ;)


Palladin   (2008-09-03 13:56:00) [15]

а у меня вообще ощущения полного незнания SQL аффтором :)


Anatoly Podgoretsky   (2008-09-03 13:50:00) [16]

> Правильный$Вася  (03.09.2008 13:45:08)  [8]

Это его проблема, что ведет себя как партизан.


Anatoly Podgoretsky   (2008-09-03 13:50:00) [17]

> Palladin  (03.09.2008 13:43:07)  [7]

TADOQuery в топку. Пусть привыкает работать без костылей.


Правильный$Вася   (2008-09-03 13:45:00) [18]


> есть RowAffected, если что...

отрабатывает не на всех SQL-серверах, т.к. не все они поддерживаюттакие фичи


Palladin   (2008-09-03 13:43:00) [19]

да и у TADOQuery есть RowAffected, если что...


Vlad Oshin   (2008-09-03 13:40:00) [20]


> Сначала Select count по условию

и тут вставили еще запись..

> потом Delete по условию


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо