Форум: "Базы";
Текущий архив: 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