![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 05.09.2007
Сообщений: 14
|
![]()
Люди, помогите. Нужно при нажатии на кноку заносить данные в БД.
Значит так, на форме имеется кнопка "добавить" и 2 компонента Edit. В БД имеется 2 поля "id"(тип int) и "name"(тип varchar(10)). Нужно из Edit1 добавть данные (перевод из сторки в число) в поле "id" и из Edit2 в поле "name" при ножатии на кнопку. Подключение к серверу проходит нормально, выборка данных осуществляется. ЖДУ ваших предложений ![]() |
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 07.07.2007
Сообщений: 1,518
|
![]()
А в чем проблема?
Query.Close; Query.SQL.Clear; Query.SQL.Add('insert into TABLE (id,name) Values ( "'+ Edit1.Text+'","'+ Edit2.Text+ '")'); Query.ExecSQL; |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 05.09.2007
Сообщений: 14
|
![]()
Сергей, спасибо. Только ведь в БД у поля id стоит тип int, а в поле Edit1 любые вводимые симвоы принимают тип Text. Вот тут-то головнячок-с выскакивает. подскажите пожалста.
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 05.09.2007
Сообщений: 14
|
![]()
begin
ADOQuery1.SQL.Add('insert into mytab12 (id, name) values ("'+Edit1.Text+'","'+Edit2.Text+'") '); ADOQuery1.ExecSQL; end; вот часть кода, который имеется у меня, но не работает, как и тот, который приводил Сергей. в чем ошибка? при добавлении значений в БД говорит, что не совпадают типы. |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 28.08.2007
Сообщений: 10
|
![]()
Если поле в БД типа integer, то при использовании insert ...
значение не надо указывать в апострофах. Предварительно надо значение Edit1.Text преобразовать в integer можно использовать функцию StrToInt() begin ADOQuery1.SQL.Add('insert into mytab12 (id, name) values (' +strtoint(Edit1.Text)+',"'+Edit2.Text+'")'); ADOQuery1.ExecSQL; end; Естественно необходимо сделать проверку на ввод в Edit1, т.е. ввели цифру или нет, иначе будет вылетать ошибка ![]() Последний раз редактировалось JordanS; 05.09.2007 в 12:59. |
![]() |
![]() |
![]() |
#6 |
Владимир М.
Участник клуба
Регистрация: 30.10.2006
Сообщений: 1,289
|
![]()
strtointDef(Edit1.Text, 0)
и ошибка не вылетит )
Берегите друг друга!
|
![]() |
![]() |
![]() |
#7 | |
Участник клуба
Регистрация: 07.07.2007
Сообщений: 1,518
|
![]() Цитата:
if edit1.text = '' then edit1.text := '0'; |
|
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 01.09.2007
Сообщений: 35
|
![]()
Может вообще сделать через параметры:
begin ADOQuery1.SQL.Add('insert into mytab12 (id, name) values (:id_par,:name_par)'); ADOQuery1.ExecSQL; end; а уже в коде дэлфы сделать так: ADOQuery1.Parameters.ParamByName(:i d_par).Value:=StrToInt(Edit1.Text); ADOQuery1.Parameters.ParamByName(:n ame_par).Value:=Edit2.Text; ADOQuery1.ExecSQL; И вообще я бы рекомендовал для осуществления операций с БД, если используешь ADO, делать все через ADOCommand (можно ADODataSet). |
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 04.09.2007
Сообщений: 19
|
![]()
Ну...
есть такие компоненты как TSpinEdit или TDBNumberEditEh (EhLib) или на худой конец Код:
|
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 05.09.2007
Сообщений: 14
|
![]()
всем большое спасибо за помощь
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Добавление в БД | Dissonance | БД в Delphi | 3 | 05.06.2008 21:22 |
Добавление в 2 таблицы | Dissonance | БД в Delphi | 5 | 04.06.2008 23:54 |
Добавление | Holodok | БД в Delphi | 1 | 09.05.2008 18:01 |
запрос на добавление | William | Microsoft Office Access | 3 | 13.07.2007 22:00 |
Добавление к pchar | EdNovice | Общие вопросы Delphi | 2 | 15.04.2007 17:00 |