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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 19.12.2014, 10:14   #1
Яяя1
Пользователь
 
Регистрация: 02.12.2014
Сообщений: 10
По умолчанию редактирование запи

var s: string;
begin
DataModule4.ADOQuery2.Active:= false;
DataModule4.ADOQuery2.SQL.Clear;
s:='Update Regist set parol '+QuotedStr(Edit2.Text);
DataModule4.ADOQuery2.SQL.Add(s);
DataModule4.ADOQuery2.Active:= true;
end;

Ошибка в синтаксисе Update
как правильно будет?
Яяя1 вне форума
Старый 19.12.2014, 10:23   #2
Toxa
Форумчанин Подтвердите свой е-майл
 
Аватар для Toxa
 
Регистрация: 01.12.2006
Сообщений: 514
По умолчанию

Код:
 parol ='+QuotedStr(Edit2.Text);
и условие бы добавить в запрос, а то он проапдейтит все записи
Код:
where id = 11
Пишу на Delphi за еду
Toxa вне форума
Старый 19.12.2014, 10:25   #3
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Код:
DataModule4.ADOQuery2.SQL.Text:='Update Regist set parol =:p';
DataModule4.ADOQuery2.Params.ParamByname('p').value:=Edit2.Text;
Цитата:
и условие бы добавить в запрос, а то он проапдейтит все записи
Код:
...Text:='update ... where id=:n';
...ParambyName('n').value:=11;
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума
Старый 19.12.2014, 10:39   #4
Яяя1
Пользователь
 
Регистрация: 02.12.2014
Сообщений: 10
По умолчанию

var s: string;
begin
DataModule4.ADOQuery2.Active:= false;
DataModule4.ADOQuery2.SQL.Clear;
s:='SELECT * FROM Regist WHERE login ='+ QuotedStr(Edit1.text)+' and parol ='+ QuotedStr(Edit2.text);
DataModule4.ADOQuery2.SQL.Add(s);
DataModule4.ADOQuery2.Active:= true;
if not DataModule4.ADOQuery2.IsEmpty then
begin
form1.Hide;
Form2.Show;
end
else
begin
MessageDlg('Логин и пароль не верны',mtError,[mbOK],0);
end;

ЭТОТ код использовала при входе. Правильно?
я впервые работаю с базой Аксес и поэтому мне трудно.
Попробуйте объяснить если сможете:
DataModule4.ADOQuery2.SQL.Text:='Up date Regist set parol = :р ';
DataModule4.ADOQuery2.Parameters.Pa ramByName('p').Value:=Edit2.Text;
здесь ":р" и "р" что означает?

Последний раз редактировалось Яяя1; 19.12.2014 в 11:28. Причина: там смайлика не должно быт извените
Яяя1 вне форума
Старый 19.12.2014, 13:26   #5
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
Попробуйте объяснить если сможете:
DataModule4.ADOQuery2.SQL.Text:='Up date Regist set parol = :р ';
DataModule4.ADOQuery2.Parameters.Pa ramByName('p').Value:=Edit2.Text;
здесь ":р" и "р" что означает?
Это использование запросов с параметрами.
":" указание что идентификатор(имя) следующее непосредственно за этим знаком (без пробела!) есть имя параметра.
":р" -указание что при выполнении надо использовать параметр с именем p (подставить его значение).
"p" -задать значение параметра с именем p.

Теперь
1. можно с помощью одного и того же запроса написанного где-то заранее и один раз изменять разные записи.
2. повышается читаемость кода. Запрос можно бегло просмотреть за один раз без мысленного "вычеркивания" +QuotedStr(Edit1.Text) +
3.Можно использовать числа и др.типы данных без приведения к строке.
Код:
sql.text:='update t set v='+quotedStr('1') +where id=' +'1'; 
Active:=true;

sql.text:='update t set v='+'3 ' +'where id='+ '5';
Active:=true;
против
Код:
sql.text:='update t set v=:p where id=:n'; //написан один раз

ParamByname('p').value:=1;
ParamByname('n').value:=1;
Active:=true;// использован раз

ParamByname('p').value:=3;
ParamByname('n').value:=5;
Active:=true;// использован другой раз
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 19.12.2014 в 13:29.
evg_m вне форума
Старый 20.12.2014, 07:45   #6
Яяя1
Пользователь
 
Регистрация: 02.12.2014
Сообщений: 10
По умолчанию

