Главная страница
    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.47 MB
Время: 0.043 c
2-1165692889
FIL-23
2006-12-09 22:34
2006.12.31
QReport


15-1165610085
tesseract
2006-12-08 23:34
2006.12.31
pocket PC


15-1165535836
sl8er
2006-12-08 02:57
2006.12.31
Суммирование времени в SQL


2-1165756805
nurlan_1
2006-12-10 16:20
2006.12.31
Table1: No index currently active


10-1126864340
Delphir
2005-09-16 13:52
2006.12.31
Explorer ToolBand





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский