Вопрос по Delphi

NiCketT

Member
Ответ: Вопрос по Delphi

Есть форма, и компонент типа TQuery и кнопочка. По нажатию на кнопочку должен выполнятся вот такой код
Код:
SaveQuery.SQL.Clear;
SaveQuery.SQL.Add('UPDATE Products.db p');
SaveQuery.SQL.Add('SET p."Count"=p."Count"-'+IntToStr(myCount.Value));
SaveQuery.SQL.Add('WHERE p.Product_id='+IntToStr(ProductID)+';');

SaveQuery.ExecSQL
Проблема в том, что он не работает - в БД попрежнему остаются старые данные. В чем может быть дело?
Так же в приложении есть и другая формочка, с компонентами TTable, TDataSource и TDataGrid которые отображают содержимое этой же таблички Products.db.
 

NiCketT

Member
Ответ: Вопрос по Delphi

Ну так что, кто мне поможет? С меня пиво! :chef:
 

Live

Happy Live :)
Ответ: Вопрос по Delphi

Есть форма, и компонент типа TQuery и кнопочка. По нажатию на кнопочку должен выполнятся вот такой код
Код:
SaveQuery.SQL.Clear;
SaveQuery.SQL.Add('UPDATE Products.db p');
SaveQuery.SQL.Add('SET p."Count"=p."Count"-'+IntToStr(myCount.Value));
SaveQuery.SQL.Add('WHERE p.Product_id='+IntToStr(ProductID)+';');

SaveQuery.ExecSQL
Проблема в том, что он не работает - в БД попрежнему остаются старые данные. В чем может быть дело?
Так же в приложении есть и другая формочка, с компонентами TTable, TDataSource и TDataGrid которые отображают содержимое этой же таблички Products.db.
Сперва SaveQuery присвой false. Заноси новые значения и вместо ExecSQL попробуй Query присвоить true. У меня всегда этот вариант работал. (на сервере FireBird 1.5) Смысл в чем. Прежде чем делать запрос постав его в false. И даже перед тем как компилировать оно тоже должно стоять в false. И не нужно писать SQL-запрос в самой програме для этого есть спец. свойство в SaveQuery где его можно прописать. Так намного удобнее имхо!
Например:
HTML:
if Edit1.Text<>'' then
 begin
   Form1.IBTable2.Active:=false;
   IBQuery1.Active:=false;
   IBQuery1.ParamByName('NAME_FORMAT').Value:=Edit1.Text;
   IBQuery1.Active:=true;
   form1.IBTable2.Close;
   form1.IBTable2.Open;
   Edit1.Clear;
 end;
где в свойстве SQL компонента IBQuery1 у меня прописан запрос:
insert into FORMATS (NAME_FORMAT)
values :)NAME_FORMAT)

И в свойстве Params я указываю Datatype то есть какой тип данных я подразумеваю делая запрос на добавление. Если не понимает укажи вручную например IBQuery1.ParamByName('NAME_FORMAT').AsInteger
То же самое можно реализовать и для обновления О_0 Удачи!
Для TTable, TDataSource и TDataGrid просто нужно открыть и закрыть саму таблицу.
Например:
HTML:
form1.IBTable2.Close;
form1.IBTable2.Open;

Якобы обновить изменения. Всегда работало!
 

celerons

Лёша
Ответ: Помощь по Delphi

Каким образом в делфи можно отследить текущий каталог? То есть тот каталог в котором находится exe-файл запускаемой програмы. Думал что по умолчанию к примеру в SaveDialog в свойстве InitialDir идет текущий каталог но не тут то было. Предлагает сохранить в Мои Документы. Хелп!
WinApi^ ShowMessage(getcurrentdir);
 

celerons

Лёша
Ответ: Вопрос по Delphi

Есть форма, и компонент типа TQuery и кнопочка. По нажатию на кнопочку должен выполнятся вот такой код
Код:
SaveQuery.SQL.Clear;
SaveQuery.SQL.Add('UPDATE Products.db p');
SaveQuery.SQL.Add('SET p."Count"=p."Count"-'+IntToStr(myCount.Value));
SaveQuery.SQL.Add('WHERE p.Product_id='+IntToStr(ProductID)+';');

SaveQuery.ExecSQL
Проблема в том, что он не работает - в БД попрежнему остаются старые данные. В чем может быть дело?
Так же в приложении есть и другая формочка, с компонентами TTable, TDataSource и TDataGrid которые отображают содержимое этой же таблички Products.db.
Может стоит воспользоваться Profiler - ом и посмотреть, идёт ли вообще запрос в базу, и если идёт то какой. А потом проверить етот же запрос в QA (Query Analyzer).
 

dreamer

Member
Ответ: Помощь по Delphi

Каким образом в делфи можно отследить текущий каталог? То есть тот каталог в котором находится exe-файл запускаемой програмы. Думал что по умолчанию к примеру в SaveDialog в свойстве InitialDir идет текущий каталог но не тут то было. Предлагает сохранить в Мои Документы. Хелп!
Если проблема только в том, чтобы диалог открывался на текущем каталоге то просто задай ему свойство InitialDir = '.'
 

[mAd_cAt]

Забанен
Ответ: Помощь по Delphi

Каким образом в делфи можно отследить текущий каталог? То есть тот каталог в котором находится exe-файл запускаемой програмы. Думал что по умолчанию к примеру в SaveDialog в свойстве InitialDir идет текущий каталог но не тут то было. Предлагает сохранить в Мои Документы. Хелп!
Код:
SaveDialog1.InitialDir:=Application.ExeName;
if Save.Execute then begin
//к примеру текст из RichEdit
RichEdit1.Lines.SaveToFile(SaveDialog1.FileName);
end;
 

alexmore

JuveFan
Возможно у кого-то есть проги по делфе, написанные для криптования/криптоанализа по алгоритмам Цезаря, Виженера и РСА.
Заранее благодарен за помощь.
 
ищу делфи самой последней версии(если нет подойдет даже 7мая) в сетке ссылку не пашут в дц нет , оч прошу очень нужно, с инета возможности скачать нет
 
Зверху