Спасибо
Теперь я сделала отчет (экзель).
но мне нужно поставить условие касающейся последнего столбика, столбец называется ВИД РАБОТЫ (Сварочно-монтажная есть и наладка)
отчет отдельно по Сварочно-монтажной и отдельно Наладка должна выйти
ПОМОГИТЕ. Вот код
Яяя1 вне форума
Старый 20.12.2014, 07:47   #7
Яяя1
Пользователь
 
Регистрация: 02.12.2014
Сообщений: 10
По умолчанию

var XL: Variant;
i,j,n:integer;
begin
If Form3.DBGrid1.Columns.Items[12].Field.Text='Íàëàäêà' then begin
ShowMessage('Íåîáõîäèìà õîòÿáû îäíà çàïèñü');
end
else
begin
try
XL:=CreateOleObject('Excel.Applicat ion');
XL.Visible:=true;
except
Exception.Create('Error');
end;
XL.WorkBooks.Add;
XL.WorkBooks[1].WorkSheets[1].Name :='Отчет';
XL.WorkBooks[1].WorkSheets[1].Cells[3,1]:=DBGrid1.Columns.Items[0].Title.Caption;
XL.WorkBooks[1].WorkSheets[1].Cells[3,2]:=DBGrid1.Columns.Items[1].Title.Caption;
XL.WorkBooks[1].WorkSheets[1].Cells[3,3]:=DBGrid1.Columns.Items[2].Title.Caption;
XL.WorkBooks[1].WorkSheets[1].Cells[3,4]:=DBGrid1.Columns.Items[3].Title.Caption;
XL.WorkBooks[1].WorkSheets[1].Cells[3,5]:=DBGrid1.Columns.Items[4].Title.Caption;
XL.WorkBooks[1].WorkSheets[1].Cells[3,6]:=DBGrid1.Columns.Items[5].Title.Caption;
XL.WorkBooks[1].WorkSheets[1].Cells[3,7]:=DBGrid1.Columns.Items[6].Title.Caption;
XL.WorkBooks[1].WorkSheets[1].Cells[3,8]:=DBGrid1.Columns.Items[7].Title.Caption;
XL.WorkBooks[1].WorkSheets[1].Cells[3,9]:=DBGrid1.Columns.Items[8].Title.Caption;
XL.WorkBooks[1].WorkSheets[1].Cells[3,10]:=DBGrid1.Columns.Items[9].Title.Caption;
XL.WorkBooks[1].WorkSheets[1].Cells[3,11]:=DBGrid1.Columns.Items[10].Title.Caption;
XL.WorkBooks[1].WorkSheets[1].Cells[3,12]:=DBGrid1.Columns.Items[11].Title.Caption;
XL.WorkBooks[1].WorkSheets[1].Cells[3,13]:=DBGrid1.Columns.Items[12].Title.Caption;
XL.WorkBooks[1].WorkSheets[1].Cells[3,14]:=DBGrid1.Columns.Items[13].Title.Caption;
Inc(i);
DataModule4.ADOTable1.Open;
DataModule4.ADOTable1.First;
while not DataModule4.ADOTable1.Eof do
Begin
XL.WorkBooks[1].WorkSheets[1].Cells[i+3,1]:=DBGrid1.Columns.Items[0].Field.Text;
XL.WorkBooks[1].WorkSheets[1].Cells[i+3,2]:=DBGrid1.Columns.Items[1].Field.Text;
XL.WorkBooks[1].WorkSheets[1].Cells[i+3,3]:=DBGrid1.Columns.Items[2].Field.Text;
XL.WorkBooks[1].WorkSheets[1].Cells[i+3,4]:=DBGrid1.Columns.Items[3].Field.Text;
XL.WorkBooks[1].WorkSheets[1].Cells[i+3,5]:=DBGrid1.Columns.Items[4].Field.Text;
XL.WorkBooks[1].WorkSheets[1].Cells[i+3,6]:=DBGrid1.Columns.Items[5].Field.Text;
XL.WorkBooks[1].WorkSheets[1].Cells[i+3,7]:=DBGrid1.Columns.Items[6].Field.Text;
XL.WorkBooks[1].WorkSheets[1].Cells[i+3,8]:=DBGrid1.Columns.Items[7].Field.Text;
XL.WorkBooks[1].WorkSheets[1].Cells[i+3,9]:=DBGrid1.Columns.Items[8].Field.Text;
XL.WorkBooks[1].WorkSheets[1].Cells[i+3,10]:=DBGrid1.Columns.Items[9].Field.Text;
XL.WorkBooks[1].WorkSheets[1].Cells[i+3,11]:=DBGrid1.Columns.Items[10].Field.Text;
XL.WorkBooks[1].WorkSheets[1].Cells[i+3,12]:=DBGrid1.Columns.Items[11].Field.Text;
XL.WorkBooks[1].WorkSheets[1].Cells[i+3,13]:=DBGrid1.Columns.Items[12].Field.Text;
XL.WorkBooks[1].WorkSheets[1].Cells[i+3,14]:=DBGrid1.Columns.Items[13].Field.Text;
Inc(i);
DataModule4.ADOTable1.Next;
End;
DataModule4.ADOTable1.close;

