Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.12.31;
Скачать: CL | DM;

Вниз

Получение результатов работы SQL-запроса   Найти похожие ветки 

 
Kostafey ©   (2006-12-10 20:34) [0]

Уважаемые мастера! Если я кого-то еще не замучил своими вопросами то TSQL, то окажите содействие в следующем:
Если посылать запрос из SQL Managment Studio (СУБД SQL Server 2005), то помимо результата выполнения запроса
(например таблицы, если это оператор select) он выводит сообщение (например "(359 row(s) affected)").

ВОПРОС: А как в Delphi получить текст этого сообщения при подключении к СУБД через ADO ?


 
Desdechado ©   (2006-12-10 20:47) [1]

RowsAffected property (TADOQuery)
неужели тяжело догадаться?


 
Kostafey ©   (2006-12-10 20:59) [2]

> RowsAffected property (TADOQuery)

Угу, а если посылается сразу ряд запросов в TADOQuery.SQL и выполняются одним ExecSQL,
то я получается смогу получить только сообщение о выполнении последнего запроса ?


 
sniknik ©   (2006-12-10 22:34) [3]

> то я получается смогу получить только сообщение о выполнении последнего запроса ?
наоборот первого отображаемого, т.к. ADODataSet "прокручивает" "пустышки" спереди до первого с данными.
следующие можно получить после перехода к следующему по NextRecordset.

если же нужны именно "пустышки" (от инсертов, апдейтов всяких там где рекордсеты без данных) то надо пользоваться не ADODataSet а ADOCommand у него нет функциональности по обрезанию пустых/неотображаемых рекордсетов.

ADOQuery(ADOTable, ADOStoredProc) выкинь в корзину, и больше не используй.


 
Kostafey ©   (2006-12-10 23:13) [4]

> если же нужны именно "пустышки" (от инсертов, апдейтов всяких
> там где рекордсеты без данных)

Да-да, именно они-то и нужны


> то надо пользоваться не ADODataSet а ADOCommand

Да, но я что-т о никак не могу найти у ADOCommand аналог RowsAffected property (TADOQuery)


> ADOQuery(ADOTable, ADOStoredProc) выкинь в корзину, и больше
> не используй.

Даже в практике такого ламера как я случалось, что ADOTable генерил ошибку там
где ADODataSet успешно справлялся с задачей.


 
sniknik ©   (2006-12-10 23:33) [5]

> Да, но я что-т о никак не могу найти у ADOCommand аналог RowsAffected property (TADOQuery)
у возвращаемого рекордсета ищи, и не свойство, у него это параметр у NextRecordset.


 
Kostafey ©   (2006-12-10 23:47) [6]

> у возвращаемого рекордсета ищи, и не свойство, у него это
> параметр у NextRecordset.

Нет, боюсь что не получается самостоятельно разобраться.
ADOCommand1.Parameters.Count;
выдает 0, что наверное и неудивительно.

NextRecordset - что такое ?

Есть у ADOCommand несколько интересных перегруженных Execute.
Наверное сообщения о результатах запроса нужно как-то черпать их них ?


 
Kostafey ©   (2006-12-11 00:11) [7]


> Есть у ADOCommand несколько интересных перегруженных Execute.


Возвращают эти Execute значение типа _Recordset,
у которого и метод NextRecordset есть. Но как это работает понаять пока не получается.


 
sniknik ©   (2006-12-11 00:58) [8]

> Есть у ADOCommand несколько интересных перегруженных Execute.
> Наверное сообщения о результатах запроса нужно как-то черпать их них ?
только для первого

> Возвращают эти Execute значение типа _Recordset,
> у которого и метод NextRecordset есть.
нашел :о)

> Но как это работает понаять пока не получается.

var
 Recordset: _Recordset;
 RecAff: Integer;
 RecAff2: OleVariant;

begin
 Recordset:= ADOCommand1.Execute(RecAff, EmptyParam);
 ...
 while Recordset <> nil do begin
    Recordset:= Recordset.NextRecordset(RecAff2);
   ....
 end;


 
Kostafey ©   (2006-12-11 01:20) [9]

> [8] sniknik ©   (11.12.06 00:58)

Спасибо, теперь стало гораздо понятнее.

Но что-то не получается считать информацию из Recordset.

Так Recordset.Fields.Count будет 0
Есть еще несколько методов начинающихся с Get...


 
sniknik ©   (2006-12-11 01:56) [10]

> Так Recordset.Fields.Count будет 0
а чего ты ожидал от "пустышки"? полный отчет по изменениям, с логом старых + новых значений полей?...
нет, данных в нем нет, а значит и структуры под них.


 
Kostafey ©   (2006-12-11 02:05) [11]

> а чего ты ожидал от "пустышки"? полный отчет по изменениям,
> с логом старых + новых значений полей?...
> нет, данных в нем нет, а значит и структуры под них.

А мне всего-то нужно считать значения RowsAffected для ряда заросов



Страницы: 1 вся ветка

Текущий архив: 2006.12.31;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.03 c
15-1165864472
Витян
2006-12-11 22:14
2006.12.31
Как поставить программиста в тупик?


2-1165902757
Mazer
2006-12-12 08:52
2006.12.31
Тренажор на клавиатуре по печатанию в слепую


2-1165992803
031178
2006-12-13 09:53
2006.12.31
SaveDialog


1-1163424853
GEN++
2006-11-13 16:34
2006.12.31
Контролер сетевой активности


15-1165392219
Kolan
2006-12-06 11:03
2006.12.31
CRT монитор дергается сверху зачем? :)