Форум: "Начинающим";
Текущий архив: 2011.12.11;
Скачать: [xml.tar.bz2];
ВнизКак перехватить исключение Ado? Найти похожие ветки
← →
Сергей (2011-08-23 18:27) [0]Всем привет. Подскажите почему блок Try Except End не перехватывает ошибки ADO и как их перехватить? После возникновения ошибки появляется сообщение, мне нужно что бы оно не появлялось. Я где-то читал что ошибки ADO обрабатываются не Delphi a самим Ado, как их обработать. Использую AdoConnection и AdoQuery. Спасибо.
← →
SQLEX © (2011-08-23 18:40) [1]перехватываются
код покажите ваш
← →
Сергей (2011-08-23 19:01) [2]function TfrmMain.AddAccount(FileBaseName, NameTableMes, Account:String): boolean;
var
ADOConnection:TADOConnection;
ADOQuery:TADOQuery;
ConnectString: String;
SqlString:String;
RecordCount: Integer;
ListNameCol: TStrings;
ListIndex: Integer;
SqlStringCol,SqlStringData: String;
begin
try
result:=false;
Screen.Cursor := crSQLWait;
ListNameCol:=TStringList.Create;
ADOConnection:=TADOConnection.Create(self);
ADOQuery:= TADOQuery.Create(self);
ConnectString:="Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source="+FileBaseName + ";Mode=ReadWrite;Persist Security Info=False;";
ADOConnection.ConnectionString :=ConnectString;
ADOConnection.Connected := false;
ADOConnection.LoginPrompt:= false;
ADOConnection.Connected := true;
ADOQuery.Connection:=ADOConnection;
ADOQuery.Active := false;
SqlString:="ALTER TABLE " +NameTableMes+ " ADD " +Account+ " VARCHAR(64) NOT NULL";
// загружаю поле сообщений
ADOQuery.SQL.Clear;
ADOQuery.SQL.Add(SqlString);
ADOQuery.ExecSQL;
result:=true;
finally
ADOConnection.Free;
ADOQuery.Free;
Screen.Cursor :=crArrow;
end;
end;
← →
sniknik © (2011-08-23 19:39) [3]теперь покажи Except
← →
Сергей (2011-08-23 19:43) [4]в случае исключения переходим в блок после finally
← →
Anatoly Podgoretsky © (2011-08-23 19:56) [5]> Сергей (23.08.2011 19:43:04) [4]
И что?
← →
sniknik © (2011-08-23 20:09) [6]> почему блок Try Except End
> переходим в блок после finally
дальтоник, оранжевое от зеленого отличить не можешь?
← →
Ega23 © (2011-08-23 20:15) [7]
var
list: TStringList;
begin
list := TStringList.Create;
try
try
// Подываем исключение List index out of bounds
ShowMessage(list[1]);
except on E: Exception do
begin
ShowMessage("except-блок, исключение " + E.Message);
if MessageBox(Handle, PChar("Произошло исключение"#13#10 +
E.Message + #13#10 +
Поднять исключение снова?),
PChar("Ошибка"), MB_OKCANCEL) = IDOK then
raise;
end;
end;
finally
ShowMessage("finally-блок, выполняется полюбому");
list.Free;
end;
end;
вроде так
← →
Dennis I. Komarov © (2011-08-23 20:24) [8]
with TADOCommand.Create(Self) do try
LoginPrompt:= false;
ConnectString:="Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source="+FileBaseName + ";Mode=ReadWrite;Persist Security Info=False;";
//Или к конекшену, но тогда конекшен никак не тут инициализируется
Command:="ALTER TABLE " +NameTableMes+ " ADD " +Account+ " VARCHAR(64) NOT NULL"; // хрень какая то...
ExecSQL; //Ничерта не понял, чего возвращается должно
finally
Free;
end;
P.S. Сильно не пинать, писал прят тут, но если что где - исправлять ТС
P.P.S. Автору почитать про хранимки (хотя...)
P.P.S. И конечно от sniknik: не юзайте TADOQuery
← →
Игорь Шевченко © (2011-08-23 23:22) [9]
> не юзайте TADOQuery
Еще один баптист. Когда же вы переведетесь ? ;)
← →
Dennis I. Komarov © (2011-08-23 23:27) [10]
> Игорь Шевченко © (23.08.11 23:22) [9]
Не толкай новенького с пути истинного, ибо свет... а дальше не придумал ;)
← →
OW © (2011-08-24 08:46) [11]также есть свойство
if ADOConnection.Errors.Count > 0 then
ошибка точно этого соединения, а не чего-то еще
i = 0 to ADOConnection.Errors.Count - 1
ADOConnection.Errors.Item[i].Description (.Source .SQLState) а именно какие
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2011.12.11;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.004 c