android上的SQLite insert只能工作一次
我在Delphi上遇到了一个问题,我创建了一个简单的应用程序来测试RadStudio的移动能力,我创建了一个简单的应用程序,将一些数据输入到一些输入中,然后在单击按钮时将其添加到数据库中。我把它作为出发点 问题是我只添加了一个条目,然后没有添加更多条目,或者列表没有刷新。下面是一些代码: 表格创建:android上的SQLite insert只能工作一次,sqlite,delphi,delphi-xe5,Sqlite,Delphi,Delphi Xe5,我在Delphi上遇到了一个问题,我创建了一个简单的应用程序来测试RadStudio的移动能力,我创建了一个简单的应用程序,将一些数据输入到一些输入中,然后在单击按钮时将其添加到数据库中。我把它作为出发点 问题是我只添加了一个条目,然后没有添加更多条目,或者列表没有刷新。下面是一些代码: 表格创建: procedure TTabbedForm.logAfterConnect(Sender: TObject); begin log.ExecuteDirect('CREATE TABLE IF
procedure TTabbedForm.logAfterConnect(Sender: TObject);
begin
log.ExecuteDirect('CREATE TABLE IF NOT EXISTS lista (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,idCons INTEGER,nome TEXT,kms INTEGER,kmsAlarme INTEGER,quantidade INTEGER,quantidadeAlarme INTEGER,data INTEGER,dataAlarme INTEGER,alarmeMsg TEXT)');
end;
添加按钮代码:
procedure TTabbedForm.btnGravarClick(Sender: TObject);
begin
try
SQLQueryInsert.ParamByName('idCons').AsInteger := PopupBoxTipo.ItemIndex;
SQLQueryInsert.ParamByName('nome').AsString := PopupBoxTipo.Text;
SQLQueryInsert.ParamByName('kms').AsInteger := StrToInt(kmsEdit.Text);
SQLQueryInsert.ParamByName('quantidade').AsInteger := StrToInt(qtdEdit.Text);
SQLQueryInsert.ParamByName('data').AsInteger := DateTimeToUnix(dtaEvento.Date);
SQLQueryInsert.ExecSQL();
lista.Refresh;
LinkFillControlToField1.BindList.FillList;
except
on e: Exception do
begin
ShowMessage(e.Message);
end;
end;
end;
如果您需要更多的代码片段,请询问
提前感谢您的回复 试试这个方法,它对我很管用
procedure TData.InsertItem(someObject: TSomeObjectClass);
var
qry: TFDQuery;
begin
qry := CreateQry( 'insert into SomeObject(id, description, something)'+
' values (:id, :description, :something);', false);
qry.Params.ParamByName('id').AsInteger := someObject.id;
qry.Params.ParamByName('description').asstring := someObject.description;
qry.Params.ParamByName('something').asstring := someObject.something;
qry.Prepare;
qry.execsql;
qry.Free;
end;
我在参数中输入了and object,但您也可以单独输入要插入的数据是否检查插入的Id是否与现有数据冲突?@RemiArts,表为空。。。第一次插入有效,但只有第一次…是的,但你不想再次插入相同的数据吗?如果主键相同,则不能insert@RemiArts,我想可能是这样的,但我更改了所有数据,我的表没有主键,因为SQLite处理它,教程表也没有主键并且可以工作……您尝试过我的答案了吗?对我来说,这种方法有效。如果它有效,请接受它作为答案!对于Thx的帮助,我使用了另一个组件,但通过TFDQuery,我让它开始工作。很抱歉花了这么长时间,但只有今天我才能重新开始这个项目。。。再次感谢你的帮助,雷米!