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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.09.2012, 15:12   #1
Krais
 
Регистрация: 05.05.2011
Сообщений: 7
Печаль Ошибка синтаксиса update

Всем добрый день. Делаю БД и для редакции использую SQL запросы.
Возникла ОШИБКА в "update", уже три дня голову ломаю, перерыл кучу литературы по теме, но так и не понял в чём ошибка. Помогите разобраться.
PHP код:
Листинг:
procedure TForm9.Button1Click(SenderTObject);
var  
l:integer;
begin
l
:=Form7.DBGrid1.DataSource.DataSet.fields[0].asinteger;
datamodule2.adoquery2.close;
datamodule2.adoquery2.SQL.Clear;
case 
RadioGroup1.ItemIndex of
0
:datamodule2.adoquery2.sql.Add('update Клиенты set [ФИО]=' dbEdit2.Text ' where №Клиента= ' inttostr(l) + ';');
1:datamodule2.adoquery2.sql.Add('update Клиенты set [Адрес]=' dbEdit3.Text ' where №Клиента= ' inttostr(l) + ';');
2:datamodule2.adoquery2.sql.Add('update Клиенты set [Телефон]=' dbEdit4.Text ' where №Клиента= ' inttostr(l) + ';');
3:datamodule2.adoquery2.sql.Add('update Клиенты set [Паспортные_данные]=' dbEdit5.Text ' where №Клиента= ' inttostr(l) + ';');
end;//case
datamodule2.ADOQuery2.ExecSQL;
end;

procedure TForm9.Button1MouseUp(SenderTObjectButtonTMouseButton;
  
ShiftTShiftStateXYInteger);
begin
datamodule2
.ADOQuery2.active:=false;
datamodule2.ADOQuery2.sql.text:='select Клиенты.[№Клиента],[ФИО],[Адрес],[Телефон],[Паспортные_данные] from Клиенты';
datamodule2.ADOQuery2.active:=true;
form9.Close;
end
Krais вне форума Ответить с цитированием
Старый 06.09.2012, 15:14   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Ошибка то хоть какая?
А так, на первый взгляд, №Клиента в скобки [] взять
dbEdit.Text везде в кавычки, в проге - удвоенные
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 06.09.2012 в 15:16.
Аватар вне форума Ответить с цитированием
Старый 06.09.2012, 15:33   #3
Krais
 
Регистрация: 05.05.2011
Сообщений: 7
По умолчанию

Скобки [№Клиента] поставил не помогло.
Все равно при выполнение выдает ошибку.
Krais вне форума Ответить с цитированием
Старый 06.09.2012, 15:38   #4
Krais
 
Регистрация: 05.05.2011
Сообщений: 7
По умолчанию


Последний раз редактировалось Krais; 06.09.2012 в 15:51.
Krais вне форума Ответить с цитированием
Старый 06.09.2012, 15:49   #5
Krais
 
Регистрация: 05.05.2011
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Ошибка то хоть какая?
А так, на первый взгляд, №Клиента в скобки [] взять
dbEdit.Text везде в кавычки, в проге - удвоенные
Честно говоря я не знаю где ошибка, но выдает следующее:
Krais вне форума Ответить с цитированием
Старый 06.09.2012, 15:53   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Примерно так, для остальных аналогично
Код:
0:datamodule2.adoquery2.sql.Add('update Клиенты set [ФИО]=''' + dbEdit2.Text + ''' where [№Клиента]= ' + inttostr(l));
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 06.09.2012, 16:03   #7
Krais
 
Регистрация: 05.05.2011
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Примерно так, для остальных аналогично
Код:
0:datamodule2.adoquery2.sql.Add('update Клиенты set [ФИО]=''' + dbEdit2.Text + ''' where [№Клиента]= ' + inttostr(l));
работать не будет т.к [ФИО]=''' присваиваешь ячейки пустое значение ''
Krais вне форума Ответить с цитированием
Старый 06.09.2012, 16:19   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
работать не будет т.к [ФИО]=''' присваиваешь ячейки пустое значение ''
А подумать? И в отладке посмотреть как формируется строка запроса?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 06.09.2012, 16:21   #9
Krais
 
Регистрация: 05.05.2011
Сообщений: 7
По умолчанию

Я попробовал без case
PHP код:
datamodule2.adoquery2.sql.Add('update Клиенты set [ФИО]=' dbEdit2.Text ',[Адрес]=' dbEdit3.Text ',[Телефон]=' dbEdit4.Text ',[Паспортные_данные]=' dbEdit5.Text ' where [№Клиента]= ' inttostr(l)); 
все равно выдает ошибку и указывает на эту строку:
PHP код:
DataModule2.ADOQuery2.ExecSQL
Krais вне форума Ответить с цитированием
Старый 06.09.2012, 16:25   #10
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Я про кавычки зря пишу? Пост 7 - умозрительное заключение? А программно проверить?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка синтаксиса в инструкции Update BioNoob БД в Delphi 8 19.06.2012 09:41
Ошибка синтаксиса Соффи JavaScript, Ajax 18 29.03.2012 12:56
ошибка синтаксиса MetR Общие вопросы Delphi 11 13.01.2012 12:40
ошибка синтаксиса foreach KLAXON PHP 32 08.02.2011 15:57
Ошибка синтаксиса Santosh Microsoft Office Access 2 18.08.2010 00:15