powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Создание таблицы
12 сообщений из 37, страница 2 из 2
Создание таблицы
    #39834143
Polesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Создание таблицы
    #39834838
Bora2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Polesov,
Ввод данных в первую таблицу у меня происходил через combobox.


Код: pascal
1.
2.
3.
4.
Table1.Insert;
 Table1.FieldByName('Projname').AsString:=ComboBox1.Text;
Form1.Caption:=Table1.FieldByName('Projname').AsString;
  Table1.Post;



А во вторую таблицу

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Table3.Insert;
  for i:=0 to 5 do
  begin

       Table3.FieldByName('Cy1').AsString:=floattostr(Cyst[i]);
        Table3.FieldByName('Ka1').AsString:=floattostr(kA1[i]);
        Table3.FieldByName('Kb1').AsString:=floattostr(kB1[i]);
        Table3.FieldByName('Cp1').AsString:=floattostr(cp1[i]);
        Table3.FieldByName('Cp2').AsString:=floattostr(cp2[i]);
        Table3.FieldByName('Cm1').AsString:=floattostr(cm1[i]);
        Table3.FieldByName('Cm2').AsString:=floattostr(cm2[i]);
        Table3.FieldByName('Y1').AsString:=floattostr(Y1[i]);
        Table3.FieldByName('M1').AsString:=floattostr(M1[i]);
        Table3.FieldByName('Y2').AsString:=floattostr(Y2[i]);
        Table3.FieldByName('M2').AsString:=floattostr(M2[i]);    
        end;
   
 Table3.Post;



автор// Вставка мастер-записи
MasterDataSet.Insert;
MasterDataSet.FildByName( 'MASTER_ID' ).AsInteger := NewMasterId;
MasterDataSet.Post;

// Вставка шести детайл-записей
DetailDataSet.Insert;
// Запись 1
DetailDataSet.FildByName( 'DETAIL_ID' ).AsInteger := NewDetailId1;
DetailDataSet.FildByName( 'MASTER_ID' ).AsInteger := NewMasterId;
// Запись 2
DetailDataSet.FildByName( 'DETAIL_ID' ).AsInteger := NewDetailId2;
DetailDataSet.FildByName( 'MASTER_ID' ).AsInteger := NewMasterId;
// Запись 3
DetailDataSet.FildByName( 'DETAIL_ID' ).AsInteger := NewDetailId3;
DetailDataSet.FildByName( 'MASTER_ID' ).AsInteger := NewMasterId;
// Запись 4
DetailDataSet.FildByName( 'DETAIL_ID' ).AsInteger := NewDetailId4;
DetailDataSet.FildByName( 'MASTER_ID' ).AsInteger := NewMasterId;
// Запись 5
DetailDataSet.FildByName( 'DETAIL_ID' ).AsInteger := NewDetailId5;
DetailDataSet.FildByName( 'MASTER_ID' ).AsInteger := NewMasterId;
// Запись 6
DetailDataSet.FildByName( 'DETAIL_ID' ).AsInteger := NewDetailId6;
DetailDataSet.FildByName( 'MASTER_ID' ).AsInteger := NewMasterId;
DetailDataSet.Post;


У первой таблицы первич. ключ Projid, а у второй Rid.

MASTER_ID понятно у меня Projid, а NewMasterId это что ?
...
Рейтинг: 0 / 0
Создание таблицы
    #39834853
goldmi45
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bora2015Polesov,
У первой таблицы первич. ключ Projid, а у второй Rid.

MASTER_ID понятно у меня Projid, а NewMasterId это что ?
MASTER_ID - название поля в таблице.
NewMasterId - значение записи первичного ключа в таблице мастера (ссылка).
...
Рейтинг: 0 / 0
Создание таблицы
    #39834887
Polesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bora2015
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
  Table3.Insert;
  for i:=0 to 5 do
  begin

      Table3.FieldByName('Cy1').AsString:=floattostr(Cyst[i]);
      Table3.FieldByName('Ka1').AsString:=floattostr(kA1[i]);
      Table3.FieldByName('Kb1').AsString:=floattostr(kB1[i]);
      Table3.FieldByName('Cp1').AsString:=floattostr(cp1[i]);
      Table3.FieldByName('Cp2').AsString:=floattostr(cp2[i]);
      Table3.FieldByName('Cm1').AsString:=floattostr(cm1[i]);
      Table3.FieldByName('Cm2').AsString:=floattostr(cm2[i]);
      Table3.FieldByName('Y1').AsString:=floattostr(Y1[i]);
      Table3.FieldByName('M1').AsString:=floattostr(M1[i]);
      Table3.FieldByName('Y2').AsString:=floattostr(Y2[i]);
      Table3.FieldByName('M2').AsString:=floattostr(M2[i]);    
  end;
  Table3.Post;


Я дико извиняюсь - Table3.Insert; требуется для каждой итерации цикла, иначе вставиться только одна запись, в которой будут последние значения.

Bora2015MASTER_ID понятно у меня Projid, а NewMasterId это что ?
NewMasterId - значение первичного ключа мастер-таблицы, по которому, собственно, осуществляется связь мастер-детайл.
...
Рейтинг: 0 / 0
Создание таблицы
    #39835267
