|
|
Регистрация | << Правила форума >> | 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; |