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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.05.2013, 22:46   #1
viks1
человек
Форумчанин
 
Аватар для viks1
 
Регистрация: 11.05.2009
Сообщений: 517
По умолчанию Обычный INSERT

Здравствуйте!
Столкнулся с ошибкой


Есть таблица users есть поля login, password
запрос
Код:
procedure TForm2.Button4Click(Sender: TObject);
begin
DataModule2.ADOQuery1.Active:=false;
DataModule2.ADOQuery1.SQL.Clear;
DataModule2.ADOQuery1.SQL.Add('INSERT INTO users(login, password)');
DataModule2.ADOQuery1.SQL.Add('VALUES($log, $pass)');
DataModule2.ADOQuery1.Active:=true;

end;
поля ввода взяты из DBEdit
1-е поле log
2-e pass

мне в запросе писать log.text? или как?
viks1 вне форума Ответить с цитированием
Старый 02.05.2013, 22:49   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
VALUES($log, $pass)
А что это интересно?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 02.05.2013, 22:51   #3
viks1
человек
Форумчанин
 
Аватар для viks1
 
Регистрация: 11.05.2009
Сообщений: 517
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Код:
VALUES($log, $pass)
А что это интересно?
по идее то что я ввожу в DBEdit
2 DBEdit-a поименованы как log и pass
вот только я не знаю как их вставить эти поля ввода в запрос
viks1 вне форума Ответить с цитированием
Старый 02.05.2013, 22:53   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
DataModule2.ADOQuery1.SQL.Add('VALUES(:log, :pass)');
DataModule2.ADOQuery1.Parameters.ParamByName('log').Value:=Edit1.Text;
DataModule2.ADOQuery1.Parameters.ParamByName('pass').Value:=Edit2.Text;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 02.05.2013, 22:57   #5
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

немного дополню пост Аватара,
1. в SQL запросе параметры обозначаются через знаки двоеточие либо вопросительный знак
2. для INSERT запроса
Код:
DataModule2.ADOQuery1.ExecSQL;
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 02.05.2013, 22:59   #6
Neon-z
Пользователь
 
Регистрация: 05.09.2010
Сообщений: 14
По умолчанию

Ну или просто :
DataModule2.ADOQuery1.SQL.Clear;
DataModule2.ADOQuery1.SQL.Add('INSE RT INTO users(login, password)');
DataModule2.ADOQuery1.SQL.Add('VALU ES('''+log.Text + ''', ''' + Pass.Text + ''')');
DataModule2.ADOQuery1.ExecSQL;

Подразумеваю, что log и pass поля ввода, а ExecSQL потому что это запросы модификации, а не выборки.
Neon-z вне форума Ответить с цитированием
Старый 02.05.2013, 23:04   #7
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

Neon-z,
1. код нужно оформлять по правилам
2. не есть хорошо подавать заведомо нехороший тон написания запросов (я о
Цитата:
'VALU ES('''+log.Text + ''', ''' + Pass.Text + ''')');
)
(без обид)
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 02.05.2013, 23:07   #8
Neon-z
Пользователь
 
Регистрация: 05.09.2010
Сообщений: 14
Счастье

Хорошо, буду исправляться. Я на Java знаю, что такое prepared запросы, а как они на дельфи реализуются - не знаю) Я этот язык недолюбливаю из-за того, что плохо его знаю.
Neon-z вне форума Ответить с цитированием
Старый 03.05.2013, 00:14   #9
viks1
человек
Форумчанин
 
Аватар для viks1
 
Регистрация: 11.05.2009
Сообщений: 517
По умолчанию

Никакой из вариантов не работает
та же ошибка
viks1 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
обычный цикл emdroof C# (си шарп) 0 26.03.2013 22:16
Обычный и Безопасный Режим Giku Windows 10 26.09.2012 21:54
Обычный класс и SetWindowLong Alexoid Общие вопросы C/C++ 1 14.01.2011 08:21
Обычный и инженерный калькуляторы Alex Cones Свободное общение 31 15.04.2010 08:02