Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.12.11;
Скачать: CL | DM;

Вниз

Как перехватить исключение 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.009 c
2-1314252487
Onyx2012
2011-08-25 10:08
2011.12.11
Фильтр по значению в Express Quantum Grid


15-1313501980
TInd
2011-08-16 17:39
2011.12.11
Работа с TIFF.


2-1314263285
Константин
2011-08-25 13:08
2011.12.11
Возможно ли создать массив с именем в процессе выполнения пр...?


2-1314285762
brother_home
2011-08-25 19:22
2011.12.11
форматирование integer с разделением по 1000 пробелом


2-1314601549
alexdn
2011-08-29 11:05
2011.12.11
Tms меню компонент