Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.06.29;
Скачать: CL | DM;

Вниз

проблема с добавлением использованием записи   Найти похожие ветки 

 
_e_u_ ©   (2005-05-14 12:51) [0]

По нажатию кнопки, добавляется запись в АДОтаблицу1, затем мне нужно использовать эту запись в АДОтаблице2, в этой же процедуре. Это не получается, использование добавленной записи получается только после перезапуска приложения.
Помогите, не могу найти решение...


 
_e_u_ ©   (2005-05-14 12:52) [1]

забыл указать, таблицы на МССКУЭЛЬСервере


 
Lex_! ©   (2005-05-14 12:54) [2]

после добавления
AdoTable2.requery()


 
_e_u_ ©   (2005-05-14 12:59) [3]

Lex_!, спасиб, сейчас пробану...


 
_e_u_ ©   (2005-05-14 13:06) [4]

не вышло...хееелп..


 
Sergey13 ©   (2005-05-14 13:10) [5]

Переоткрой 2 таблицу.


 
Lex_! ©   (2005-05-14 13:11) [6]

код?


 
Lex_! ©   (2005-05-14 13:11) [7]


> Sergey13 ©   (14.05.05 13:10) [5]
> Переоткрой 2 таблицу.

Requery разве не аналогичный результат даст?...


 
Lexer ©   (2005-05-14 13:13) [8]


> _e_u_ ©   (14.05.05 12:51)
> По нажатию кнопки, добавляется запись в АДОтаблицу1, затем
> мне нужно использовать эту запись в АДОтаблице2, в этой
> же процедуре.


как добавляешь? делаешь ли пост? завершаешь транзакцию? как вызываешь процедуру?


 
Sergey13 ©   (2005-05-14 13:16) [9]

2[7] Lex_! ©   (14.05.05 13:11)
> Requery разве не аналогичный результат даст?...
А я знаю? Я с АДО не работал ни разу, как и с МССКЛ. 8-)


 
evvcom ©   (2005-05-14 13:39) [10]

Цепляй обе таблицы через один Connection


 
_e_u_ ©   (2005-05-14 13:42) [11]

procedure TForm5.Button1Click(Sender: TObject);
begin
Form2.ADOConnection1.BeginTrans;
try
 if (form2.Edit3.Text<>form2.ADOQuery2izdat.Text)and(form2.Edit3.text<>"")then
  begin
  form2.ADOTable2.Append;
  form2.ADOTable2Izdat.Text:=form2.Edit3.Text;
  form2.ADOTable2.Post;
  end;
 form2.ADOTable2.First;
 Form2.ADOTable5.Append;
while not (form2.ADOTable2.Eof) do
 begin
  if Form2.Edit3.text=form2.ADOTable2Izdat.text then
   begin
   form2.ADOTable5Id_izd.Text:=form2.ADOTable2Id_izd.Text;
   form2.ADOTable2.Last;
   end
  else form2.ADOTable2.Next;
 end;
form2.ADOTable5.Post;
Form2.ADOConnection1.CommitTrans;
except
Form2.ADOConnection1.RollbackTrans;
end;

вот кусок.


 
_e_u_ ©   (2005-05-14 13:43) [12]

evvcom, подцеплено через один все.


 
Johnmen ©   (2005-05-14 13:47) [13]

>_e_u_ ©   (14.05.05 13:42) [11]

А где здесь АДОтаблица1 ?


 
Johnmen ©   (2005-05-14 13:49) [14]

2. Какой смысл в
 if (form2.Edit3.Text<>form2.ADOQuery2izdat.Text)and(form2.Edit3.text<>"")then


 
Johnmen ©   (2005-05-14 13:50) [15]

3. М.б. лучше Locate вместо цикла ?


 
Johnmen ©   (2005-05-14 13:53) [16]

4. Почему вообще сразу не изменить form2.ADOTable5Id_izd.Text, ведь условие ВСЕГДА выполнится ?


 
Johnmen ©   (2005-05-14 13:56) [17]

поправка к п.4
form2.ADOTable5Id_izd.Text вполне может принять значение NULL.

В целом, ЗАЧЕМ всё это надо ?


 
_e_u_ ©   (2005-05-14 14:20) [18]

блин...запарился писать ответ...виснет все постоянно...

> В целом, ЗАЧЕМ всё это надо ?

диплом пишу:)
вобще тут я пытаюсь реализовать: добавление книги. В этом куске только добавление издательства, издательства у меня в отдельной таблице находятся, у каждого издательства свой личный номер, по этому номеру издательство связывается с таблицей(АДОтейбл5) в которой содержатся книги.
у меня проверяется - если в таблице с издательствами нет введенного значения, то оно заносится в эту таблицу, затем номер этого нового значения заносится в таблицу с книгами, если такое издательство уже есть, то просто его номер заносится в таблицу с книгами.


 
Johnmen ©   (2005-05-14 14:40) [19]

