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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.11.2015, 13:49   #1
HappyJesus
 
Регистрация: 26.10.2015
Сообщений: 9
По умолчанию Добавление данных в БД из Delphi.

Здравствуйте. У меня такой вопрос. Надо добавить данные в базу данных, подскажите как это сделать? Пробовал добавлять данные вот таким способом:
Код:
ADOQuery1.Insert;
            ADOQuery1.FieldByName('Login').AsString :=  Edit1.Text;
            ADOQuery1.FieldByName('Pass').AsString  :=  Edit2.Text;
            ADOQuery1.Post;
Выдает ошибку: ADOQuery1: Cannot perform this operation on a closed dataset.
Подскажите в чем проблема и как правильно добавить данные. Заранее спасибо!

Если перед этим кодом написать ADOQuery1.Open; То тогда выдает ошибку: ADOQuery1: Missing SQL property.

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

Для ADOQuery1 рекомендую использовать запросы а не пользоваться стандартными методами класса. Т.е.
Код:
With ADOQuery1 do begin
 SQL.Text:='Insert into Табличка (Login,Pass) VALUE (:l,:p)';
 Parameters.ParamByName('l').Value:=Edit1.Text;
 Parameters.ParamByName('p').Value:=Edit2.Text;
 if ExecSQL<>1 Then ShowMessage('Не внесено.');
end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.11.2015, 14:06   #3
HappyJesus
 
Регистрация: 26.10.2015
Сообщений: 9
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Для ADOQuery1 рекомендую использовать запросы а не пользоваться стандартными методами класса. Т.е.
Код:
With ADOQuery1 do begin
 SQL.Text:='Insert into Табличка (Login,Pass) VALUE (:l,:p)';
 Parameters.ParamByName('l').Value:=Edit1.Text;
 Parameters.ParamByName('p').Value:=Edit2.Text;
 if ExecSQL<>1 Then ShowMessage('Не внесено.');
end;
Так выдает ошибку: "Ошибка синтаксиса в инструкции INSERT INTO."
Вставил так:
Код:
          begin
                With ADOQuery1 do begin
                SQL.Text:='Insert into AdminLog (Login,Pass) VALUE (:l,:p)';
                Parameters.ParamByName('l').Value:=Edit1.Text;
                Parameters.ParamByName('p').Value:=Edit2.Text;
                showmessage('Добавление пользователя прошло успешно!');
                if ExecSQL<>1 Then
                      begin
                      ShowMessage('Не внесено.');
                      end;
                end;
          end;
HappyJesus вне форума Ответить с цитированием
Старый 12.11.2015, 14:13   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
выдает ошибку
Ессно )
Откуда же мне знать как у тебя что в БД называется?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.11.2015, 14:15   #5
HappyJesus
 
Регистрация: 26.10.2015
Сообщений: 9
По умолчанию

А куда ее вставлять то? Там где было написано "Табличка" я заменил на свою БД. Или надо еще где то? Извиняюсь за глупые вопросы, я еще новичок в Delphiю
HappyJesus вне форума Ответить с цитированием
Старый 12.11.2015, 14:23   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от HappyJesus Посмотреть сообщение
А куда ее вставлять то? Там где было написано "Табличка" я заменил на свою БД.
может быть не на "БД", а на имя ТАБЛИЦЫ в БД ?
Поверьте, "таблица" и "БД" - это совсем разные объекты.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.11.2015, 17:31   #7
HappyJesus
 
Регистрация: 26.10.2015
Сообщений: 9
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
может быть не на "БД", а на имя ТАБЛИЦЫ в БД ?
Поверьте, "таблица" и "БД" - это совсем разные объекты.
У меня таблица и БД имеют одно и тоже название. Ошибка все равно есть.
HappyJesus вне форума Ответить с цитированием
Старый 12.11.2015, 17:48   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
таблица и БД имеют одно и тоже название.
Эт плохо. Меняй имя таблицы.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.11.2015, 17:53   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

согласен, даже если и это не является причиной ошибки в данном случае, но ничего хорошего в подобных совпадениях нет.

Ошибка та же самая?

а покажите структуру вашей таблицы AdminLog
может там и полей таких нет!
И какая у Вас СУБД?

Или запакуйте исходники проекта (*.dpr, *.dfm, *.pas) в архив и выложите архив сюда, посмотрим, где Вы косячите.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 13.11.2015, 14:30   #10
HappyJesus
 
Регистрация: 26.10.2015
Сообщений: 9
По умолчанию

Спасибо за помощь! Все заработало. Причина "Синтаксической ошибки" была в том что у меня Delphi не хотел читать слово VALUE а вот VALUES прочитал нормально. Еще раз спасибо за помощь!
HappyJesus вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi. Добавление данных в документ Word. Алекс Миско Помощь студентам 3 15.06.2012 20:51
база данных. добавление и удаление данных midiss Общие вопросы Delphi 3 09.12.2011 13:07
Добавление данных в таблицу через Delphi bablzz БД в Delphi 7 08.10.2010 00:38
Добавление данных Delphi ара Помощь студентам 1 10.04.2010 13:47
Добавление данных из Delphi в таблице Excel Neket21 БД в Delphi 1 23.07.2009 08:06