Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.11.13;
Скачать: [xml.tar.bz2];

Вниз

Как получить результат запроса ADOQuery ?   Найти похожие ветки 

 
dreamse   (2005-10-05 11:22) [0]

SQL код в SyntaxMemo1 :


backup database mybase
TO disk = "c:\Back.bak"  


Код в Delphi :


ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:=SyntaxMemo1.Lines.Text;
try
 ADOQuery1.ExecSQL;
except
   on e:exception do
     listerrors(e); // Обработчик ошибки


try Except обрабатываються синтаксические ошибки при создани запроса а вот как вернуть ответ от MS SQL server"a ?
В данном случае должно возвратиться сообщение о успешной или не успешной операции  ( + время + размер и пр. )

Компоненты :

ADOQuery
ADOConnection

Сам код обрабатываеться нормально.


 
sniknik ©   (2005-10-05 11:35) [1]

посмотри в ADOConnection1.Errors,  информационные сообщения это те же ошибки, только с пониженным статусом(кодом).


 
dreamse   (2005-10-05 11:49) [2]

> sniknik

Добавление обработчика в :


ADOConnectionInfoMessage
ADOConnectionExecuteComplete
ADOConnectionRollbackTransComplete
ADOConnectionWillExecute
ADOConnectionCommitTransComplete
ADOConnectionBeginTransComplete


Не принесло никакого результата


 
ANB ©   (2005-10-05 11:54) [3]


> dreamse   (05.10.05 11:49) [2]
- при чем тут эти обработчики ? В errors лежат все сообщения от сервера, в том числе и не ошибки. Заполняется полностью после выполнения запроса.


 
sniknik ©   (2005-10-05 12:09) [4]

dreamse   (05.10.05 11:49) [2]
> Добавление обработчика в :
> ADOConnectionInfoMessage
как именно "обрабытавал"?

кроме всего поставь у квери CursorLocation:= clUseServer;

ANB ©   (05.10.05 11:54) [3]
>  - при чем тут эти обработчики ?
ну один то точно причем. ;) в нем возвращаются все сообщения конекта, в том числе и ошибки.


 
dreamse   (2005-10-05 12:11) [5]

> sniknik

Посмотрел ,

ADOConnection1.Errors.count = 0

Ничего нет :(


 
sniknik ©   (2005-10-05 12:39) [6]

при локальном курсоре посылается не все, чтото не посылает сообщений вообше... (еще возможна путаница в "обертке" ADO)

но
backup database mybase
TO disk = "c:\Back.bak"  
точно посылает (делал тестовую прогу когдато, для другого, сейчас проверил бекап) выдает
Processed 4712 pages for database "hl", file "hotline_Data" on file 14.
Processed 1 pages for database "hl", file "hotline_Log" on file 14.
BACKUP DATABASE successfully processed 4713 pages in 2.935 seconds (13.152 MB/sec).

(база моя естественно подтавлена, самую маленькую выбрал)

можеш сам проверить. код (один из возможных), взял тот где исключены(должны бы) всякие случайности в виде настроек/обертки...

uses ..., ADOInt;

TForm1 = class(TForm)
   ...
   Memo1: TMemo;
  ...
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 cmd: _Command;
 Conn: _Connection;
 Pars: Parameters;
 RA: OleVariant;
 rs: _Recordset;
 n: Integer;
begin
 Conn:= CreateComObject(CLASS_Connection) as _Connection;
 Conn.ConnectionString:= "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False";
 Conn.Open(Conn.ConnectionString, "", "", Integer(adConnectUnspecified));

 cmd:= CreateComObject(CLASS_Command) as _Command;
 cmd.CommandType:= adCmdText;
 cmd.Set_ActiveConnection(Conn);

 cmd.CommandText:= "backup database mybase"#10#13+
                   "TO disk = ""c:\Back.bak""";
 rs:= cmd.Execute(RA, 0, Integer(adCmdText));

 while rs <> nil do begin
   for n:= 0 to (Conn.Errors.Count-1) do
     Memo1.Lines.Add(Conn.Errors.Item[n].Description);
   rs:= rs.NextRecordset(RA);
 end;

 cmd.Set_ActiveConnection(nil);      
 Conn.Close;
 Pars:= nil;
 cmd:= nil;
 Conn:= nil;
end;


должно сработать "as is".


 
dreamse   (2005-10-05 12:58) [7]

Ругаеться на CreateComObject может что в uses прописать забыл ?


 
dreamse   (2005-10-05 13:29) [8]

> sniknik

Спасибо , разобрался , всё работает
Нужно было вставить : ComObj



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

Форум: "Базы";
Текущий архив: 2005.11.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.118 c
6-1122396939
Ильичев С.А.
2005-07-26 20:55
2005.11.13
WSACleanup


1-1129780400
Kulakov_an
2005-10-20 07:53
2005.11.13
Печать на принтере с разбиением на страницы


11-1111470548
bar
2005-03-22 08:49
2005.11.13
Может убрать строку { KOL MCK } // Do not remove this line


2-1130085694
_xroot
2005-10-23 20:41
2005.11.13
Drag&amp;Drop из проводника в программу


2-1129983763
Ромио
2005-10-22 16:22
2005.11.13
Office





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