마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

테이블에 칼럼이 없다는 오류..( table DREAM has no column named TITLE) ㅁ

0 추천
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.dreaminsert);

		image = (ImageView) findViewById(R.id.image);
		mMemoEdit = (EditText) findViewById(R.id.dreamInput);

		OKbtn = (Button) findViewById(R.id.OKbtn);
		Cancelbtn = (Button) findViewById(R.id.Cancelbtn);

		image.setOnClickListener(new OnClickListener() { // 사진 앨범에서 가져오기
			public void onClick(View v) {
				if (isPhotoCaptured || isPhotoFileSaved) {
					showDialog(BasicInfo.CONTENT_PHOTO_EX);
				} else {
					showDialog(BasicInfo.CONTENT_PHOTO);
				}
			}
		});

		// 확인 버튼
		OKbtn.setOnClickListener(new OnClickListener() {
			public void onClick(View v) {
				Log.d(TAG, "OKbtn clicked.");
//				if (mMemoMode.equals(BasicInfo.MODE_INSERT)) {
					saveInput();
//				} else if (mMemoMode.equals(BasicInfo.MODE_MODIFY)
//						|| mMemoMode.equals(BasicInfo.MODE_VIEW)) {
//						modifyInput();
//				}
			}
		});

		// 취소 버튼
		Cancelbtn.setOnClickListener(new OnClickListener() {
			public void onClick(View v) {
				Log.d(TAG, "Cancelbtn clicked.");
				finish();
			}
		});

	}

	/**
	 * 데이터베이스에 레코드 추가
	 */
	private void saveInput() {

		String photoFilename = insertPhoto();
		int photoId = -1;


		String SQL = null;

		if (photoFilename != null) {
			// query picture id
			SQL = "select _ID from " + DreamDatabase.TABLE_PHOTO
					+ " where URI = '" + photoFilename + "'";
			Log.d(TAG, "SQL : " + SQL);
			if (MainActivity.mDatabase != null) {
				Cursor cursor = MainActivity.mDatabase.rawQuery(SQL);
				if (cursor.moveToNext()) {
					photoId = cursor.getInt(0);
				}
				cursor.close();
			}
		}
		titletxt = mMemoEdit.getText().toString();
		mTitleStr = titletxt;

		/**************** 에러 발생하는 곳 *************************/
		SQL = "insert into " + DreamDatabase.TABLE_MEMO
				+ "(_id, TITLE, ID_PHOTO) values(" +  dreamId + ", '" + mTitleStr + "', " + "'" + photoId + "')"; // Stage3 added
		Log.d(TAG, "dreamId : " + dreamId);
		Log.d(TAG, "SQL : " + SQL);
		if (MainActivity.mDatabase != null) {
			MainActivity.mDatabase.execSQL(SQL);
			dreamId++;
			Log.d(TAG, "dreamId : " + dreamId);
		}

		Intent intent = getIntent();
		setResult(RESULT_OK, intent);
		finish();

	}

 

 

