Главная страница
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.032 c
15-1165496453
Juice
2006-12-07 16:00
2006.12.31
Будут ли живы WinAPI, COM ?


2-1166001845
mfender
2006-12-13 12:24
2006.12.31
Перечисляемые свойства


2-1165921915
k4
2006-12-12 14:11
2006.12.31
Не отображается вкладка..


15-1164994284
Cyrax
2006-12-01 20:31
2006.12.31
Оптимальный стиль программирования


2-1166096952
goric
2006-12-14 14:49
2006.12.31
String в синтаксис языка