반응형
double 및 float 값을 sqlite에 삽입하는 방법은 무엇입니까?
다음은 내 db 생성 코드입니다.
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE " + TABLE_NAME + " (" +
_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
TIME + " INTEGER, " +
LONGI + " TEXT, "+
LATI + " TEXT, "+
SPEED + " TEXT, "+
ACCU + " TEXT);");
}
그런 다음 데이터 포인트 코드를 추가합니다.
private void addGeoDataEntry(double logi, double lati, float speed, float accu) {
SQLiteDatabase db = gpsDataHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(TIME, System.currentTimeMillis());
values.put(LONGI, logi+"");
values.put(LATI, lati+"");
values.put(SPEED, speed+"");
values.put(ACCU, accu+"");
db.insertOrThrow(TABLE_NAME, null, values);
}
내가 전화 할 때
addGeoDataEntry(10.0,11.0,3.0f,1.1f);
다음과 같은 오류가 발생합니다. 이 문제를 해결하는 방법?
03-14 13:57:26.910: I/Database(27910): sqlite returned: error code = 1, msg = near "1.0": syntax error
REAL
당신이 찾고있는 것입니다. SQLite 데이터 유형 문서
SQL은 다음 유형의 유사성을 지원합니다.
- 본문
- 숫자
- 정수
- 레알
- 얼룩
열에 대해 선언 된 유형에 "REAL", "FLOAT"또는 "DOUBLE"이 포함되어 있습니다. 열에 'REAL'선호도가 있습니다.
열의 데이터 유형을 NUMERIC 또는 DOUBLE 또는 FLOAT 또는 REAL 로 지정해야합니다.
자세한 내용은 http://sqlite.org/datatype3.html 을 참조하십시오.
실제로 나는 당신의 코드가 괜찮다고 생각합니다. 당신은 당신이했던 것처럼 그 값을 마련합니다. (원한다면)
INTEGER에 비해 너무 큰 System.currentTimeMillis ()에 대한 오류가 보관 수 있습니다.
enter code here
package in.my;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DBAdapter {
private final Context context;
private DatabaseHelper DBHelper;
private SQLiteDatabase db;
private static final String DATABASE_NAME = "helper.db";
private static final int DATABASE_VERSION = 1;
public static final String KEY_ID = "_id";
private static final String Table_Record =
"create table Student (_id integer primary key autoincrement, "
+ "Name text not null,rate integer, Phone text not null,Salary text not null,email text not null,address text not null,des text not null,qual text not null,doj text not null);";
public DBAdapter(Context ctx)
{
this.context = ctx;
DBHelper = new DatabaseHelper(context);
}
private class DatabaseHelper extends SQLiteOpenHelper
{
public DatabaseHelper(Context context)
{
super(context, DATABASE_NAME, null, DATABASE_VERSION);
// TODO Auto-generated constructor stub
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL(Table_Record);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
}
}
public DBAdapter open() throws SQLException
{
db = DBHelper.getWritableDatabase();
return DBAdapter.this;
}
//---closes the database---
public void close()
{
DBHelper.close();
}
public long insertTitle(String name,String phone,String web,String des,String address,String doj,String qual,String sal,int rate)
{
ContentValues initialValues = new ContentValues();
initialValues.put("Name", name);
initialValues.put("Phone", phone);
initialValues.put("email", web);
initialValues.put("des", des);
initialValues.put("Salary", sal);
initialValues.put("qual", qual);
initialValues.put("address", address);
initialValues.put("doj", doj);
initialValues.put("rate", rate);
return db.insert("Student", null, initialValues);
}
public boolean deleteTitle(long rowId)
{
return db.delete("Student", KEY_ID +
"=" + rowId, null) > 0;
}
public boolean UpdateTitle(long id,String name,String phone,String web,String des,String address,String doj,String qual,String sal,int rate)
{
ContentValues initialValues = new ContentValues();
initialValues.put("Name", name);
initialValues.put("Phone", phone);
initialValues.put("email", web);
initialValues.put("des", des);
initialValues.put("qual", qual);
initialValues.put("Salary", sal);
initialValues.put("address", address);
initialValues.put("doj", doj);
initialValues.put("rate", rate);
return db.update("Student",initialValues, KEY_ID + "=" + id, null)>0;
//return db.insert("Student", null, initialValues);
}
public Cursor getAllRecords()
{
return db.query("Student", new String[] {
KEY_ID,
"Name",
"Phone",
"email",
"address",
"des",
"qual",
"doj",
"Salary",
"rate"
},
null,
null,
null,
null,
null);
}
}
참조 URL : https://stackoverflow.com/questions/9701616/how-to-insert-double-and-float-values-to-sqlite
반응형
'ProgramingTip' 카테고리의 다른 글
UIPageViewController 제스처 인식기 (0) | 2021.01.10 |
---|---|
정수의 거듭 제곱 계산 (0) | 2021.01.10 |
다음을 기준으로 HTML 입력 필드 정렬 : (0) | 2021.01.10 |
PHPExcel 및 텍스트 배치 (0) | 2021.01.10 |
Python 목록 추가 메소드가 새 목록을 반환하도록 허용 (0) | 2021.01.10 |