Bora2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А связь надо установить не введением дополнит. поля (помимо id первич. ключа) в главной таблице с которым и связать c id (первич. ключ) подчиненной ?
...
Рейтинг: 0 / 0
Создание таблицы
    #39835272
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дико извиняюсь, речь то шла об 1 таблице
Bora2015Здравствуйте. Как программно создать таблицу paradox при добавлении новой записи в другую таблицу? Т.е добавил в таблицу 1 запись ,создалась новая таблица (с фиксиров. колич. полей) с именем того , что ввели в первую запись , вторую создалась вторая и т.д.
Автор странного хочет и не объясняет, зачем ему на каждый чих новую таблицу создавать...

Пусть уже отвяжется от парадокса и почитает, наконец, умные книжки.
...
Рейтинг: 0 / 0
Создание таблицы
    #39836485
Bora2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Polesov,
Я связал таблицы по Rid (ключевое поле автоинкрементного типа подчинённой таблицы) с полем Prezult главной. И при добавлении данных в таблицу получается ошибка ...class Edatabaserror with message field Rid cannot be modified. Связывал через инспектор объектов. Почему возникает ошибка?
...
Рейтинг: 0 / 0
Создание таблицы
    #39836846
Polesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bora2015Я связал таблицы по Rid (ключевое поле автоинкрементного типа подчинённой таблицы) с полем Prezult главной. И при добавлении данных в таблицу получается ошибка ...class Edatabaserror with message field Rid cannot be modified. Связывал через инспектор объектов. Почему возникает ошибка?Значения автоинкрементных полей менять нельзя.

Master имеет свой первичный ключ, detail - свой первичный ключ и ссылочное значение Master_Id (по сути первичный ключ Master).
Принадлежность записей Detail к Master определяется значением поля Master_Id в Detail-таблице.
...
Рейтинг: 0 / 0
Создание таблицы
    #39836870
Bora2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PolesovBora2015Вот это мне и не понятно.

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
// Вставка мастер-записи
  MasterDataSet.Insert;
  MasterDataSet.FildByName( 'MASTER_ID' ).AsInteger := NewMasterId;
  MasterDataSet.Post;

// Вставка шести детайл-записей
  DetailDataSet.Insert;
// Запись 1
  DetailDataSet.FildByName( 'DETAIL_ID' ).AsInteger := NewDetailId1;
  DetailDataSet.FildByName( 'MASTER_ID' ).AsInteger := NewMasterId;
// Запись 2
  DetailDataSet.FildByName( 'DETAIL_ID' ).AsInteger := NewDetailId2;
  DetailDataSet.FildByName( 'MASTER_ID' ).AsInteger := NewMasterId;
// Запись 3
  DetailDataSet.FildByName( 'DETAIL_ID' ).AsInteger := NewDetailId3;
  DetailDataSet.FildByName( 'MASTER_ID' ).AsInteger := NewMasterId;
// Запись 4
  DetailDataSet.FildByName( 'DETAIL_ID' ).AsInteger := NewDetailId4;
  DetailDataSet.FildByName( 'MASTER_ID' ).AsInteger := NewMasterId;
// Запись 5
  DetailDataSet.FildByName( 'DETAIL_ID' ).AsInteger := NewDetailId5;
  DetailDataSet.FildByName( 'MASTER_ID' ).AsInteger := NewMasterId;
// Запись 6
  DetailDataSet.FildByName( 'DETAIL_ID' ).AsInteger := NewDetailId6;
  DetailDataSet.FildByName( 'MASTER_ID' ).AsInteger := NewMasterId;
  DetailDataSet.Post;



У меня вставка мастер записи происходит так:
авторTable1.Insert;
Table1.FieldByname('Projname').AsString:=Combobox1.Text;
Table1.Post;


Как записать с учётом сообщения выше о вставке мастер -записи?
...
Рейтинг: 0 / 0
Создание таблицы
    #39836912
Polesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bora2015У меня вставка мастер записи происходит так:
Код: pascal
1.
2.
3.
Table1.Insert;
Table1.FieldByname('Projname').AsString:=Combobox1.Text;
Table1.Post;

Как записать с учётом сообщения выше о вставке мастер -записи?
Код: pascal
1.
2.
3.
4.
5.
6.
7.
  MasterId := Table1.FieldByName( 'ID' ).AsInteger;
  for i := 1 to 6 do
  begin
    Table2.Insert;
    Table2.FieldByName( 'MASTER_ID' ).AsInteger := MasterId; 
  end;
  Table2.Post;
...
Рейтинг: 0 / 0
Создание таблицы
    #39837065
Фотография LocksmithPC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я тебе здесь 21925629 все расписал с картинками
...
Рейтинг: 0 / 0
Создание таблицы
    #39837763
Bora2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PolesovBora2015У меня вставка мастер записи происходит так:
Код: pascal
1.
2.
3.
Table1.Insert;
Table1.FieldByname('Projname').AsString:=Combobox1.Text;
Table1.Post;

Как записать с учётом сообщения выше о вставке мастер -записи?
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
  MasterId := Table1.FieldByName( 'ID' ).AsInteger;
  for i := 1 to 6 do
  begin
    Table2.Insert;
    Table2.FieldByName( 'MASTER_ID' ).AsInteger := MasterId; 
  end;
  Table2.Post;
У меня один обработчик добавляет запись в таблицу проектов ,а другой в таблицу исходн. данных и таблицу результатов. А этот код в какой обработчик?
...
Рейтинг: 0 / 0
12 сообщений из 37, страница 2 из 2
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Создание таблицы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]