XL.WorkBooks[1].WorkSheets[1].Columns[1].ColumnWidth:=DBGrid1.Columns.Items[0].Width/7.5;
XL.WorkBooks[1].WorkSheets[1].Columns[2].ColumnWidth:=DBGrid1.Columns.Items[1].Width/3.5;
XL.WorkBooks[1].WorkSheets[1].Columns[3].ColumnWidth:=DBGrid1.Columns.Items[2].Width/3.5;
XL.WorkBooks[1].WorkSheets[1].Columns[4].ColumnWidth:=DBGrid1.Columns.Items[3].Width/2.0;
XL.WorkBooks[1].WorkSheets[1].Columns[5].ColumnWidth:=DBGrid1.Columns.Items[4].Width/1.7;
XL.WorkBooks[1].WorkSheets[1].Columns[6].ColumnWidth:=DBGrid1.Columns.Items[5].Width/1.5;
XL.WorkBooks[1].WorkSheets[1].Columns[7].ColumnWidth:=DBGrid1.Columns.Items[6].Width/2.0;
XL.WorkBooks[1].WorkSheets[1].Columns[8].ColumnWidth:=DBGrid1.Columns.Items[7].Width/2.0;
XL.WorkBooks[1].WorkSheets[1].Columns[9].ColumnWidth:=DBGrid1.Columns.Items[8].Width/1.5;
XL.WorkBooks[1].WorkSheets[1].Columns[10].ColumnWidth:=DBGrid1.Columns.Items[9].Width/1.0;
XL.WorkBooks[1].WorkSheets[1].Columns[11].ColumnWidth:=DBGrid1.Columns.Items[10].Width/1.5;
XL.WorkBooks[1].WorkSheets[1].Columns[12].ColumnWidth:=DBGrid1.Columns.Items[11].Width/1.5;
XL.WorkBooks[1].WorkSheets[1].Columns[13].ColumnWidth:=DBGrid1.Columns.Items[12].Width/2.5;
XL.WorkBooks[1].WorkSheets[1].Columns[14].ColumnWidth:=DBGrid1.Columns.Items[13].Width/2.5;
XL.WorkBooks[1].WorkSheets[1].PageSetup.LeftMargin:=1;
XL.WorkBooks[1].WorkSheets[1].PageSetup.RightMargin:=1;
XL.WorkBooks[1].WorkSheets[1].Range['A2:O2'].Merge;
XL.WorkBooks[1].WorkSheets[1].Cells[2,1]:='Таблица отчета';
j:=13+DBGrid1.FieldCount;
n:=1;
XL.WorkBooks[1].WorkSheets[1].Rows[2].HorizontalAlignment:=3;
XL.WorkBooks[1].WorkSheets[1].Rows[2].Font.Bold := True;
XL.WorkBooks[1].WorkSheets[1].Rows[2].Font.Color := clBlack;
XL.WorkBooks[1].WorkSheets[1].Rows[2].Font.Size := 16;
XL.WorkBooks[1].WorkSheets[1].Rows[3].Font.Bold := True;
DataModule4.ADOTable1.Active:=true;
end;
Яяя1 вне форума
Старый 20.12.2014, 08:51   #8
Яяя1
Пользователь
 
Регистрация: 02.12.2014
Сообщений: 10
По умолчанию

а все сделала всем спасибо
Яяя1 вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
удаленное редактирование maxvip Microsoft Office Excel 5 24.09.2013 15:23
Редактирование ken_ukeng Помощь студентам 1 06.01.2013 21:09
Редактирование БД son_of_koshi Помощь студентам 5 05.08.2010 11:31
Редактирование Valera24 Помощь студентам 9 11.06.2009 19:41
Редактирование AntiZero Помощь студентам 2 12.11.2007 18:02