Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
15-1313365562
icelex
2011-08-15 03:46
2011.12.11
Итак... Стандарт принят...


15-1314290508
Petr V. Abramov
2011-08-25 20:41
2011.12.11
вопрос по Oracle11


2-1314065077
анонимус
2011-08-23 06:04
2011.12.11
сглаживание, выделение границ и т.д и т.п.


2-1314473437
Gu
2011-08-27 23:30
2011.12.11
данные в ресурсах


15-1313841147
Leon-Z
2011-08-20 15:52
2011.12.11
Каретка Windows.





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