1

次のテーブル定義があります。

CREATE TABLE arbol32 (_id integer primary key autoincrement, ID integer, NIVEL integer, TEXTO text, ID_ORIG integer, CONTRATO integer, CODALMTESTOR text, CENTRO text, SECUEN text, DNIACUM text, UNIQUE(ID));

そして、複数回呼び出される次のコード片:

if(sArbol32.getPropertyCount()>0)
            {
                cargarAuxiliares=true;    
                  Arbol32BE[] arbol32=WSManager.RetrieveArbol32FromSoap(sArbol32);
                    arbol32Table.open();
                    arbol32Table.beginTransaction();
                    for(int i=0;i<sArbol32.getPropertyCount();i++){
                      arbol32Table.create(arbol32[i].id, arbol32[i].nivel, arbol32[i].texto, arbol32[i].id_orig, 
                                            arbol32[i].contrato, arbol32[i].codalmtestor, arbol32[i].centro,arbol32[i].secuen,arbol32[i].dniacum);
                    }
                    arbol32Table.setTransactionSuccessful();
                    arbol32Table.endTransaction();
                    arbol32Table.close();
            }

最後に、これは create メソッドのコードです。

public long create(int id,int nivel,String texto,int id_orig,int contrato,String codalmtestor,String centro,String secuen, String dniacum) {
Log.i(TAG, "Inserting record...");
ContentValues initialValues = new ContentValues();
//initialValues.put(KEY_ROWID, id);
initialValues.put(KEY_ID,id);
initialValues.put(KEY_NIVEL,nivel);
initialValues.put(KEY_TEXTO,texto);
initialValues.put(KEY_ID_ORIG,id_orig);
initialValues.put(KEY_CONTRATO,contrato);
initialValues.put(KEY_CODALMTESTOR,codalmtestor);
initialValues.put(KEY_CENTRO,centro);
initialValues.put(KEY_SECUEN,secuen);
initialValues.put(KEY_DNIACUM,dniacum);
return mDb.insert(DATABASE_TABLE, null, initialValues);

}

UNIQUEを指定したのに同じIDの重複行が挿入されてしまうのが悩みです。私が間違っていることは何ですか??

4

1 に答える 1

0

私の間違い...古いデータベースでテストしていました。私がしていたことは大丈夫でした!

于 2012-06-13T23:49:23.817 に答える