>затем номер этого нового значения заносится в таблицу с книгами,

Зачем ?????????????
У тебя же стандартная связка Master-Detail. А насчет работы с МД мегатонны инфы.......


 
_e_u_ ©   (2005-05-14 14:57) [20]

ну я щас попробую ознакомиться, но у меня времени мало, в дебри лезть некогда, просто я думал найти помощь по конкретно моему варианту...
спасибо за помощь...


 
Lexer ©   (2005-05-14 15:01) [21]

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


 
ANB ©   (2005-05-14 15:05) [22]

Имхо, не есть это кошерно, добавлять в справочник все, что юзеру захочется написать в таблице. Мусора будет много.


 
Sergey13 ©   (2005-05-14 15:10) [23]

2[22] ANB ©   (14.05.05 15:05)
Дык никто ее юзать и не будет - диплом. База останется почти девственно чистой. 8-)


 
_e_u_ ©   (2005-05-14 15:40) [24]


> Lexer ©   (14.05.05 15:01) [21]
> посмотри, может эт из-за позднего закрытия транзакции, попробуй
> сдлать коммит после первой вставки и опять открыть транз.
> перед вставкой во вторую

не катит:) придется как то обходить...


 
ANB ©   (2005-05-14 17:52) [25]


> Дык никто ее юзать и не будет - диплом.
- а если юзать не будет никто - убери транзакции. Они здесь реально то не очень нужны.
Код у тебя какой то странный. Где поиск такого же издательства ? Переименуй объекты и переменные на понятные идентификаторы и выложи исходники еще раз.


 
_e_u_ ©   (2005-05-15 10:27) [26]

вобще, использование моего приложения возможно и планируется моим универом...но я уже буду с дипломом, когда начнут проявляться ляпы:)
ANB чтоб было яснее надо кучу текста выложить, щас попробую скомпоновать и объяснить по лучше...


 
_e_u_ ©   (2005-05-15 10:41) [27]

procedure TForm5.Button1Click(Sender: TObject);
begin
Form2.ADOConnection1.BeginTrans;
try
 if (form2.Edit5.Text<>form2.ADOQuery4vid.Text)and(form2.Edit5.text<>"")then
  begin
  form2.ADOTable3.Append;
  form2.ADOTable3Vid.Text:=form2.Edit5.Text;
  form2.ADOTable3.Post;
  end;
  Form2.ADOTable5.Append;
  form2.ADOTable3.First;
while not (form2.ADOTable3.Eof) do
 begin
  if Form2.Edit5.text=form2.ADOTable3Vid.text then
   begin
   form2.ADOTable5Id_vid.Text:=form2.ADOTable3Id_vid.text;
   form2.ADOTable3.Last;
   end
  else form2.ADOTable3.Next;
 end;
form2.ADOTable5.Post;
Form2.ADOConnection1.CommitTrans;
except
Form2.ADOConnection1.RollbackTrans;


на предыдущей форме:
procedure TForm2.Edit5Change(Sender: TObject);
begin
if Edit5.Focused=true then
begin
 ADOQuery4.Close;
 ADOQuery4.SQL.Clear;
 ADOQuery4.SQL.Add("SELECT vid");
 ADOQuery4.SQL.Add("FROM vid");
 ADOQuery4.SQL.Add("WHERE vid LIKE :vi");
 ADOQuery4.Parameters.ParamByName("vi").Value:="%"+Edit5.Text+"%";
 ADOQuery4.Open;
end;
end;
procedure TForm2.DBGrid4CellClick(Column: TColumn);
begin
Form2.Edit5.Text:=ADOQuery4vid.Text;
end;


сейчас яснее вроде стало?


 
_e_u_ ©   (2005-05-15 17:24) [28]

Удалено модератором



Страницы: 1 вся ветка

Текущий архив: 2005.06.29;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.032 c
1-1117870581
mr.Spok
2005-06-04 11:36
2005.06.29
Использование TreeView.Selected.MoveTo(...);


10-1094755922
Комбинатор
2004-09-09 22:52
2005.06.29
Что такое corba и с чем её едят?


14-1117551152
Ломброзо
2005-05-31 18:52
2005.06.29
Что посоветуете почитать по методикам тестирования


14-1117735860
seregka
2005-06-02 22:11
2005.06.29
Теор.вероятности


14-1117443817
Serg1981
2005-05-30 13:03
2005.06.29
Русский текст на BitBtn