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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.05.2009, 10:29   #1
a_n_n_a
Форумчанин
 
Регистрация: 06.03.2009
Сообщений: 157
По умолчанию Добавление и удаление записей из БД (Access)

Здравствуйте=) У меня такая проблема: не могу понять, как сделать удаление и добавление записей в таблицы=))
Например, у меня таблицы: Студенты, Адреса, Оценки, Сведения. Они соеденены по полю ШифрСтудента=)

Я так поняла, это надо делать через ADOQuery и DBEdit=)))) А как?=)))))
a_n_n_a вне форума Ответить с цитированием
Старый 15.05.2009, 10:50   #2
koma_grusha
Редкий обитатель
Форумчанин
 
Аватар для koma_grusha
 
Регистрация: 08.04.2009
Сообщений: 170
По умолчанию

возьмем к примеру Студентов, связываешь ADOQuery с ней, при необходимости отображаешь в гриде
Предположим есть на форме Edit, в котором вводится ФИО студента

тогда для вставки
Код:
ADOQuery.Insert;
ADOQuery.FieldByName('FIO').AsString := Edit.Text;
ADOQuery.Post;
для редактирования (текущей записи)
Код:
ADOQuery.Edit;
ADOQuery.FieldByName('FIO').AsString := Edit.Text;
ADOQuery.Post;
для удаления (также текущей записи)
Код:
ADOQuery.Delete;
Мозг, хорошо устроенный, стоит больше, чем мозг, хорошо наполненный (Мишель Монтень)
koma_grusha вне форума Ответить с цитированием
Старый 15.05.2009, 11:13   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Вообще-то если работаешь с Query то не стоит доверять методам от DataSet. Луче всего через SQL стандартными его командами.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.05.2009, 11:52   #4
koma_grusha
Редкий обитатель
Форумчанин
 
Аватар для koma_grusha
 
Регистрация: 08.04.2009
Сообщений: 170
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Вообще-то если работаешь с Query то не стоит доверять методам от DataSet. Луче всего через SQL стандартными его командами.
Почему? Я использую и тот и другой метод в зависмости от поставленной задачи и т.п. Оба варианта устраивают, но вот о том что лучше и почему не задумывалась. Не могли бы как-то просветить (новую тему заводить не стала, думаю автору этой темы оно пригодится)
Мозг, хорошо устроенный, стоит больше, чем мозг, хорошо наполненный (Мишель Монтень)
koma_grusha вне форума Ответить с цитированием
Старый 15.05.2009, 11:58   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Не могли бы как-то просветить
Могу высказать только то на что натыкался. при использовании методов очень частые потери информации и непредсказуемые ошибки типа "не могу писать...". перешел на SQL - все как часы работало.
Вот те самые Edit и Insert сбоили регулярно.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.05.2009, 12:10   #6
koma_grusha
Редкий обитатель
Форумчанин
 
Аватар для koma_grusha
 
Регистрация: 08.04.2009
Сообщений: 170
По умолчанию

спасибо!! Действительно, встречается такое, только не думала, что это из за них.

Ну тогда перешем вышеописанное примерно так (при тех же условиях)

дабовление
Код:
ADOQuery.SQL.Text := 'INSERT INTO Students (FIO) VALUES (' + QuotedStr(Edit.Text) + ')';
ADOQuery.ExecSQL;
изменение
Код:
ADOQuery.SQL.Text := 'UPDATE Students SET FIO = ' + QuotedStr(Edit.Text) + ' WHERE <условие для идентификации записи> ';
ADOQuery.ExecSQL;
удаление
Код:
ADOQuery.SQL.Text := 'DELETE FROM Students  WHERE FIO = ' + QuotedStr(Edit.Text);
ADOQuery.ExecSQL;
Мозг, хорошо устроенный, стоит больше, чем мозг, хорошо наполненный (Мишель Монтень)

Последний раз редактировалось koma_grusha; 15.05.2009 в 12:14.
koma_grusha вне форума Ответить с цитированием
Старый 15.05.2009, 12:42   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
koma_grusha
Дело не совсем в них, но я в подробности не вдавался, просто окончательно перешел на SQL и более горя не знаю.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.05.2009, 12:52   #8
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

koma_grusha, а я вот пробую вставить запись из DBLookupComboBox-a в поле ID_Predmet в таблицу rezult вот так:
Код:
// Form2.Query_3.Active:=False;
 Form2.Query_3.SQL.Clear;
 Form2.Query_3.SQL.Text:='INSERT INTO rezult(ID_Predmet) VALUES('+QuotedStr(Form1.DBLookupComboBox1.Text)+')';
 Form2.Query_3.ExecSQL;
и выдается ошибка: "Type mismatch in expresion". Это почему такая ошибка? Что она значит? Компилируется все хорошо.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 15.05.2009, 13:02   #9
edgy
Форумчанин
 
Регистрация: 15.06.2008
Сообщений: 271
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
просто окончательно перешел на SQL и более горя не знаю.
+1 Поддерживаю. Та же фигня.

Да и к тому же почему-то меня всегда в коде напрягали:
Код:
ADOQuery.Insert;

ADOQuery.Post;

ADOQuery.Edit;

ADOQuery.Delete;
и т.п.
edgy вне форума Ответить с цитированием
Старый 15.05.2009, 13:09   #10
edgy
Форумчанин
 
Регистрация: 15.06.2008
Сообщений: 271
По умолчанию

Цитата:
Сообщение от artemavd Посмотреть сообщение
Код:
// Form2.Query_3.Active:=False;
 Form2.Query_3.SQL.Clear;
 Form2.Query_3.SQL.Text:='INSERT INTO rezult(ID_Predmet) VALUES('+QuotedStr(Form1.DBLookupComboBox1.Text)+')';
 Form2.Query_3.ExecSQL;
и выдается ошибка: "Type mismatch in expresion". Это почему такая ошибка? Что она значит? Компилируется все хорошо.
Что-то у меня есть подозрение, что вы пытаетесь в поле, тип данных которых - числовой, вставить данные текстового типа
edgy вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавление записей в массив структур korel Общие вопросы C/C++ 2 07.05.2009 23:59
Добавление записей в таблицы Fishb1 Microsoft Office Access 2 26.02.2009 21:45
Добавление записей Liones БД в Delphi 3 25.12.2008 10:08
Добавление и удаление записей в Listview Scorpeon Компоненты Delphi 0 08.06.2007 23:09
добавление записей в таблицу strannik БД в Delphi 5 10.05.2007 08:12