Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 02.05.2009, 21:26   #11
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Я почему то не могу изменить свое поле ID в таблице infa . Если я хочу поставить + для типа поля, то выдается ошибка: "Field ID: existing field type cannot be converted to requested type".
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума
Старый 02.05.2009, 22:15   #12
ArtInt
Форумчанин
 
Аватар для ArtInt
 
Регистрация: 06.03.2009
Сообщений: 583
По умолчанию

Наверное потому, что там в полях уже есть значения попробуй сделать новое поле автоинкрементное, или сделать таблицей пустой и потом заполнить.
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
ArtInt вне форума
Старый 03.05.2009, 07:48   #13
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Создал новую, поставил автоинкриментность, но выборка не получается . Если я добавляю в основную таблицу три записи, то в дочерней таблице отображаются только одна из трех записей.
Вот код занесения данных в основную таблицу:
Код:
var
 i,h,Nomer:integer;
begin
 for i:=1 to 25 do
 begin
  if Form1.SG9.Cells[0,i] <> '' then
   begin
 Table1.Last;
 Nomer:=Table1.FieldByName('ID').AsInteger;
 Nomer:=Nomer + 1;
 Table1.Append;
 Table1.Edit;
 Table1.FieldByName('ID').AsInteger:=Nomer;
 Table1.FieldByName('ФАМИЛИЯ').AsString:=Form1.SG9.Cells[1,i];
 Table1.FieldByName('ИМЯ').AsString:=Form1.SG9.Cells[2,i];
 Table1.FieldByName('ОТЧЕСТВО').AsString:=Form1.SG9.Cells[3,i];
 Table1.Post;
 Table1.Refresh;
    end;
 end;
А вот код занесения в дочернюю таблицу:
Код:
var
 i,Nomer2,Nomer21:integer;
begin
 for i:=1 to 25 do
 begin
  if Form1.SG2.Cells[0,i] <> '' then
   begin
 Table2.Last;
 Nomer2:=Table2.FieldByName('ID').AsInteger;
 Nomer2:=Nomer2 + 1;
 Nomer21:=Form1.DBLookupComboBox1.KeyValue;
 Table2.Append;
 Table2.Edit;
 Table2.FieldByName('ID').AsInteger:=Nomer2;
 Table2.FieldByName('ID_Predmeta').AsInteger;
 Table2.FieldByName('ДВОЕК').AsString:=Form1.SG2.Cells[0,i];
 Table2.FieldByName('ТРОЕК').AsString:=Form1.SG2.Cells[1,i];
 Table2.FieldByName('ЧЕТВЕРОК').AsString:=Form1.SG2.Cells[2,i];
 Table2.FieldByName('ПЯТЕРОК').AsString:=Form1.SG2.Cells[3,i];
 Table2.Post;
 Table2.Refresh;
    end;
 end;
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума
Старый 03.05.2009, 12:14   #14
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Мои таблицы. Как их связать?
Изображения
Тип файла: jpg Безымянный5.jpg (40.8 Кб, 139 просмотров)
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума
Старый 03.05.2009, 13:38   #15
ArtInt
Форумчанин
 
Аватар для ArtInt
 
Регистрация: 06.03.2009
Сообщений: 583
По умолчанию

Зачем писать сразу и Table1.Append и Table1.Edit? Здесь как то надо определиться, то ли ты хочешь добавить новую строку, то ли ее отредактировать, одно из двух.
Насчет поля Id, если оно у тебя автоинкрементное, то изменять его нельзя.
Table1.Refresh - а без него разве данные в таблице не обновляются?
Вот исходник с кнопками добавления в основную и дочернюю таблиц данных.
В принципе две строчки:
Table1.Insert;
Table1.fieldbyname('fam').asstring: =Edit1.text;
Table1.post;

что для основной, что для дочерней.
Насчет организации таблиц. Что за критерии, как вычисляются? Опиши проект. Тогда будет проще составить правильные связи между таблицами.
Вложения
Тип файла: rar связи между таблицамиFam1.rar (78.1 Кб, 14 просмотров)
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
ArtInt вне форума
Старый 03.05.2009, 14:36   #16
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Настроил вроде, но все равно как то не так как надо. Да и потом, пользователь то не будет видеть как располагаются эти данные в БД. Может есть смысл сделать все в одну таблицу? Включить туда названия всех полей из этих маленьких таблиц.
Цитата:
Что за критерии, как вычисляются?
Критерии вычисляются по специальным формулам на главном окне, а в БД заносятся только результаты вычисления.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума
Старый 03.05.2009, 15:12   #17
ArtInt
Форумчанин
 
Аватар для ArtInt
 
Регистрация: 06.03.2009
Сообщений: 583
По умолчанию

Попробуй включить их всех в одну таблицу, если уверен, что нет повторяющихся данных и это удовлетворяет всем твоим требованиям.
Если есть повторяющиеся данные, то целесообразно конечно разбивать на несколько таблиц.
Сначала обдумай, какие результаты хочешь получить. Потом на основе этого составляй таблицу.
Просто мне трудно понять, для чего предназначена данная база?
Зачем в ней первое полугодие, второе полугодие, четверти.
Как я понял есть таблица с фамилиями, в таблице с оценками выводится сумма двоек? у данного человека, если так то зачем их располагать в отдельную таблицу. Есть таблица Предметы с чем связана? Что хотим узнать? То ли количество оценок по данному предмету у человека в общем, то ли за четверть, то ли вообще сколько было уроков?
То есть сначала надо описать проект. Для чего он, что к чему. Тогда можно как то думать сколько таблиц и как их связывать.
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
ArtInt вне форума
Старый 03.05.2009, 15:13   #18
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

В приложенном документе описание смысла таблицы. Какие мнения?
Вложения
Тип файла: doc Смысл таблицы.doc (39.0 Кб, 11 просмотров)
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума
Старый 03.05.2009, 15:43   #19
ArtInt
Форумчанин
 
Аватар для ArtInt
 
Регистрация: 06.03.2009
Сообщений: 583
По умолчанию

Просмотрел документ, почему то кажется что дублирование будет большим если сделать все в одну таблицу. Попробую сделать шаблон всего этого если раскидать по разным таблицам. Пока идея такая сделать таблицу PersonalInfo, где будут поля ФИО, а также дополнительные индексы для связи с другими таблицами. Таблицу предмет связать с критериями. Четверти с предметами, года с четвертями. Это так на вскидку, сейчас попробую реализовать, посмотрю что получится, попозже скину исходник.
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
ArtInt вне форума
Старый 03.05.2009, 15:50   #20
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

ArtInt, Ваш вариант похож на тот, что у меня сейчас пока сделан. Скрин своих таблиц я выкладывадывал в посте №14. Посмотрите). Это Вы имели ввиду?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Связь таблиц в Database Desctop Sergius X БД в Delphi 0 22.04.2009 16:53
Связь с кучей dbf файлов (таблиц) через OLEDB через UNION ALL Sasha811 SQL, базы данных 0 01.01.2009 14:04
Связь таблиц в Delphi adinadin111 БД в Delphi 3 10.07.2008 14:50
связь таблиц в локальной БД IGREK БД в Delphi 3 30.06.2008 19:46
Связь таблиц БД kaa БД в Delphi 5 18.09.2007 18:29