![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#16
|
|||
|
|||
|
Locate тебе в руки. Он позволяет найти нужную запись по ключу.
|
|
#17
|
|||
|
|||
|
А у меня в строчке 3 написано,что найти нужную запись. Или это не то?
|
|
#18
|
|||
|
|||
|
А у меня в строчке 3 написано,что найти нужную запись. Или это не то?
|
|
#19
|
|||
|
|||
|
Цитата:
|
|
#20
|
|||
|
|||
|
Ну я не знаю, как ты их отличаешь друг от друга.
Один из ключей, как я понимаю, есть ссылка на главную таблицу (Table1). Это даст тебе твои 3 строчки для выбранной записи в главной таблице. Ну а как ты различаешь строчки между собой - смотри сам... ЗЫ. Если уж совсем все плохо, то просто удали существующие строчки и вставь их заново. ЗЗЫ. А вообще, что же вы за маньяки... ради 100 байт использовать БД... это ж бред... все прекрасно можно хранить в файлах, даже в одном... не та информация, что бы использовать БД. Я тут недавно в какой-то теме уже даже приводил код для хранения подобной информации в файле. Последний раз редактировалось lmikle, 24.07.2019 в 20:00. |
|
#21
|
|||
|
|||
|
Цитата:
Цитата:
|
|
#22
|
|||
|
|||
|
1. Обычно в БД каждая запись (строка) имеет уникальный идентификатор - некоторое поле или комбинация полей, содержащее уникальное значение во всей таблице. Это нужно как раз для того, что бы при необходимости найти конкретную запись. Я не знаю структуру твоих таблиц, просто предполагаю, что одно из полей - это ссылка на главную таблицу. Это поле позволяет тебе отфильтровать записи, которые относятся к выбранной записи в главной таблице. Еще одно поле должно уникально определять запись в рамках первого поля. Вот по этой комбинации тебе и нужно искать записи для их редактирования.
2. Строчки в данном случае - записи в таблице. ЗЫ. Ну прочти уже хоть одну книжку по проектированию реляционных баз данных. Я не могу, да и не хочу, тут постить целые лекции на эту теме. Основы надо выучить самому. |
|
#23
|
|||
|
|||
|
Цитата:
У первой таблицы 2 поля, ключевое и где хранятся проекты, у второй Rid связь с первой осуществляется по полю Isid, у третьей связь с первой осуществляется по полю Rezid. Я так понимаю, что надо искать по полям Isid и полю Rezid? У всех трех таблиц есть ключевые поля. Цитата:
KeyValues какой ? какой критерий поиска? |
|
#24
|
|||
|
|||
|
Цитата:
Такой Locate? Locate('Isid'; 'Rezid'; ProjId,[]) |
|
#25
|
|||
|
|||
|
http://docwiki.embarcadero.com/RADSt...n/Using_Locate
http://www.delphigroups.info/2/40/235067.html там все написано, с примерами. |
|
#26
|
|||
|
|||
|
Не знаю правильно так записать условие?
Если во второй таблице ключ найден, то Код:
if not Table2.Locate('Isid',Table1.FieldbyName('Projid').AsDtring,[]) then
|
|
#27
|
||||
|
||||
|
А not зачем? С ним как раз будет "если запись не найдена". И AsString не нужно, AsInteger правильнее, т.к. код записи имеет тип Integer.
|
|
#28
|
|||
|
|||
|
Цитата:
Код:
if not Table2.Locate('Isid',Table1.FieldByName('Projid').AsInteger,[]) then
begin
Table2.Insert;
Table3.Insert;
end
else
begin
Table2.Edit;
Table3.Edit;
end;
if Edit1.Text<>'' then Table2.FieldByName('Dmin').AsString:=Edit1.Text;
.....
Table2.Post;
for i:=0 to n do
begin
Table3.FieldByName('Cy1').AsString:=floattostr(Cy1[i]);
....
end;
Table3.Post; |
|
#29
|
|||
|
|||
|
Код:
if not Table2.Locate('Isid',Table1.FieldByName('Projid').AsInteger,[]) then
begin
for i:=0 to n do
begin
Table2.Insert;
Table3.FieldByName('Cy1').AsString:=floattostr(Cy1[i]);
.........
Table2.Post;
end;
end
else
begin
for i:=0 to n do
begin
Table2.Edit;
Table2.FieldByName('Cy1').AsString:=floattostr(Cy1[i]);
.........
Table2.Post;
end;
end;
|