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

Вниз

MSSQL & Delphi   Найти похожие ветки 

 
OleGKu   (2003-03-19 15:48) [0]

Как мне можно получить Messages, которые выдаются после исполнения
SQL-команды.
Некоторые команды, например DBCC CHECKDB() не возвращают результирующий набор записей, а пишут только Messages. Как мне получить
в Delphi-программе эти сообщения.


 
Clickmaker ©   (2003-03-19 15:54) [1]

Query.SQL := Format("DBCC INPUTBUFFER(%d)", [spid]);
Query.Open;
LastMsg := Query.FieldByName("EventInfo").AsString;


 
OleGKu   (2003-03-19 16:29) [2]

DBCC INPUTBUFFER возвращает последнюю SQL-команду, посланную
от клиента SQL-серверу, а мне нужно получить сообщения, которые
выдал SQL-сервер после выполнения команды
(те сообщения которые появляются в SQL Query Analyzer на закладке Messages в панели результатов )


 
Clickmaker ©   (2003-03-19 17:22) [3]

Ну тогда видимо DBCC OUTPUTBUFFER :)


 
handra ©   (2003-03-19 17:58) [4]

вообщето DBCC для некоторых команд может возвращать результат в виде recordset, RTFM MSSQL Books Online


 
sniknik ©   (2003-03-19 20:36) [5]

была уже подобная тема, правда там про свои процедуры и PRINT говорили ... ну неважно, все сообщения типа PRINT "Херня всякая" это ошибки
"The message is returned as an informational error in ADO"
и искать нужно в ошибках.
правда для своих рекомендуют ".. use RAISERROR instead of PRINT."
но в этом случае не катит, естественно, чтож попробуй следующий код, получиш тоже что в Квери Анализере.

ADOCommand1.CommandText:= "DBCC CHECKDB";
ADOCommand1.Execute;
for i:= 0 to ADOConnection1.Errors.Count-1 do
Memo1.Lines.Add(ADOConnection1.Errors[i].Description);


(курсор должен быть clUseServer)


 
handra ©   (2003-03-20 11:21) [6]

рекомендуют делать так:

Using DBCC Result Set Outputs
Many DBCC commands can produce output in tabular form (using the WITH TABLERESULTS option). This information can be loaded into a table for further use. An example script is shown below:

-- Create the table to accept the results
CREATE TABLE #tracestatus (
TraceFlag INT,
Status INT
)

-- Execute the command, putting the results in the table
INSERT INTO #tracestatus
EXEC ("DBCC TRACESTATUS (-1) WITH NO_INFOMSGS")

-- Display the results
SELECT *
FROM #tracestatus



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

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

Наверх




Память: 0.48 MB
Время: 0.014 c
6-19728
fagot
2003-02-14 15:14
2003.04.07
Как декодировать subject письма


14-19858
Kolya almaty
2003-03-21 16:31
2003.04.07
про си


3-19477
zom
2003-03-19 15:25
2003.04.07
Как можно использовать TDBComboBox ?


14-19766
croupier
2003-03-22 20:38
2003.04.07
Нужна книга по Делфям на англ. яз.


6-19726
TButton
2003-02-13 18:07
2003.04.07
СерверСокет