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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.03.2011, 01:02   #1
world12_tk
Форумчанин
 
Регистрация: 24.02.2009
Сообщений: 269
Печаль БД и Delphi

Здраствуйте уважаемые форумчанины.....
Вохникла такая проблема...
Мне нужно из программы вывести отчет в базу данных.
В отчете множество полей....
Самой БД нету....
Не могли бы вы меня проконсультировать как создать базу данных и как с ней мне работать....?
Желательно, наверное, чтобы БД была Microsoft...., чтобы потом можно было ее читать через Access....
Под работой с БД, я имею ввиду, добавлять записи....
Заранее спасибо....
world12_tk вне форума Ответить с цитированием
Старый 12.03.2011, 08:21   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Самой БД нету....
Прикольно...
А какие поля нужны в таблицах? что хранить будешь?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.03.2011, 10:51   #3
world12_tk
Форумчанин
 
Регистрация: 24.02.2009
Сообщений: 269
По умолчанию

я пишу программу по тестированию для кафедры....
будет две БД.
В первой будут поля: дата,ФИО студента,номер группы, кол-во правильных ответов, кол-во баллов
Во второй будут поля: дата, ФИО студента, номер группы, номер неправильного вопроса, текст не правильного вопросо, правильный ответ, ответ который дал студент. Ответов могут быть не сколько....
Как я понял в БД будут 3 таблицы... Можно ли будет создать в Power Builder и если можно, то не могли бы вы мне помочь???
world12_tk вне форума Ответить с цитированием
Старый 12.03.2011, 11:33   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Если взялся за Акцесс, то в нем и создавай. Умеешь работать с ним?
пока плюнь на программирование, просто создай базу в Акцессе, потом подключишь.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.03.2011, 14:45   #5
world12_tk
Форумчанин
 
Регистрация: 24.02.2009
Сообщений: 269
По умолчанию

работать с access не умею... ща в инете гляну...
вот только я не знаю моно ли создавать в нем несколько таблиц...
ща будем глядеть.....))

Сложилась вот такая проблема!!!
Создал я БД с 2-мя таблицами
Первая таблица называется StudentTabel и имеет следущие поля: id,NumberGroup,FIO,Data_Time,CountB alls
Вторая таблица называется AppealTabel и имеет следущие поля: id,NumberQuestion,TextQuestion,Righ tAnswer,YourAnswer
В Access я связал поле id ключем.
Когда я добавляю запись в 1-ую таблицу, то все ок.
Но когда я добавляю данные в таблицу 2, то мне пишут ошибку:"Невозможное добавление или изменение записи. Для обеспечение целостности данных необходимо наличие связанной записи в таблице StudentTabel"
Не могли бы вы мне сказать где я накосячил?
Код:
TestForm.ADOQuery1.Close;
 TestForm.ADOQuery1.SQL.Clear;
 TestForm.ADOQuery1.SQL.Add('insert into StudentTabel(NumberGroup,FIO,Data_Time,CountBalls)');
 TestForm.ADOQuery1.SQL.Add('values('+#39+ResultsTest.NumberGroup+
#39+','+#39+ResultsTest.FIO+#39+','+#39+temp+#39+','+#39+
FloatToStr(count_balls)+#39+')');
 TestForm.ADOQuery1.ExecSQL;
Код:
 TestForm.ADOQuery1.Close;
  TestForm.ADOQuery1.SQL.Clear;
  TestForm.ADOQuery1.SQL.Add('insert into AppealTabel(NumberQuestion,TextQuestion,RightAnswer,YourAnswer)');
  TestForm.ADOQuery1.SQL.Add('values('+#39+IntToStr(NumberQuestion)+
#39+','+#39+PQuestion(QuestionList[ResultsTest.FalseQuestion[i]])^.Name+
#39+','+#39+PQuestion(QuestionList[ResultsTest.FalseQuestion[i]])^.ResiltText[j]+#39+','+#39+ResultsTest.ResiltValue[i][k]+#39+')');
  TestForm.ADOQuery1.ExecSQL;
И вот такой вопрос меня интересует....
Когда проходит тест один пользователь, то в первую таблицу заносятся один раз данные (это номер группы, фио и т.д.), а в таблицу 2 будут заносится много строк. Как добится того, чтобы во второй табл. счетчик изменялся бы один раз....
Заранее спасибо......

Последний раз редактировалось Stilet; 14.03.2011 в 07:54.
world12_tk вне форума Ответить с цитированием
Старый 14.03.2011, 07:58   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
В Access я связал поле id ключем.
Связать то ты связал, но в запросе
Цитата:
insert into AppealTabel(NumberQuestion,TextQues tion,RightAnswer,YourAnswer)
эту связку не указываешь. Если поле ключевое связанное с другой таблицей обязательно нужно внести в него данные, согласованные с связываемой таблицей.
т.е. после того как ты внес запись в StudentTabel, нужно получить значение ID из этой записи, и его использовать во вноске в подчиненную таблицу.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.03.2011, 18:07   #7
world12_tk
Форумчанин
 
Регистрация: 24.02.2009
Сообщений: 269
По умолчанию

Stilet а как делать связку и получить значение id, а то я только начал изучать БД и пока еще плохо знаю SQL запросы
world12_tk вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
На Delphi 7 сделать игру кто хочет стать миллионером в delphi 7 666dart666 Помощь студентам 11 04.11.2010 17:57
Rad Studio 2011 XE: новое в Delphi, C++ Builder, RadPHP и Delphi Prism savva-paladin Софт 18 02.10.2010 20:24
Delphi. Как нарисовать в Delphi два движущиеся шара с определенной скоростью? redred Общие вопросы Delphi 10 11.12.2007 10:43
Как открыть БД, написанную в Delphi если нf другой машине Delphi нет? dagarik БД в Delphi 7 22.10.2007 17:54
не StringGrid1.Cells[1,1]:='Delphi'; а вот так SG1.C[1,1]:='Delphi' Nemesisking Компоненты Delphi 7 08.09.2007 03:27