android上的SQLite insert只能工作一次

android上的SQLite insert只能工作一次,sqlite,delphi,delphi-xe5,Sqlite,Delphi,Delphi Xe5,我在Delphi上遇到了一个问题,我创建了一个简单的应用程序来测试RadStudio的移动能力,我创建了一个简单的应用程序,将一些数据输入到一些输入中,然后在单击按钮时将其添加到数据库中。我把它作为出发点 问题是我只添加了一个条目,然后没有添加更多条目,或者列表没有刷新。下面是一些代码: 表格创建: procedure TTabbedForm.logAfterConnect(Sender: TObject); begin log.ExecuteDirect('CREATE TABLE IF

我在Delphi上遇到了一个问题,我创建了一个简单的应用程序来测试RadStudio的移动能力,我创建了一个简单的应用程序,将一些数据输入到一些输入中,然后在单击按钮时将其添加到数据库中。我把它作为出发点

问题是我只添加了一个条目,然后没有添加更多条目,或者列表没有刷新。下面是一些代码:

表格创建:

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,我让它开始工作。很抱歉花了这么长时间,但只有今天我才能重新开始这个项目。。。再次感谢你的帮助,雷米!