08-21 15:21:05.194: D/DreamInsertActivity(4613): OKbtn clicked.
08-21 15:21:05.194: D/DreamInsertActivity(4613): dreamId : 1
08-21 15:21:05.194: D/DreamInsertActivity(4613): SQL : insert into DREAM(_id, TITLE, ID_PHOTO) values(1, '나', '-1')
08-21 15:21:05.194: D/MemoDatabase(4613):  execute called.
08-21 15:21:05.194: D/MemoDatabase(4613): SQL : insert into DREAM(_id, TITLE, ID_PHOTO) values(1, '나', '-1')
08-21 15:21:05.199: E/SQLiteLog(4613): (1) table DREAM has no column named TITLE
08-21 15:21:05.204: E/MemoDatabase(4613): Exception in executeQuery
08-21 15:21:05.204: E/MemoDatabase(4613): android.database.sqlite.SQLiteException: table DREAM has no column named TITLE (code 1): , while compiling: insert into DREAM(_id, TITLE, ID_PHOTO) values(1, '나', '-1')
08-21 15:21:05.204: E/MemoDatabase(4613): 	at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
08-21 15:21:05.204: E/MemoDatabase(4613): 	at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:1118)
08-21 15:21:05.204: E/MemoDatabase(4613): 	at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:691)
08-21 15:21:05.204: E/MemoDatabase(4613): 	at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
08-21 15:21:05.204: E/MemoDatabase(4613): 	at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
08-21 15:21:05.204: E/MemoDatabase(4613): 	at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
08-21 15:21:05.204: E/MemoDatabase(4613): 	at android.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:1794)
08-21 15:21:05.204: E/MemoDatabase(4613): 	at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1725)
08-21 15:21:05.204: E/MemoDatabase(4613): 	at ac.kr.swu.multimemo.DreamDatabase.execSQL(DreamDatabase.java:118)
08-21 15:21:05.204: E/MemoDatabase(4613): 	at ac.kr.swu.multimemo.DreamInsertActivity.saveInput(DreamInsertActivity.java:220)
08-21 15:21:05.204: E/MemoDatabase(4613): 	at ac.kr.swu.multimemo.DreamInsertActivity.access$0(DreamInsertActivity.java:190)
08-21 15:21:05.204: E/MemoDatabase(4613): 	at ac.kr.swu.multimemo.DreamInsertActivity$2.onClick(DreamInsertActivity.java:76)
08-21 15:21:05.204: E/MemoDatabase(4613): 	at android.view.View.performClick(View.java:4475)
08-21 15:21:05.204: E/MemoDatabase(4613): 	at android.view.View$PerformClick.run(View.java:18786)
08-21 15:21:05.204: E/MemoDatabase(4613): 	at android.os.Handler.handleCallback(Handler.java:730)
08-21 15:21:05.204: E/MemoDatabase(4613): 	at android.os.Handler.dispatchMessage(Handler.java:92)
08-21 15:21:05.204: E/MemoDatabase(4613): 	at android.os.Looper.loop(Looper.java:176)
08-21 15:21:05.204: E/MemoDatabase(4613): 	at android.app.ActivityThread.main(ActivityThread.java:5455)
08-21 15:21:05.204: E/MemoDatabase(4613): 	at java.lang.reflect.Method.invokeNative(Native Method)
08-21 15:21:05.204: E/MemoDatabase(4613): 	at java.lang.reflect.Method.invoke(Method.java:525)
08-21 15:21:05.204: E/MemoDatabase(4613): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1209)
08-21 15:21:05.204: E/MemoDatabase(4613): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1025)
08-21 15:21:05.204: E/MemoDatabase(4613): 	at dalvik.system.NativeStart.main(Native Method)
08-21 15:21:05.204: D/DreamInsertActivity(4613): dreamId : 2
08-21 15:21:05.449: D/MemoDatabase(4613): executeQuery called.
08-21 15:21:05.449: D/MemoDatabase(4613): cursor count : 0
08-21 15:21:05.449: D/MainActivity(4613): cursor count : 0
08-21 15:21:05.449: D/MemoDatabase(4613): closing database [/storage/emulated/0/sdcard/dream.db].
08-21 15:21:05.449: D/MemoDatabase(4613): opening database [/storage/emulated/0/sdcard/dream.db].
08-21 15:21:05.454: D/MemoDatabase(4613): opened database [/storage/emulated/0/sdcard/dream.db].
08-21 15:21:05.454: D/MainActivity(4613): Dream database is open.
08-21 15:21:05.454: D/MemoDatabase(4613): executeQuery called.
08-21 15:21:05.454: D/MemoDatabase(4613): cursor count : 0
08-21 15:21:05.454: D/MainActivity(4613): cursor count : 0
08-21 15:21:05.454: D/AbsListView(4613): onVisibilityChanged() is called, visibility : 0
08-21 15:21:05.454: D/AbsListView(4613): unregisterIRListener() is called 
08-21 15:21:05.524: D/AbsListView(4613): unregisterIRListener() is called 
08-21 15:21:05.529: D/AbsListView(4613): unregisterIRListener() is called 
08-21 15:21:05.534: D/AbsListView(4613): unregisterIRListener() is called 
08-21 15:21:05.669: D/AbsListView(4613): unregisterIRListener() is called 
08-21 15:22:05.794: D/AbsListView(4613): onVisibilityChanged() is called, visibility : 4
08-21 15:22:05.794: D/AbsListView(4613): unregisterIRListener() is called 
08-21 15:22:05.794: D/AbsListView(4613): unregisterIRListener() is called 

다음과 같이 에러가 나는데 계속 해결하지 못하고 있습니다.

검색해본 결과 사람들의 얘기를 듣고서
table 생성할때나 insert구문사용할때 sql문 다시 확인해보고, 어플 지웠다가 다시 실행시키고, db 다시 새로 삽입 등 여러가지 해보았으나 여전히 에러를 해결하지 못했습니다 ㅜㅜ

도대체 무엇이 문제인지 모르겠습니다.

도움을 주시면 감사하겠습니다!!

dmsruddl91 (250 포인트) 님이 2014년 8월 21일 질문

1개의 답변

+1 추천
 
채택된 답변
create table sql을 뽑아보시면 분명 쉼표하나 빠졌다거나해서 title 필드가 생성이 안됐을 겁니다. 다시 한 번 꼼꼼히 살펴보세요
쎄미 (162,410 포인트) 님이 2014년 8월 21일 답변
dmsruddl91님이 2014년 8월 21일 채택됨
네 알겠습니다 ㅜㅜ
create table 생성시 sql 구문에서 대소문자 구분은 없는지요?
...