Форум: "Базы";
Текущий архив: 2003.04.07;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c