<?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=7755</link>
		<atom:link href="https://myvisualdatabase.com/forum/extern.php?action=feed&amp;tid=7755&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[The most recent posts in Прошу помощи со скриптом.]]></description>
		<lastBuildDate>Tue, 21 Sep 2021 14:34:26 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Прошу помощи со скриптом]]></title>
			<link>https://myvisualdatabase.com/forum/viewtopic.php?pid=42299#p42299</link>
			<description><![CDATA[<div class="quotebox"><cite>Alexandr wrote:</cite><blockquote><p>Есть форма с двумя таблицами и форма для заполнения этих таблиц. Добавление новых записей происходит по одной кнопке, удаление также по одной кнопке. Проблема с редактированием записей..при редактировании создается новая запись, а не изменяется существующая...</p><p>Вопрос: как сделать чтобы редактировало записи также по одной кнопке?</p></blockquote></div><p>Изменить процедуру:</p><div class="codebox"><pre><code>procedure Form2_Button1_OnClick (Sender: TObject; var Cancel: boolean);
var
  maxID:string;
begin
   if Form2.dbAction = &#039;NewRecord&#039; then
   begin
     // запись в таблицу prodavec
     SQLExecute(&#039;INSERT INTO prodavec (nameS) VALUES (&quot;&#039;+Form2.Edit2.Text+&#039;&quot;)&#039;);
     // получаем id последней записи в таблице prodavec
     maxID:= SQLExecute (&#039;select max(id) from prodavec&#039;);
     // запись в таблицу client
     SQLExecute(&#039;INSERT INTO client (name, id_prodavec) VALUES (&quot;&#039;+Form2.Edit1.Text+&#039;&quot;, &quot;&#039;+maxID+&#039;&quot;)&#039;);
   end;
   if Form2.dbAction = &#039;ShowRecord&#039; then
   begin
     // запись в таблицу prodavec
     SQLExecute(&#039;UPDATE prodavec SET nameS = &quot;&#039;+Form2.Edit2.Text+&#039;&quot; WHERE id = &#039;+Form2.edtIDProdavec.Text );
     // запись в таблицу client
     SQLExecute(&#039;UPDATE client SET name = &quot;&#039;+Form2.Edit1.Text+&#039;&quot; WHERE id = &#039;+IntToStr(Form1.TableGrid1.dbItemID) );
   end;
   Form1.TableGrid1.dbUpdate;
   Form1.TableGrid2.dbUpdate;
   Form2.Close;
end;</code></pre></div><p>На форме добавить поле:</p><p><span class="postimg"><img src="http://myvisualdatabase.com/forum/misc.php?action=pun_attachment&amp;item=8086&amp;download=0" alt="http://myvisualdatabase.com/forum/misc.php?action=pun_attachment&amp;amp;item=8086&amp;amp;download=0" /></span></p><br /><p>Вот только всё это зря вы затеяли ))) У вас есть две таблицы - клиенты и продавцы. И связь между ними. Почему такая структура данных?&nbsp; И зачем понадобилось двойное редактирование? На практике стараются так не делать, потому что реляционные СУБД плохо приспособлены для хранения наследования объектов. Могу предположить, что вы хотели бы иметь иерархию:</p><br /><p>Клиенты<br />&nbsp; &nbsp; Покупатели<br />&nbsp; &nbsp; Продавцы<br />&nbsp; &nbsp; ...</p><p>На практике Продавцы не отливаются от Покупателей или от Клиентов по набору признаков, поэтому не стоит для них создавать отдельные сущности (таблицы), оставьте одну таблицу Клиенты и, если вам очень надо как-то их отличать,&nbsp; добавьте признаки &quot;Покупатель&quot; и &quot;Продавец&quot;. Именно признаки флаги, а не справочник &quot;Тип клиента&quot;, так как на практике один и тот же клиент может быть как покупателем, так и продавцом. Но всё зависит от вашего ТЗ.</p>]]></description>
			<author><![CDATA[null@example.com (k245)]]></author>
			<pubDate>Tue, 21 Sep 2021 14:34:26 +0000</pubDate>
			<guid>https://myvisualdatabase.com/forum/viewtopic.php?pid=42299#p42299</guid>
		</item>
		<item>
			<title><![CDATA[Re: Прошу помощи со скриптом]]></title>
			<link>https://myvisualdatabase.com/forum/viewtopic.php?pid=42295#p42295</link>
			<description><![CDATA[<p>В свойствах формы есть dbAction - Содержит название действия кнопки, с помощью которой форма была вызвана. Возможные значения: NewRecord, ShowRecord, ShowForm. Пустое значение указывает на то, что форма была открыта с помощью скрипта. Свойство только для чтения.</p><p>анализируете и выполняете действие в SQL INSERT или UPDATE </p><div class="codebox"><pre><code>procedure Form2_Button1_OnClick (Sender: TObject; var Cancel: boolean);
var
maxID:string;
begin

  if Form2.dbAction = &#039;ShowRecord&#039; then ShowMessage(&#039;Редактирование&#039;);

  if Form2.dbAction = &#039;NewRecord&#039; then ShowMessage(&#039;Новая запись&#039;);


   // запись в таблицу prodavec
   SQLExecute(&#039;INSERT INTO prodavec (nameS) VALUES (&quot;&#039;+Form2.Edit2.Text+&#039;&quot;)&#039;);
   // получаем id последней записи в таблице prodavec
   maxID:= SQLExecute (&#039;select max(id) from prodavec&#039;);
   // запись в таблицу client
   SQLExecute(&#039;INSERT INTO client (name, id_prodavec) VALUES (&quot;&#039;+Form2.Edit1.Text+&#039;&quot;, &quot;&#039;+maxID+&#039;&quot;)&#039;);
   Form1.TableGrid1.dbUpdate;
   Form1.TableGrid2.dbUpdate;
   Form2.Close;
end;</code></pre></div><p>пример SQL UPDATE<br /></p><div class="codebox"><pre><code>UPDATE prodavec
SET nameS =&#039;Сеня&#039;
WHERE id = 3;</code></pre></div><p>Можно пойти путем SQL запросов но нужно знать все нюансы таблиц и записей.</p>]]></description>
			<author><![CDATA[null@example.com (sparrow)]]></author>
			<pubDate>Tue, 21 Sep 2021 13:27:20 +0000</pubDate>
			<guid>https://myvisualdatabase.com/forum/viewtopic.php?pid=42295#p42295</guid>
		</item>
		<item>
			<title><![CDATA[Re: Прошу помощи со скриптом]]></title>
			<link>https://myvisualdatabase.com/forum/viewtopic.php?pid=42290#p42290</link>
			<description><![CDATA[<p>Вам достаточно создать кнопку с функцией редактирования оной таблицы.</p>]]></description>
			<author><![CDATA[null@example.com (vit007)]]></author>
			<pubDate>Tue, 21 Sep 2021 09:36:07 +0000</pubDate>
			<guid>https://myvisualdatabase.com/forum/viewtopic.php?pid=42290#p42290</guid>
		</item>
		<item>
			<title><![CDATA[Прошу помощи со скриптом]]></title>
			<link>https://myvisualdatabase.com/forum/viewtopic.php?pid=42256#p42256</link>
			<description><![CDATA[<p>Есть форма с двумя таблицами и форма для заполнения этих таблиц. Добавление новых записей происходит по одной кнопке, удаление также по одной кнопке. Проблема с редактированием записей..при редактировании создается новая запись, а не изменяется существующая...</p><p>Вопрос: как сделать чтобы редактировало записи также по одной кнопке?</p>]]></description>
			<author><![CDATA[null@example.com (Alexandr)]]></author>
			<pubDate>Sat, 18 Sep 2021 09:42:58 +0000</pubDate>
			<guid>https://myvisualdatabase.com/forum/viewtopic.php?pid=42256#p42256</guid>
		</item>
	</channel>
</rss>
