Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
7-19886
Phant0m
2003-02-12 12:35
2003.04.07
Нужно обработать сигнал с СОМ или LPT порта


14-19851
Alexander Vasjuk
2003-03-18 17:22
2003.04.07
Кто меня пожалеет...


3-19474
Сергей Шапранов
2003-03-19 14:08
2003.04.07
Работа Paradox в сети


4-19925
Dmitry_Koteroff
2003-02-07 23:30
2003.04.07
Написание аналога ps в Win32


14-19810
iNew
2003-03-20 09:19
2003.04.07
Подскажите где взять хороший компонент для проверки CRC,





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский