Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Как создать новую строку в таблице MS SQL


Автор: keenqd 20.6.2014, 20:37
Здравствуйте, подскажите пожалуйста пример создания новой строки БД MS SQL по нажатию кнопки Delphi с помощью ADOQuery(таблица files с полями id_file_vkr, file_vkr, id_student)

Автор: ТоляМБА 23.6.2014, 10:59
Вариант1 (для примера):
Код
  FDQuery1.SQL.Text:='INSERT INTO files ( id_file_vkr, file_vkr, id_student) values (1,''бла'',2)';
  FDQuery1.ExecSQL;

Вариант2 (то же самое, только через переменные и параметры):
Код
procedure TForm1.Button3Click(Sender: TObject);
var
  i_f_i,i_s:integer;
  f_v:string;
begin
  i_f_i:=1;
  f_v:='бла';
  i_s:=2;
  FDQuery1.SQL.Text:='INSERT INTO files ( id_file_vkr, file_vkr, id_student) values (:ifv,:fv,:is)';
  FDQuery1.ParamByName('ifv').Value := i_f_i;
  FDQuery1.ParamByName('fv').Value := f_v;
  FDQuery1.ParamByName('is').Value := i_s;
  FDQuery1.ExecSQL;
end;

Возможные грабли с твоей таблицей:
1 - поле id_file_vkr может быть автоинкрементом, тогда тебе надо исключить его из запроса т.к. его значение будет генерировать сам сервер.
2 - поле id_student скорее всего ключ к связанной таблице, вставлять в него надо только значения из связанной таблицы.

Автор: keenqd 24.6.2014, 22:26
Спасибо, id_file_vkr не автоинкрементое поле, а вот  id_student используется для связки с другой таблицей 1:1

Добавлено через 4 минуты и 56 секунд
file_vkr - varbinary(max)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)