Главная страница
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.011 c
15-1314016337
dreamse
2011-08-22 16:32
2011.12.11
Вопрос форма с тенью или обрез формы по png картинке


8-1217964911
Рацелий
2008-08-05 23:35
2011.12.11
Chip music


4-1229239002
SCL
2008-12-14 10:16
2011.12.11
Как запустить процесс с привилегиями System


3-1268216193
Xmen
2010-03-10 13:16
2011.12.11
Экспорт из Excel в FireBird


15-1314131399
Юрий
2011-08-24 00:29
2011.12.11
С днем рождения ! 24 августа 2011 среда