![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ExecSQL [D6, MSSQL]
Alibaba © (2002-08-06 10:46:00)Всем привет!
Когда я делаю Query.Open, можно получить список записей :
count:=Query.RecordCount
а когда я делаю Query.ExecSQL - такой номер не проходит (внутри запроса у меня инсерты)
Как мне получить количество записей после выполнения Query.ExecSQL?
Mike Kouzmine (2002-08-06 12:41:00) [1]Johnmen сказал, как отрезал, а суке только RX ругать
Alibaba (2002-08-06 12:34:00) [2]> Johnmen
Спасибо большое!
Это то что мне надо!
Johnmen (2002-08-06 11:58:00) [3]>Alibaba ©
count:=Query.RowsAffected
AlexSam (2002-08-06 11:51:00) [4]!!! В SQL RecordSet не работает. Читай помощь. Пользуйся while not eof или select count(*) from ... И если RecordSet у тебя что-то возвращала, то в таблице просто мало записей.
SaS13 (2002-08-06 11:47:00) [5]Примерно так:
CREATE PROCEDURE Test AS
SET NOCOUNT ON
DECLARE @cResult int
SET @cResult = 0
BEGIN TRAN
INSERT ...
IF @@ERROR <> 0 BEGIN
ROLLBACK TRAN
SET @cResult = -1
RETURN @cResult
END
ELSE
SELECT @cResult = @cResult + @@ROWCOUNT
SET NOCOUNT OFF
COMMIT TRAN
RETURN @cResult
3JIA9I CyKA (2002-08-06 11:42:00) [6]3JIA9I CyKA © (06.08.02 11:40)-> 2Alibaba
SaS13 (2002-08-06 11:40:00) [7]можешь вернуть количество вставленных записей параметром Result например, а после ExecSQL взять значение ParamByName...
3JIA9I CyKA (2002-08-06 11:40:00) [8]Ах вон оно как! Ух ты, блин!
А чего Count? Каких Record-ов? Запрос-то твой вообще набор данных возвращает?
Alibaba (2002-08-06 11:35:00) [9]> ЮЮ
SQL создает таблицу (create table) и наполняет ее записями (insert)
Поэтому RecordCount до= 0
RecordCount после= ?
Можно, конечно, выполнить еще один SQL :
select count(*) from Table
и получить RecordCount.
Но, хотелось бы не делать лишних движений а получить RecordCount сразу же после ExecSQL.
ЮЮ (2002-08-06 10:51:00) [10]Сколько вставил что ли? :-) Сравни RecordCount до и после. Или посредством запроса, аналогичного условию Where во вставляющем запросе.
3JIA9I CyKA (2002-08-06 10:49:00) [11]Побегай по рекордсетам - из там до фига