<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[My Visual Database — Обработка ошибок связанных с базой данных]]></title>
		<link>https://myvisualdatabase.com/forum/viewtopic.php?id=3218</link>
		<atom:link href="https://myvisualdatabase.com/forum/extern.php?action=feed&amp;tid=3218&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[The most recent posts in Обработка ошибок связанных с базой данных.]]></description>
		<lastBuildDate>Tue, 17 Oct 2017 10:27:40 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Обработка ошибок связанных с базой данных]]></title>
			<link>https://myvisualdatabase.com/forum/viewtopic.php?pid=22488#p22488</link>
			<description><![CDATA[<p><strong>k245</strong><br />В конструкторе пока такой возможности нет, но вы можете сделать этого с помощью программы SQLite Studio, открыв в этой программе файл базы данных sqlite.db</p>]]></description>
			<author><![CDATA[null@example.com (DriveSoft)]]></author>
			<pubDate>Tue, 17 Oct 2017 10:27:40 +0000</pubDate>
			<guid>https://myvisualdatabase.com/forum/viewtopic.php?pid=22488#p22488</guid>
		</item>
		<item>
			<title><![CDATA[Re: Обработка ошибок связанных с базой данных]]></title>
			<link>https://myvisualdatabase.com/forum/viewtopic.php?pid=22479#p22479</link>
			<description><![CDATA[<div class="quotebox"><cite>DriveSoft wrote:</cite><blockquote><p>...Например вы установили ограничение UNIQUE для какого либо поля в БД...</p></blockquote></div><p>Не нашёл такой возможности в конструкторе (v. 3.6).&nbsp; Как добавить уникальность к полю БД?&nbsp; Возможность проверки перед сохранением с помощью скриптов видел в ветке&nbsp; <a href="http://myvisualdatabase.com/forum/viewtopic.php?id=1062">http://myvisualdatabase.com/forum/viewtopic.php?id=1062</a></p>]]></description>
			<author><![CDATA[null@example.com (k245)]]></author>
			<pubDate>Mon, 16 Oct 2017 19:22:41 +0000</pubDate>
			<guid>https://myvisualdatabase.com/forum/viewtopic.php?pid=22479#p22479</guid>
		</item>
		<item>
			<title><![CDATA[Re: Обработка ошибок связанных с базой данных]]></title>
			<link>https://myvisualdatabase.com/forum/viewtopic.php?pid=20924#p20924</link>
			<description><![CDATA[<div class="quotebox"><cite>DriveSoft wrote:</cite><blockquote><p>Данное событие предназначено для перехвата ошибок связанных с исполнением SQL запросом. События для ошибок связанных с подключением к серверу пока не предусмотрено.</p></blockquote></div><p>Ясно, жаль</p>]]></description>
			<author><![CDATA[null@example.com (Igor)]]></author>
			<pubDate>Fri, 23 Jun 2017 12:49:19 +0000</pubDate>
			<guid>https://myvisualdatabase.com/forum/viewtopic.php?pid=20924#p20924</guid>
		</item>
		<item>
			<title><![CDATA[Re: Обработка ошибок связанных с базой данных]]></title>
			<link>https://myvisualdatabase.com/forum/viewtopic.php?pid=20923#p20923</link>
			<description><![CDATA[<p>Данное событие предназначено для перехвата ошибок связанных с исполнением SQL запросом. События для ошибок связанных с подключением к серверу пока не предусмотрено.</p>]]></description>
			<author><![CDATA[null@example.com (DriveSoft)]]></author>
			<pubDate>Fri, 23 Jun 2017 12:47:24 +0000</pubDate>
			<guid>https://myvisualdatabase.com/forum/viewtopic.php?pid=20923#p20923</guid>
		</item>
		<item>
			<title><![CDATA[Re: Обработка ошибок связанных с базой данных]]></title>
			<link>https://myvisualdatabase.com/forum/viewtopic.php?pid=20891#p20891</link>
			<description><![CDATA[<div class="quotebox"><cite>DriveSoft wrote:</cite><blockquote><p>Здравствуйте.</p><br /><p>Прощу прощения за задержку с ответом, был в отпуске. Вопрос все еще актуален для Вас?</p></blockquote></div><p>Да Дмитрий, вопрос актуален.<br />Обратил внимание что скрипт с обработкой ошибки срабатывает если ошибка вызывается в следствии нажатия на кнопку с предустановленным действием (т.е. с действием кнопки выбранным из визуального интерфейса программы). Если же нажатие на кнопку запускает скрипт запроса в базу SQL, то обработка ошибки просто игнорируется.</p>]]></description>
			<author><![CDATA[null@example.com (Igor)]]></author>
			<pubDate>Mon, 19 Jun 2017 19:59:26 +0000</pubDate>
			<guid>https://myvisualdatabase.com/forum/viewtopic.php?pid=20891#p20891</guid>
		</item>
		<item>
			<title><![CDATA[Re: Обработка ошибок связанных с базой данных]]></title>
			<link>https://myvisualdatabase.com/forum/viewtopic.php?pid=20889#p20889</link>
			<description><![CDATA[<p>Здравствуйте.</p><br /><p>Прощу прощения за задержку с ответом, был в отпуске. Вопрос все еще актуален для Вас?</p>]]></description>
			<author><![CDATA[null@example.com (DriveSoft)]]></author>
			<pubDate>Mon, 19 Jun 2017 11:36:33 +0000</pubDate>
			<guid>https://myvisualdatabase.com/forum/viewtopic.php?pid=20889#p20889</guid>
		</item>
		<item>
			<title><![CDATA[Re: Обработка ошибок связанных с базой данных]]></title>
			<link>https://myvisualdatabase.com/forum/viewtopic.php?pid=20814#p20814</link>
			<description><![CDATA[<p>Дмитрий, здравствуйте!<br />Возможно реализовать перехват ошибки связанной с потерей соединения с базой данных MySQL? <br />Пробовал вариант указанный вами выше, не срабатывает. Видимо работает только с ответом от БД.<br />Ошибка при потере соединения начинается так : <strong>Cannot connect to server</strong></p>]]></description>
			<author><![CDATA[null@example.com (Igor)]]></author>
			<pubDate>Sun, 11 Jun 2017 22:26:43 +0000</pubDate>
			<guid>https://myvisualdatabase.com/forum/viewtopic.php?pid=20814#p20814</guid>
		</item>
		<item>
			<title><![CDATA[Обработка ошибок связанных с базой данных]]></title>
			<link>https://myvisualdatabase.com/forum/viewtopic.php?pid=19479#p19479</link>
			<description><![CDATA[<p>Данный пример позволяет обработать ошибку, которая возникла непосредственно в базе данных (СУБД).</p><br /><p>Например вы установили ограничение UNIQUE для какого либо поля в БД. Когда вы пытаетесь создать запись с дубликатом по данному полю, то получите системную ошибку от СУБД, которую можете перехватить и обработать ее так, как вам необходимо. Пример: <br /></p><div class="codebox"><pre><code>// глобальное события для всех ошибок от СУБД
function OnSQLException(Sender: TObject; Msg: string; SQL: string): boolean;
begin
    // ошибка при выполнении функций SQLExecute или SQLQuery
    if Sender=nil  then
    begin
        result := true; // предотвращает показ системной ошибки
        ShowMessage(Msg); // ваше сообщение об ошибке может быть здесь
    end;

    // ошибка возкнила при выполнении действия кнопки frmEmployee.bSaveEmp
    if Sender = frmEmployee.bSaveEmp then 
    begin
        if Pos(&#039;UNIQUE constraint failed&#039;, Msg)=1 then // по тексту сообщения узнает тип ошибки.
        begin
            result := True; // предотвращает показ системной ошибки
            MessageBox(&#039;Человек с данной фамилией уже присутствует в БД..&#039;, &#039;Error&#039;, MB_OK+MB_ICONWARNING);
        end;
    end;
end;



procedure Form1_Button5_OnClick (Sender: string; var Cancel: boolean);
begin
    SQLExecute(&#039;INSERT INTO employees (lastname) VALUES (&quot;ivanov&quot;)&#039;);
end;


procedure Form1_Button6_OnClick (Sender: string; var Cancel: boolean);
var
    Results: TDataSet;
begin
    SQLQuery(&#039;INSERT INTO employees (lastname) VALUES (&quot;ivanov&quot;)&#039;, Results);
end;</code></pre></div><br /><p><strong>Проект с примером:</strong></p>]]></description>
			<author><![CDATA[null@example.com (DriveSoft)]]></author>
			<pubDate>Mon, 20 Mar 2017 14:51:41 +0000</pubDate>
			<guid>https://myvisualdatabase.com/forum/viewtopic.php?pid=19479#p19479</guid>
		</item>
	</channel>
</rss>
