powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Создание таблицы
37 сообщений из 37, показаны все 2 страниц
Создание таблицы
    #39832773
Bora2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. Как программно создать таблицу paradox при добавлении новой записи в другую таблицу? Т.е добавил в таблицу 1 запись ,создалась новая таблица (с фиксиров. колич. полей) с именем того , что ввели в первую запись , вторую создалась вторая и т.д.
...
Рейтинг: 0 / 0
Создание таблицы
    #39832792
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bora2015,

Чем не устроила классическая схема Master-Detail?
...
Рейтинг: 0 / 0
Создание таблицы
    #39832796
black-manatee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Умоляю, не говорите, что Вы используете BDE.
...
Рейтинг: 0 / 0
Создание таблицы
    #39832806
Bora2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_Vasilisk_Bora2015,

Чем не устроила классическая схема Master-Detail?
Не знаю как ее применить в моем случае.
...
Рейтинг: 0 / 0
Создание таблицы
    #39832812
Bora2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
black-manateeУмоляю, не говорите, что Вы используете BDE.
Да, но можно и ado. Я хотел понять как это сделать в принципе.
...
Рейтинг: 0 / 0
Создание таблицы
    #39832815
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bora2015Не знаю как ее применить в моем случае.
Master: (ID, Name)
Detail: (ID, MasterID, фиксированное количество полей)
...
Рейтинг: 0 / 0
Создание таблицы
    #39832832
Bora2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_Vasilisk_,
Хранить в таблице надо массиве, поэтому не понятно как сделать. Т.е в подчинённой таблице 6 записей соответствуют одной записи в главной таблице, 6 следующих записей в подчин. таблице, второй записи в главной и.т.д
...
Рейтинг: 0 / 0
Создание таблицы
    #39832854
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bora2015Т.е в подчинённой таблице 6 записей соответствуют одной записи в главной таблицеИ в чем проблема?
_Vasilisk_Master: (ID, Name)
Detail: (ID, MasterID, фиксированное количество полей)
Master:
(1, Первая запись),
(2, Вторая запись)

Detail:
(1, 1, Первая запись первой записи),
(2, 1, Вторая запись первой записи),
..............
(6, 1, Шестая запись первой записи),
(7, 2, Первая запись второй записи),
(8, 2, Вторая запись второй записи),
..............
(12, 2, Шестая запись второй записи),
...
Рейтинг: 0 / 0
Создание таблицы
    #39832860
goldmi45
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bora2015,

Почитайте про нормализацию баз данных.
...
Рейтинг: 0 / 0
Создание таблицы
    #39832873
Bora2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_Vasilisk_Bora2015Т.е в подчинённой таблице 6 записей соответствуют одной записи в главной таблицеИ в чем проблема?
_Vasilisk_Master: (ID, Name)
Detail: (ID, MasterID, фиксированное количество полей)
Master:
(1, Первая запись),
(2, Вторая запись)

Detail:
(1, 1, Первая запись первой записи),
(2, 1, Вторая запись первой записи),
..............
(6, 1, Шестая запись первой записи),
(7, 2, Первая запись второй записи),
(8, 2, Вторая запись второй записи),
..............
(12, 2, Шестая запись второй записи),
Не понятно, как это в коде реализовать?
...
Рейтинг: 0 / 0
Создание таблицы
    #39832930
Polesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет.

Bora2015Не понятно, как это в коде реализовать?
property DataSet.DataSource
...
Рейтинг: 0 / 0
Создание таблицы
    #39833002
Bora2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PolesovПривет.

Bora2015Не понятно, как это в коде реализовать?
property DataSet.DataSource
Это подключение к набору данных через источник. А как осуществить саму запис9+ь шестью строками и чтобы все они соответствовали одной записи в главной таблице?
...
Рейтинг: 0 / 0
Создание таблицы
    #39833008
Polesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bora2015А как осуществить саму запис9+ь шестью строками и чтобы все они соответствовали одной записи в главной таблице?
Точно так же, как и в "отдельную таблицу Paradox"
...
Рейтинг: 0 / 0
Создание таблицы
    #39833012
Polesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bora2015Polesovproperty DataSet.DataSource
Это подключение к набору данных через источник.
Подключение к набору данных через источник - Grid.DataSource.DataSet
DataSet.DataSource - подключение MasterSource
...
Рейтинг: 0 / 0
Создание таблицы
    #39833037
Bora2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PolesovBora2015А как осуществить саму запис9+ь шестью строками и чтобы все они соответствовали одной записи в главной таблице?
Точно так же, как и в "отдельную таблицу Paradox"
А как в отдельную таблицу можно подробнее?
...
Рейтинг: 0 / 0
Создание таблицы
    #39833038
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Заменить Paradox на нормальную СУБД с триггерами или хранимыми процедурами не судьба?
...
Рейтинг: 0 / 0
Создание таблицы
    #39833042
Фотография Dmitry Arefiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GatorЗаменить Paradox на нормальную СУБД с триггерами или хранимыми процедурами не судьба?
Был бы учебник и время ...
...
Рейтинг: 0 / 0
Создание таблицы
    #39833045
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry Arefiev,

Врамени достаточно, а учебники про парадох и фокспро сожжены давно...
...
Рейтинг: 0 / 0
Создание таблицы
    #39833274
Bora2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И всё-таки как создать таблицу по записи в другой? Кто-нибудь знает?
...
Рейтинг: 0 / 0
Создание таблицы
    #39833293
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bora2015,
Я знаю, если угодно. Таблицу Paradox посредством BDE можно было создать выполнив соотв. запрос на т.н. Local SQL в компоненте TQuery или соотв. методом компонента TTable, добавка в него перед этим необходимый набор полей.
...
Рейтинг: 0 / 0
Создание таблицы
    #39833300
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S. Ну и соотв. опорный BDE- алиас перед этим должен быть правильно настроен именно на Paradox.
...
Рейтинг: 0 / 0
Создание таблицы
    #39833519
Polesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bora2015А как в отдельную таблицу можно подробнее?
Из клиентской программы пишешь запись в мастер-таблицу, и тут же пишешь шесть записей в детайл-таблицу, не забыв указать полученное значение поля мастер-ID.
...
Рейтинг: 0 / 0
Создание таблицы
    #39833588
Bora2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PolesovBora2015А как в отдельную таблицу можно подробнее?
Из клиентской программы пишешь запись в мастер-таблицу, и тут же пишешь шесть записей в детайл-таблицу, не забыв указать полученное значение поля мастер-ID.
Вот это мне и не понятно.
...
Рейтинг: 0 / 0
Создание таблицы
    #39833672
Polesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bora2015Вот это мне и не понятно.

Код: 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;



P.S. Курсовая?
...
Рейтинг: 0 / 0
Создание таблицы
    #39834132
Bora2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторP.S. Курсовая?


Не, самообучение. А поля DETAIL_ID, NewDetailId1, MASTER_ID и NewMasterId это что за поля?
...
Рейтинг: 0 / 0
Создание таблицы
    #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
37 сообщений из 37, показаны все 2 страниц
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Создание таблицы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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