SQLite: new ID bei Insert Add
Wie bekommt man die neue ID beim Einfügen eines Datensatzes
in SQLite
Lösung:
Der Rückgabewert eine Sqlite.Insert Anweisung ergibt immer automisch
die neue ID einer Tabelle, sofern eine Integer-Autoimcrement Spalte vorhanden
ist.
Bei einem Fehler wird eine -1 ausgegeben als
long newID = db.insert("tbl_Notes", null, values);
|
Bei einer Taellen-Struktur, welche ein eindeutiges ID Feld
aufweist.
Hierzu muss beim Create der SQLite Tabelle Integer Primary Key
Autoincrement angegeben werden
CREATE TABLE tbl_Notes ( IDNote INTEGER PRIMARY KEY AUTOINCREMENT ..
|
public long add_Note(String
sTitle, String sText, Date dtNoteDay) {
//--------<
add_Note() >--------
//*add a recordset to the tbl_Notes
Table
//< getDB >
SQLiteDatabase db = this.getWritableDatabase();
//</ getDB >
//< set_Values >
SimpleDateFormat
fmtDate = new SimpleDateFormat("YYYYMMdd");
String sDate_Note =
fmtDate.format(dtNoteDay);
String sDate_Now = fmtDate.format(new Date());
ContentValues values = new ContentValues();
values.put("Title", sTitle);
//values.put("Text",
sText);
//values.put("dtDay",
sDate_Note);
//values.put("dtEdit",
sDate_Now);
//</ set_Values >
//< add >
long newID = db.insert("tbl_Notes", null, values);
//</ add >
//< out >
if (newID == -1)
{
//*SQLite Error on
Insert: -1
return -1;
}
else
{
//*return value is new
ID
return newID;
}
//</ out >
//--------</ add_Note()
>--------
}
|
Datenbank auf Android
Im Localhost->sqlite
Datenbank in SQLite auf Android: http://192.168.178.23:8080/# (Android
Debug Database)
IDNote
|
Title
|
Text
|
dtDay
|
dtEdit
|
|
|
|
|
|
5
|
dfffcName
|
|
|
2018-09-28 17:33:52
|
11
|
not online
|
|
|
2018-09-28 18:03:20
|
12
|
new Data
|
|
|
2018-09-28 18:05:12
|
13
|
924Name
|
|
|
2018-10-01 07:23:11
|
Dazugehörende Tabellenstruktur:
@Override
public
void onCreate(SQLiteDatabase
db) {
//--------<
onCreate() >--------
//*Create Tables
String createTable = "CREATE TABLE
tbl_Notes " +
"( IDNote INTEGER PRIMARY KEY AUTOINCREMENT
" +
" , Title TEXT
" + //*Note of type TEXT
" , Text TEXT
" + //*Note of type TEXT
" , dtDay
DATETIME " +
" , dtEdit
DATETIME DEFAULT CURRENT_TIMESTAMP " +
")"
;
db.execSQL(createTable);
//--------</
onCreate() >--------
}
|