procedure TfrmGettingStarted.btnInsertClick(Sender: TObject);
const
strInsert = 'insert into Categories(CategoryName, Description, Picture) values(:N, :D, :P)';
//:name, :age 参数 的方式(后面还要以数组的方式给出相应的值), 这比字符串的 Format 函数还要方便.
var
iID: Integer;
begin
if not FDconnection1.Connected then Exit;
// Insert a record 增
FDconnection1.ExecSQL( strInsert , ['New category', 'Nasdcription', $0234]);
FDconnection1.ExecSQL( strInsert , ['asdfa', 'description', $03134]);
FDconnection1.ExecSQL( strInsert , ['Nvddy', 'New description', $0434]);
FDconnection1.ExecSQL( strInsert , ['Asdf', 'New description', $03234]);
FDconnection1.ExecSQL( strInsert , ['ADsadafda', 'New description', $03314]);
FDConnection1.ExecSQL('INSERT INTO MyTable(姓名,语文, 数学, 英语) VALUES(''AA'', 11,22,33), (''BA'', 11,22,33), (''CA'', 11,22,33) ');
if not FDQuery1.Active then FDQuery1.Active:=true;
// Get a scalar value from DB, 查,只返回第一个 结果值
iID := FDconnection1.ExecSQLScalar('select MAX(CategoryID) from Categories');
caption := 'Last CategoryID = ' + IntToStr(iID);
end;
procedure TfrmGettingStarted.btnUpdateClick(Sender: TObject);
begin
if not FDconnection1.Connected then Exit;
// Update records 改
FDconnection1.ExecSQL('update Products set UnitPrice = UnitPrice * :P1 + :P2 ' +
'where ProductID < 3', [Random(5), Random(3)]);
if not FDQuery1.Active then FDQuery1.Active:=true;
end;
procedure TfrmGettingStarted.btnDeleteClick(Sender: TObject);
begin
if not FDconnection1.Connected then Exit;
// Delete a record 删
FDconnection1.ExecSQL('delete from Categories where CategoryName like :N', ['New category']);
if not FDQuery1.Active then FDQuery1.Active:=true;
end;