Задать вопрос
sorry_i_noob
@sorry_i_noob

Почему если добавлять значение в БД через переменную, то добавляется «ADOQuery1», а если напрямую, то нормальное значение?

Здравствуйте.
Есть такой код
procedure TForm1.FramePositionsAdd1ButtonAddClick(Sender: TObject);
var
  Name: String;
begin
    Name := FramePositionsAdd1.EditName.Text;

    with FramePositionsAdd1.ADOQuery1 do
    begin;
    SQL.Clear;
    SQL.Text := 'INSERT INTO Должности ' +
    '(Наименование) ' +
    'VALUES ' +
    '(:title)';
    Parameters.ParamByName('title').Value := Name;
    ExecSQL;
    end;
end;

Значение в БД добавляется, но вместо FramePositionsAdd1.EditName.Text добавляется строка "ADOQuery1".
Я попробовал убрать переменную Name. Меняется одна строчка:
Parameters.ParamByName('title').Value := FramePositionsAdd1.EditName.Text;

И все начинает добавляться правильно. В чем проблема?
  • Вопрос задан
  • 33 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
@Exteris
WITH - зло.
Вы добавляете в БД значение FramePositionsAdd1.ADOQuery1.Name
Ответ написан
Комментировать
tsklab
@tsklab
Здесь отвечаю на вопросы.
procedure TForm1.FramePositionsAdd1ButtonAddClick(Sender: TObject);
begin
  FramePositionsAdd1.ADOQuery1.SQL.Text := 'INSERT INTO Должности (Наименование) ' +
      'VALUES ''' + FramePositionsAdd1.EditName.Text + ''''
  FramePositionsAdd1.ADOQuery1.ExecSQL;
end;
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы