Я сталкиваюсь с очень странной проблемой, и я действительно не понимаю, что ее вызывает. Поэтому я пытаюсь вставить значения в таблицу. Позвольте мне сначала сказать, что таблица существует (я проверил ее в Db Browser для SQLite). Проблема заставила меня жестко закодировать запрос вставки, но ничего не изменилось. Для экономии места я буду вставлять только необходимые блоки кода. Итак, позвольте мне показать вам блоки кода. Внутри моего вспомогательного класса БД
public class DBHelper extends SQLiteOpenHelper {
public static final int DATABASE_VERSION = 3;
public static final String DATABASE_NAME = "SemsWMS.db";
public DBHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(createCompany);
db.execSQL(createFinDoc);
db.execSQL(createMtrLines);
db.execSQL(createTrdr);
db.execSQL(createTrdBranch);
db.execSQL(createMtrl);
db.execSQL(createMtrLot);
db.execSQL(createMtrSubstitute);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("drop table if exists company");
db.execSQL("drop table if exists findoc");
db.execSQL("drop table if exists mtrlines");
db.execSQL("drop table if exists trdr");
db.execSQL("drop table if exists trdbranch");
db.execSQL("drop table if exists mtrl");
db.execSQL("drop table if exists mtrlot");
db.execSQL("drop table if exists mtrsubstitute");
db.execSQL(createCompany);
db.execSQL(createFinDoc);
db.execSQL(createMtrLines);
db.execSQL(createTrdr);
db.execSQL(createTrdBranch);
db.execSQL(createMtrl);
db.execSQL(createMtrLot);
db.execSQL(createMtrSubstitute);
}
public static class Company implements BaseColumns{
public static final String tablename = "company";
public static final String company = "company";
public static final String site = "site";
public static final String webuser = "webuser";
public static final String password = "password";
public static final String appid = "appid";
public static final String webuserid = "webuserid";
public static final String upddatetrdr = "upddatetrdr";
public static final String upddatetrdbranch = "upddatetrdbranch";
public static final String upddatemtrl = "upddatemtrl";
public static final String upddatemtrlot = "upddatemtrlot";
public static final String upddatemtrsubstitute = "upddatemtrsubstitute";
}
public static final String createCompany = "create table " + Company.tablename + "("+Company.company+" integer primary key, "
+Company.site+" text, "
+Company.webuser+" text, "
+Company.password+" text, "
+Company.appid +" integer, "
+Company.webuserid+" integer, "
+Company.upddatetrdr+" numeric, "
+Company.upddatetrdbranch+" numeric, "
+Company.upddatemtrl+" numeric, "
+Company.upddatemtrlot+" numeric, "
+Company.upddatemtrsubstitute+" numeric)";
жестко закодированный блок внутри класса DBHelper
public static String insertCompany(){
String sql = "insert into company(company,site,appid,webuser,password) values(2,rigas,9999,sems,1234)";
return sql;
}
Метод внутри класса DBHelper для выполнения запросов в других действиях
public void insertInDB(String query){
SQLiteDatabase db = getWritableDatabase();
db.execSQL(query);
}
поэтому в другой деятельности я вызываю insertInDB (insertCompany ()); и я получаю это:
android.database.sqlite.SQLiteException: no such column: rigas (code 1): , while compiling: insert into company(company,site,appid,webuser,password) values(2,rigas,9999,sems,1234)
#################################################################
Error Code : 1 (SQLITE_ERROR)
Caused By : SQL(query) error or missing database.
(no such column: rigas (code 1): , while compiling: insert into company(company,site,appid,webuser,password) values(2,rigas,9999,sems,1234))
#################################################################
at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:1073)
at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:638)
Там написано "rigas" столбца .... но такого столбца в моем запросе вставки нет. .. "rigas" - это значение для столбца "site".
Буду очень признателен, если кто-нибудь найдет что-то в коде.