Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблема при записи в таблицу [D7, XP]


Страницы:   1 2

Uno-84 ©   (2007-12-13 09:06:00) 

Здравствуйту! подскажите пожалуйста : я записываю сообщения в 2 таблицы, в одной(MSGBODIES) храниться текст сообщения и ID тела сообщения, в другой ID (MESSAGE_EXT) сообщения, отправитель, дата отправки, тип сообщения и ID Тела сообщения вот код:

with DataModule1.IBQShared do begin
        SQL.Clear;
        SQL.Add('insert into MSGBODIES ( MESSAGEBODY_ID,       MESSAGE_TEXT) values (gen_id(MSGBODIES_GEN, 1),
        :MESSAGE_TEXT)');
        ParamByName('MESSAGE_TEXT').AsString := redtSender1.Text;

        try
         ExecSQL;
        finally
        end;
     end;
 with DataModule1.IBQShared do begin
         SQL.Clear;
         SQL.Add ('insert into MESSAGE_EXT( MESSAGE_ID, MESSAGE_SENDER, MESSAGE_SEND_DATE, MESSAGE_TYPE, MESSAGEBODY_ID) values (gen_id(GEN_MESSAGE_EXT_ID, 1), :MESSAGE_SENDER, :MESSAGE_SEND_DATE, :MESSAGE_TYPE,
        :MESSAGEDODY_ID)');

         try
          ExecSQL;
         finally
         end;
      end;
Проблемазаключаеться в следующем:
поле MESSAGEBODY_ID В таблице MESSAGE_EXT  влешний ключ на поле
MESSAGEBODY_ID в таблице MSGBODIES, так вот при записи в таблицу MESSAGE_EXT начение поля MESSAGEBODY_ID ставиться значение NULL, а мне желательно что бы при записи значение поля совбодало с анологичным полем в MSGBODIES, подскажите пожалуйста строку или строки кода, которые помогли бы решить эту проблему. Заранее спасибо.


Anatoly Podgoretsky   (2007-12-13 10:31:00) [21]

> Uno-84  (13.12.2007 09:55:05)  [5]

> мне сказали её создать, а смысл её создания ( вернее рационолность) мне трудно понять))))

Это что бы ты помучился.


morgoth   (2007-12-13 10:27:00) [22]

тогда объясни зачем ты пишешь такие запросы если все делает триггер?
>'insert into MESSAGE_EXT( MESSAGE_ID, MESSAGE_SENDER, >MESSAGE_SEND_DATE, MESSAGE_TYPE, MESSAGEBODY_ID) values >(gen_id(GEN_MESSAGE_EXT_ID, >1), :MESSAGE_SENDER, :MESSAGE_SEND_DATE, :MESSAGE_TYPE,
>        :MESSAGEDODY_ID)'
ну и собсно по null в своем поле смотри код триггера


Desdechado   (2007-12-13 10:23:00) [23]

Перед вставкой во вторую таблицу запросить полученное после первой вставки значние первичного ключа и использовать его.


Uno-84   (2007-12-13 10:17:00) [24]

Значения параметров прописанны в тригере таблицы


Johnmen   (2007-12-13 10:05:00) [25]


> а вот на счет таблицы MESSAGE_EXT мне сказали её создать

М.б. тогда наиболее логично спросить у них?


morgoth   (2007-12-13 10:00:00) [26]

try
    ExecSQL;
  finally
  end;
вот из-за таких кусков кода, оставленных в наследство, пришлось однажды убить полдня...

по всему код: зачем внешний ключ, зачем вторая таблица, где проставляются значения параметрам, что значит "код работает честно"?


Uno-84   (2007-12-13 09:55:00) [27]

Код писал я, а вот на счет таблицы MESSAGE_EXT мне сказали её создать, а смысл её создания ( вернее рационолность) мне трудно понять))))


Johnmen   (2007-12-13 09:40:00) [28]


>  зачем вторая таблица не знаю

Это не твой код?


Uno-84   (2007-12-13 09:19:00) [29]

Код работает, честно, зачем вторая таблица не знаю))))) но она есть ))))) вот и прошу помощи в её заполнении


Johnmen   (2007-12-13 09:16:00) [30]

и почему здесь finally?


Anatoly Podgoretsky   (2007-12-13 09:12:00) [31]

> Uno-84  (13.12.2007 09:06:00)  [0]

Если не говорить про странный код, то вопрос только один, зачем нужна вторая таблица.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо