Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: СУБД и Delphi/Lazarus

  Все выпуски  

RusFAQ.ru: СУБД и Delphi


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

Народное голосование ПРЕМИИ РУНЕТА-2007!
Голосуем за RusFAQ.ru >>

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / СУБД и Delphi

Выпуск № 419
от 18.11.2007, 21:35

Администратор:Gh0stik
В рассылке:Подписчиков: 309, Экспертов: 35
В номере:Вопросов: 1, Ответов: 2


Вопрос № 109288: Здраствуйте. Я работаю над базой данных (это моя первая работа с базами в Delphi), и я не знаю как добавить данные в таблицу (т.е. SQL я знаю и не плохо им владею). На форме у меня уже есть: Querry,DBGrid,DataSource,Database. Как сделать так...

Вопрос № 109.288
Здраствуйте.

Я работаю над базой данных (это моя первая работа с базами в Delphi), и я не знаю как добавить данные в таблицу (т.е. SQL я знаю и не плохо им владею). На форме у меня уже есть: Querry,DBGrid,DataSource,Database. Как сделать так, чтобы по нажатию на кнопку из полей формы 3 добавлялись данные в таблицу? В базе поля: person_id (int), first_name(char(20)), middle_name(char(20)), last_name(char(20)), start_date (Date).
Отправлен: 13.11.2007, 21:29
Вопрос задал: Alex L (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Зиновьев Дмитрий Владимирович
!!!
procedure button.click;
begin
query.close;
query.sql.clear;
query.sql.append('INSERT INTO TABLE(Field1, Field2) VALUES ('#39 + Edit1.Text + #39', '#39 + Edit2.Text + #39')');
query.exec;query.ExecSQL;
end;
// В данном примере вставляются строки
// на самом деле нужно еще проверять. чтобы EDIT'ы не содержали апострофов
// ну и если данные неприводимы к строке, или вы уверены, что там числа и т.п.,
//можно без апострофов, то есть без #39

//Можно еще посоветовать через хранимые процедуры...
//Но это на будущее, пробуйте сначала так, опыта больше наберетесь :)

У компонента TQuery нет метода Exec. Для выполнения SQL команд не возвращающих набор данных, применяется метод ExecSQL.
-----
< b>∙ Отредактировал: sir henry (Академик)
∙ Дата редактирования: 14.11.2007, 08:40
Ответ отправил: Зиновьев Дмитрий Владимирович (статус: 6-ой класс)
Ответ отправлен: 13.11.2007, 21:56
Оценка за ответ: 5

Отвечает: Кэр Лаэда
Здравствуйте, Alex L!
Ну во первых посоветовал бы вам использовать ADOQuery гораздо больше удобства при переносе на другие компьютеры.

но по вашему вопросу можно сделать так.

Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('INSERT INTO TABLE_NAME(first_name, middle_name,last_name,start_date) VALUES (:fn,:mn,:ln,:sd)');
Query1.ParamByName('fn').AsString:=Edit1.Text;
Query1.ParamByName('mn').AsString:=Edit2.Text;
Query1.ParamByName('ln').AsString:=Edit3.Text;
Query1.ParamByName('sd').AsDate:=DateTimePicker.Date;
Query1.ExecSQL;

---------
Я знаю что ничего не знаю, но я знаю больше, чем тот кто думает что знает все
Ответ отправил: Кэр Лаэда (статус: Практикант)
Ответ отправлен: 13.11.2007, 22:41
Оценка за ответ: 5


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

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


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.62.1 от 14.11.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное