Delphi FireDAC 下的 Sqlite(五) 数据的插入、更新和删除2015-02-13先在空白窗体上添加: TFDConnection、TFDPhysSQLiteDriverLink、TFDGUIxWaitCursor、TFDQuery、TDataSource、TDBGrid(并在设计时关联好).你也可以复制下面文本框中的内容, 然后直接往窗体上贴, 以快速完成以上的添加过程:
代码:
{建立}procedure TForm1.FormCreate(Sender: TObject);constdbPath = "C:TempSQLiteTest.sdb";strTable = "CREATE TABLE MyTable(Id integer PRIMARY KEY AUTOINCREMENT, Name string(10), Age byte)"; //Id, Name, Age 三个字段//integer PRIMARY KEY AUTOINCREMENT: 自增字段beginif FileExists(dbPath) then DeleteFile(dbPath);FDConnection1.ConnectionString := "DriverID=SQLite; Database=" + dbPath;FDConnection1.ExecSQL(strTable);FDQuery1.Open("SELECT * FROM MyTable");end;{插入}procedure TForm1.Button1Click(Sender: TObject);conststrInsert = "INSERT INTO MyTable(Name, Age) VALUES(:name, :age)"; //:name, :age 的方式(后面还要以数组的方式给出相应的值), 这比字符串的 Format 函数还要方便.beginFDConnection1.ExecSQL(strInsert, ["AAA", 11]);FDConnection1.ExecSQL(strInsert, ["BBB", 22]);FDConnection1.ExecSQL(strInsert, ["CCC", 33]);FDConnection1.ExecSQL(strInsert, ["DDD", 44]);FDConnection1.ExecSQL(strInsert, ["EEE", 55]);FDQuery1.Refresh;end;{更新}procedure TForm1.Button2Click(Sender: TObject);beginFDConnection1.ExecSQL("UPDATE MyTable SET Age=:a WHERE Name=:n", [Random(100), "AAA"]);FDQuery1.Refresh;end;{删除}procedure TForm1.Button3Click(Sender: TObject);beginFDConnection1.ExecSQL("DELETE FROM MyTable WHERE Age>33");FDQuery1.Refresh;end;{查询符合条件的第一个结果}procedure TForm1.Button4Click(Sender: TObject);varV: Variant;beginV := FDConnection1.ExecSQLScalar("SELECT Age FROM MyTable WHERE Name = :x", ["BBB"]);ShowMessage(V);end;