sqlite3データベースへの挿入に失敗した理由は何ですか? SQLiteExceptionからのトレースは特に役に立ちません。SQLiteExceptionが行の挿入に失敗しました
例外の原因についてより良い情報を得る方法はありますか?表は、(任意グラグラ間隔のために申し訳ありません)が作成され
:
インサート:値は、SAXパーサをするendElementに解析され
プロバイダに挿入場合:
case SUBMATERIAL_SINGLE_URI:
rowId = db.insert(jobName+JobMetaData.SubmaterialTableMetaData.TABLE_NAME_SUFFIX,
JobMetaData.SubmaterialTableMetaData.TYPE, validValues);
if (rowId > 0)
{
Uri submaterialUri = ContentUris.withAppendedId(JobMetaData.SubmaterialTableMetaData.CONTENT_URI,
rowId);
getContext().getContentResolver().notifyChange(submaterialUri, null);
return submaterialUri;
}
break;
スタックトレース:
System.err(8048): android.database.SQLException: Failed to insert row into content://dsndata.sds2mobile.jobprovider/C_1/submaterial/NULL
System.err(8048): at dsndata.sds2mobile.JobProvider.insert(JobProvider.java:341)
System.err(8048): at android.content.ContentProvider$Transport.insert(ContentProvider.java:180)
System.err(8048): at android.content.ContentResolver.insert(ContentResolver.java:587)
System.err(8048): at dsndata.sds2mobile.parser.MobileParser.endElement(MobileParser.java:227)
System.err(8048): at org.xml.sax.helpers.XMLReaderAdapter.endElement(XMLReaderAdapter.java:355)
System.err(8048): at org.apache.harmony.xml.ExpatParser.endElement(ExpatParser.java:160)
System.err(8048): at org.apache.harmony.xml.ExpatParser.append(Native Method)
System.err(8048): at org.apache.harmony.xml.ExpatParser.parseFragment(ExpatParser.java:505)
System.err(8048): at org.apache.harmony.xml.ExpatParser.parseDocument(ExpatParser.java:492)
System.err(8048): at org.apache.harmony.xml.ExpatReader.parse(ExpatReader.java:308)
System.err(8048): at org.apache.harmony.xml.ExpatReader.parse(ExpatReader.java:264)
System.err(8048): at org.xml.sax.helpers.XMLReaderAdapter.parse(XMLReaderAdapter.java:225)
System.err(8048): at javax.xml.parsers.SAXParser.parse(SAXParser.java:361)
System.err(8048): at dsndata.sds2mobile.parser.MobileParser.parse(MobileParser.java:120)
System.err(8048): at dsndata.sds2mobile.UI.onClick(UI.java:90)
System.err(8048): at android.view.View.performClick(View.java:2408)
System.err(8048): at android.view.View$PerformClick.run(View.java:8817)
System.err(8048): at android.os.Handler.handleCallback(Handler.java:587)
System.err(8048): at android.os.Handler.dispatchMessage(Handler.java:92)
System.err(8048): at android.os.Looper.loop(Looper.java:144)
System.err(8048): at android.app.ActivityThread.main(ActivityThread.java:4937)
System.err(8048): at java.lang.reflect.Method.invokeNative(Native Method)
System.err(8048): at java.lang.reflect.Method.invoke(Method.java:521)
System.err(8048): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
System.err(8048): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
System.err(8048): at dalvik.system.NativeStart.main(Native Method)
私はここURIにそのNULLに注意しなければならない文字列値であり、URIマッチング方式に従って許容されます。これはテスト実行であり、実際の値はまだ使用されていません。
更新: 私のパートナー(XMLを作成していた人)がいくつかの項目を残していることが判明しました。すべてが分かった。
ありがとうございました!私は時間を感謝します。
あなたはそれを私たちに見せてもらえますか?そして挿入の周りのコード? –
stacktrace?また、{}ボタンを使用して質問内でコードスニペットの書式を設定することもできます。これは外部リンクよりも好ましい方法です。 –
ContentProvider(JobProvider?!)の "insert()"関数からコードスニペットを提供してください。 – dbm